wevu 7.0.3 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -4
- package/dist/alipay/jsx-runtime.d.mts +13 -0
- package/dist/alipay/jsx-runtime.mjs +1 -0
- package/dist/alipayIntrinsicElements/base.d.mts +4 -0
- package/dist/alipayIntrinsicElements/elements/button.d.mts +29 -0
- package/dist/alipayIntrinsicElements/elements/camera.d.mts +18 -0
- package/dist/alipayIntrinsicElements/elements/canvas.d.mts +20 -0
- package/dist/alipayIntrinsicElements/elements/checkbox-group.d.mts +11 -0
- package/dist/alipayIntrinsicElements/elements/checkbox.d.mts +14 -0
- package/dist/alipayIntrinsicElements/elements/contact-button.d.mts +15 -0
- package/dist/alipayIntrinsicElements/elements/cover-image.d.mts +11 -0
- package/dist/alipayIntrinsicElements/elements/cover-view.d.mts +11 -0
- package/dist/alipayIntrinsicElements/elements/error-view.d.mts +14 -0
- package/dist/alipayIntrinsicElements/elements/form.d.mts +12 -0
- package/dist/alipayIntrinsicElements/elements/icon.d.mts +11 -0
- package/dist/alipayIntrinsicElements/elements/image.d.mts +17 -0
- package/dist/alipayIntrinsicElements/elements/input.d.mts +31 -0
- package/dist/alipayIntrinsicElements/elements/join-group-chat.d.mts +9 -0
- package/dist/alipayIntrinsicElements/elements/label.d.mts +9 -0
- package/dist/alipayIntrinsicElements/elements/lifestyle.d.mts +11 -0
- package/dist/alipayIntrinsicElements/elements/lottie.d.mts +25 -0
- package/dist/alipayIntrinsicElements/elements/map.d.mts +44 -0
- package/dist/alipayIntrinsicElements/elements/match-media.d.mts +15 -0
- package/dist/alipayIntrinsicElements/elements/movable-area.d.mts +9 -0
- package/dist/alipayIntrinsicElements/elements/movable-view.d.mts +32 -0
- package/dist/alipayIntrinsicElements/elements/navigator.d.mts +13 -0
- package/dist/alipayIntrinsicElements/elements/page-container.d.mts +27 -0
- package/dist/alipayIntrinsicElements/elements/page-meta.d.mts +19 -0
- package/dist/alipayIntrinsicElements/elements/picker-view-column.d.mts +7 -0
- package/dist/alipayIntrinsicElements/elements/picker-view.d.mts +18 -0
- package/dist/alipayIntrinsicElements/elements/picker.d.mts +15 -0
- package/dist/alipayIntrinsicElements/elements/progress.d.mts +14 -0
- package/dist/alipayIntrinsicElements/elements/radio-group.d.mts +11 -0
- package/dist/alipayIntrinsicElements/elements/radio.d.mts +12 -0
- package/dist/alipayIntrinsicElements/elements/rich-text.d.mts +17 -0
- package/dist/alipayIntrinsicElements/elements/root-portal.d.mts +9 -0
- package/dist/alipayIntrinsicElements/elements/scroll-view.d.mts +29 -0
- package/dist/alipayIntrinsicElements/elements/share-element.d.mts +12 -0
- package/dist/alipayIntrinsicElements/elements/slider.d.mts +23 -0
- package/dist/alipayIntrinsicElements/elements/subscribe-message.d.mts +11 -0
- package/dist/alipayIntrinsicElements/elements/swiper-item.d.mts +7 -0
- package/dist/alipayIntrinsicElements/elements/swiper.d.mts +36 -0
- package/dist/alipayIntrinsicElements/elements/switch.d.mts +15 -0
- package/dist/alipayIntrinsicElements/elements/text.d.mts +12 -0
- package/dist/alipayIntrinsicElements/elements/textarea.d.mts +24 -0
- package/dist/alipayIntrinsicElements/elements/video.d.mts +39 -0
- package/dist/alipayIntrinsicElements/elements/view.d.mts +29 -0
- package/dist/alipayIntrinsicElements/elements/web-view.d.mts +13 -0
- package/dist/alipayIntrinsicElements.d.mts +94 -0
- package/dist/dev/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/defineProperty.mjs +1 -1
- package/dist/dev/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/toPrimitive.mjs +1 -1
- package/dist/dev/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/toPropertyKey.mjs +1 -1
- package/dist/dev/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/typeof.mjs +1 -1
- package/dist/dev/alipayIntrinsicElements/base.d.mts +5 -0
- package/dist/dev/alipayIntrinsicElements/elements/button.d.mts +30 -0
- package/dist/dev/alipayIntrinsicElements/elements/camera.d.mts +19 -0
- package/dist/dev/alipayIntrinsicElements/elements/canvas.d.mts +21 -0
- package/dist/dev/alipayIntrinsicElements/elements/checkbox-group.d.mts +12 -0
- package/dist/dev/alipayIntrinsicElements/elements/checkbox.d.mts +15 -0
- package/dist/dev/alipayIntrinsicElements/elements/contact-button.d.mts +16 -0
- package/dist/dev/alipayIntrinsicElements/elements/cover-image.d.mts +12 -0
- package/dist/dev/alipayIntrinsicElements/elements/cover-view.d.mts +12 -0
- package/dist/dev/alipayIntrinsicElements/elements/error-view.d.mts +15 -0
- package/dist/dev/alipayIntrinsicElements/elements/form.d.mts +13 -0
- package/dist/dev/alipayIntrinsicElements/elements/icon.d.mts +12 -0
- package/dist/dev/alipayIntrinsicElements/elements/image.d.mts +18 -0
- package/dist/dev/alipayIntrinsicElements/elements/input.d.mts +32 -0
- package/dist/dev/alipayIntrinsicElements/elements/join-group-chat.d.mts +10 -0
- package/dist/dev/alipayIntrinsicElements/elements/label.d.mts +10 -0
- package/dist/dev/alipayIntrinsicElements/elements/lifestyle.d.mts +12 -0
- package/dist/dev/alipayIntrinsicElements/elements/lottie.d.mts +26 -0
- package/dist/dev/alipayIntrinsicElements/elements/map.d.mts +45 -0
- package/dist/dev/alipayIntrinsicElements/elements/match-media.d.mts +16 -0
- package/dist/dev/alipayIntrinsicElements/elements/movable-area.d.mts +10 -0
- package/dist/dev/alipayIntrinsicElements/elements/movable-view.d.mts +33 -0
- package/dist/dev/alipayIntrinsicElements/elements/navigator.d.mts +14 -0
- package/dist/dev/alipayIntrinsicElements/elements/page-container.d.mts +28 -0
- package/dist/dev/alipayIntrinsicElements/elements/page-meta.d.mts +20 -0
- package/dist/dev/alipayIntrinsicElements/elements/picker-view-column.d.mts +8 -0
- package/dist/dev/alipayIntrinsicElements/elements/picker-view.d.mts +19 -0
- package/dist/dev/alipayIntrinsicElements/elements/picker.d.mts +16 -0
- package/dist/dev/alipayIntrinsicElements/elements/progress.d.mts +15 -0
- package/dist/dev/alipayIntrinsicElements/elements/radio-group.d.mts +12 -0
- package/dist/dev/alipayIntrinsicElements/elements/radio.d.mts +13 -0
- package/dist/dev/alipayIntrinsicElements/elements/rich-text.d.mts +18 -0
- package/dist/dev/alipayIntrinsicElements/elements/root-portal.d.mts +10 -0
- package/dist/dev/alipayIntrinsicElements/elements/scroll-view.d.mts +30 -0
- package/dist/dev/alipayIntrinsicElements/elements/share-element.d.mts +13 -0
- package/dist/dev/alipayIntrinsicElements/elements/slider.d.mts +24 -0
- package/dist/dev/alipayIntrinsicElements/elements/subscribe-message.d.mts +12 -0
- package/dist/dev/alipayIntrinsicElements/elements/swiper-item.d.mts +8 -0
- package/dist/dev/alipayIntrinsicElements/elements/swiper.d.mts +37 -0
- package/dist/dev/alipayIntrinsicElements/elements/switch.d.mts +16 -0
- package/dist/dev/alipayIntrinsicElements/elements/text.d.mts +13 -0
- package/dist/dev/alipayIntrinsicElements/elements/textarea.d.mts +25 -0
- package/dist/dev/alipayIntrinsicElements/elements/video.d.mts +40 -0
- package/dist/dev/alipayIntrinsicElements/elements/view.d.mts +30 -0
- package/dist/dev/alipayIntrinsicElements/elements/web-view.d.mts +14 -0
- package/dist/dev/alipayIntrinsicElements.d.mts +94 -0
- package/dist/dev/api/vitest/setup.d.mts +1 -0
- package/dist/dev/api/vitest.d.mts +1 -0
- package/dist/dev/api.d.mts +1 -0
- package/dist/dev/compiler.d.mts +1 -0
- package/dist/dev/fetch.d.mts +9 -0
- package/dist/dev/index.d.mts +72 -0
- package/dist/dev/index.mjs +12 -15
- package/dist/dev/internal-reactivity.d.mts +18 -0
- package/dist/dev/internal-reactivity.mjs +3 -2
- package/dist/dev/internal-runtime.d.mts +44 -0
- package/dist/dev/internal-runtime.mjs +19 -14
- package/dist/dev/internal-template.d.mts +2 -0
- package/dist/dev/jsx-runtime.d.mts +44 -0
- package/dist/dev/jsxTypes.d.mts +9 -0
- package/dist/dev/macros/shared.d.mts +81 -0
- package/dist/dev/macros.d.mts +71 -0
- package/dist/dev/package.mjs +1 -1
- package/dist/dev/reactivity/asyncDerivation.d.mts +41 -0
- package/dist/dev/reactivity/asyncDerivation.mjs +130 -0
- package/dist/dev/reactivity/asyncDerivation.mjs.map +1 -0
- package/dist/dev/reactivity/computed.d.mts +21 -0
- package/dist/dev/reactivity/computed.mjs +2 -2
- package/dist/dev/reactivity/computed.mjs.map +1 -1
- package/dist/dev/reactivity/core.d.mts +35 -0
- package/dist/dev/reactivity/core.mjs +156 -32
- package/dist/dev/reactivity/core.mjs.map +1 -1
- package/dist/dev/reactivity/index.d.mts +16 -0
- package/dist/dev/reactivity/reactive/mutation.d.mts +21 -0
- package/dist/dev/reactivity/reactive/patch.d.mts +18 -0
- package/dist/dev/reactivity/reactive/shallow.d.mts +22 -0
- package/dist/dev/reactivity/reactive/shared.d.mts +4 -0
- package/dist/dev/reactivity/reactive.d.mts +42 -0
- package/dist/dev/reactivity/readonly.d.mts +27 -0
- package/dist/dev/reactivity/readonly.mjs.map +1 -1
- package/dist/dev/reactivity/ref.d.mts +27 -0
- package/dist/dev/reactivity/ref.mjs +1 -1
- package/dist/dev/reactivity/shallowRef.d.mts +19 -0
- package/dist/dev/reactivity/toRefs.d.mts +43 -0
- package/dist/dev/reactivity/traverse.d.mts +8 -0
- package/dist/dev/reactivity/watch/types.d.mts +43 -0
- package/dist/dev/reactivity/watch.d.mts +22 -0
- package/dist/dev/router/createRouter.d.mts +8 -0
- package/dist/dev/router/navigationCore.d.mts +6 -0
- package/dist/dev/router/resolve.d.mts +6 -0
- package/dist/dev/router/routeSync.d.mts +1 -0
- package/dist/dev/router/routeSync.mjs +8 -2
- package/dist/dev/router/routeSync.mjs.map +1 -1
- package/dist/dev/router/types.d.mts +172 -0
- package/dist/dev/router/useRoute.d.mts +19 -0
- package/dist/dev/router/useRoute.mjs +14 -7
- package/dist/dev/router/useRoute.mjs.map +1 -1
- package/dist/dev/router/useRouter.d.mts +8 -0
- package/dist/dev/router.d.mts +10 -0
- package/dist/dev/routerInternal/query.d.mts +7 -0
- package/dist/dev/routerInternal/types.d.mts +9 -0
- package/dist/dev/runtime/app/computed.mjs +2 -2
- package/dist/dev/runtime/app/computed.mjs.map +1 -1
- package/dist/dev/runtime/app/context.mjs +8 -2
- package/dist/dev/runtime/app/context.mjs.map +1 -1
- package/dist/dev/runtime/app/diagnostics.mjs +12 -0
- package/dist/dev/runtime/app/diagnostics.mjs.map +1 -1
- package/dist/dev/runtime/app/mount.mjs +31 -28
- package/dist/dev/runtime/app/mount.mjs.map +1 -1
- package/dist/dev/runtime/app/pending.d.mts +10 -0
- package/dist/dev/runtime/app/setData/commitTracker.d.mts +13 -0
- package/dist/dev/runtime/app/setData/commitTracker.mjs +265 -0
- package/dist/dev/runtime/app/setData/commitTracker.mjs.map +1 -0
- package/dist/dev/runtime/app/setData/patchScheduler.mjs +47 -51
- package/dist/dev/runtime/app/setData/patchScheduler.mjs.map +1 -1
- package/dist/dev/runtime/app/setData/scheduler.d.mts +51 -0
- package/dist/dev/runtime/app/setData/scheduler.mjs +98 -111
- package/dist/dev/runtime/app/setData/scheduler.mjs.map +1 -1
- package/dist/dev/runtime/app/setData/snapshot.mjs +11 -1
- package/dist/dev/runtime/app/setData/snapshot.mjs.map +1 -1
- package/dist/dev/runtime/app.d.mts +8 -0
- package/dist/dev/runtime/app.mjs +18 -6
- package/dist/dev/runtime/app.mjs.map +1 -1
- package/dist/dev/runtime/bindingManifest.mjs +105 -0
- package/dist/dev/runtime/bindingManifest.mjs.map +1 -0
- package/dist/dev/runtime/capabilities.d.mts +75 -0
- package/dist/dev/runtime/capabilities.mjs +40 -0
- package/dist/dev/runtime/capabilities.mjs.map +1 -0
- package/dist/dev/runtime/css.d.mts +14 -0
- package/dist/dev/runtime/defaults.d.mts +12 -0
- package/dist/dev/runtime/define/componentDefinition.mjs +3 -0
- package/dist/dev/runtime/define/componentDefinition.mjs.map +1 -1
- package/dist/dev/runtime/define/optionsApi.mjs +1 -1
- package/dist/dev/runtime/define/props.mjs +30 -60
- package/dist/dev/runtime/define/props.mjs.map +1 -1
- package/dist/dev/runtime/define/scopedSlotOptions.mjs +37 -21
- package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -1
- package/dist/dev/runtime/define.d.mts +118 -0
- package/dist/dev/runtime/define.mjs +32 -44
- package/dist/dev/runtime/define.mjs.map +1 -1
- package/dist/dev/runtime/diff.mjs +1 -1
- package/dist/dev/runtime/disposables.d.mts +31 -0
- package/dist/dev/runtime/elementIntersectionObserver.d.mts +26 -0
- package/dist/dev/runtime/features/inlineEvents.d.mts +7 -0
- package/dist/dev/runtime/features/inlineEvents.mjs +25 -0
- package/dist/dev/runtime/features/inlineEvents.mjs.map +1 -0
- package/dist/dev/runtime/features/layout.d.mts +7 -0
- package/dist/dev/runtime/features/layout.mjs +44 -0
- package/dist/dev/runtime/features/layout.mjs.map +1 -0
- package/dist/dev/runtime/features/patchStrategy.d.mts +7 -0
- package/dist/dev/runtime/features/patchStrategy.mjs +129 -0
- package/dist/dev/runtime/features/patchStrategy.mjs.map +1 -0
- package/dist/dev/runtime/features/publicLayout.d.mts +24 -0
- package/dist/dev/runtime/features/publicLayout.mjs +81 -0
- package/dist/dev/runtime/features/publicLayout.mjs.map +1 -0
- package/dist/dev/runtime/features/scopedSlots.d.mts +23 -0
- package/dist/dev/runtime/features/scopedSlots.mjs +88 -0
- package/dist/dev/runtime/features/scopedSlots.mjs.map +1 -0
- package/dist/dev/runtime/features/setDataHighFrequencyWarning.d.mts +7 -0
- package/dist/dev/runtime/features/setDataHighFrequencyWarning.mjs +15 -0
- package/dist/dev/runtime/features/setDataHighFrequencyWarning.mjs.map +1 -0
- package/dist/dev/runtime/features/templateRefs.d.mts +7 -0
- package/dist/dev/runtime/features/templateRefs.mjs +39 -0
- package/dist/dev/runtime/features/templateRefs.mjs.map +1 -0
- package/dist/dev/runtime/hooks/base.d.mts +27 -0
- package/dist/dev/runtime/hooks/register.d.mts +30 -0
- package/dist/dev/runtime/hooks/vue.d.mts +52 -0
- package/dist/dev/runtime/hooks/vue.mjs +3 -5
- package/dist/dev/runtime/hooks/vue.mjs.map +1 -1
- package/dist/dev/runtime/hooks.d.mts +4 -0
- package/dist/dev/runtime/index.d.mts +46 -0
- package/dist/dev/runtime/inlineDataset.mjs +75 -0
- package/dist/dev/runtime/inlineDataset.mjs.map +1 -0
- package/dist/dev/runtime/intersectionObserver.d.mts +14 -0
- package/dist/dev/runtime/jsxIsland.d.mts +37 -0
- package/dist/dev/runtime/jsxIsland.mjs.map +1 -1
- package/dist/dev/runtime/layoutBridge.d.mts +55 -0
- package/dist/dev/runtime/layoutBridge.mjs.map +1 -1
- package/dist/dev/runtime/noSetData.d.mts +5 -0
- package/dist/dev/runtime/pageEnvironment.d.mts +50 -0
- package/dist/dev/runtime/pageLayout.d.mts +25 -0
- package/dist/dev/runtime/pageLayout.mjs.map +1 -1
- package/dist/dev/runtime/pageScroll.d.mts +29 -0
- package/dist/dev/runtime/provide.d.mts +60 -0
- package/dist/dev/runtime/provideStore.d.mts +7 -0
- package/dist/dev/runtime/publicRuntime.d.mts +22 -0
- package/dist/dev/runtime/publicRuntime.mjs +91 -0
- package/dist/dev/runtime/publicRuntime.mjs.map +1 -0
- package/dist/dev/runtime/pullDownRefresh.d.mts +12 -0
- package/dist/dev/runtime/register/app.d.mts +14 -0
- package/dist/dev/runtime/register/app.mjs +7 -10
- package/dist/dev/runtime/register/app.mjs.map +1 -1
- package/dist/dev/runtime/register/component/lifecycle.mjs +22 -6
- package/dist/dev/runtime/register/component/lifecycle.mjs.map +1 -1
- package/dist/dev/runtime/register/component/methods.mjs +7 -10
- package/dist/dev/runtime/register/component/methods.mjs.map +1 -1
- package/dist/dev/runtime/register/component/options.mjs.map +1 -1
- package/dist/dev/runtime/register/component/registerDefinition.mjs +64 -69
- package/dist/dev/runtime/register/component/registerDefinition.mjs.map +1 -1
- package/dist/dev/runtime/register/component.d.mts +17 -0
- package/dist/dev/runtime/register/inline.d.mts +15 -0
- package/dist/dev/runtime/register/inline.mjs +4 -64
- package/dist/dev/runtime/register/inline.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs +16 -2
- package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs +0 -4
- package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs +26 -0
- package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs.map +1 -0
- package/dist/dev/runtime/register/runtimeInstance/utils.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance.d.mts +26 -0
- package/dist/dev/runtime/register/runtimeInstance.mjs +402 -160
- package/dist/dev/runtime/register/runtimeInstance.mjs.map +1 -1
- package/dist/dev/runtime/register/setDataFrequencyWarning.mjs.map +1 -1
- package/dist/dev/runtime/register/setup.d.mts +11 -0
- package/dist/dev/runtime/register/snapshot.mjs +6 -10
- package/dist/dev/runtime/register/snapshot.mjs.map +1 -1
- package/dist/dev/runtime/register/watch.d.mts +12 -0
- package/dist/dev/runtime/register.d.mts +5 -0
- package/dist/dev/runtime/scopedSlots.mjs +1 -1
- package/dist/dev/runtime/scopedSlots.mjs.map +1 -1
- package/dist/dev/runtime/selectorQuery.d.mts +54 -0
- package/dist/dev/runtime/selectorQuery.mjs +5 -0
- package/dist/dev/runtime/selectorQuery.mjs.map +1 -1
- package/dist/dev/runtime/teardown.mjs +18 -0
- package/dist/dev/runtime/teardown.mjs.map +1 -0
- package/dist/dev/runtime/template.d.mts +6 -0
- package/dist/dev/runtime/templateRefTypes.d.mts +12 -0
- package/dist/dev/runtime/templateRefs/helpers.mjs.map +1 -1
- package/dist/dev/runtime/templateRefs.mjs +187 -118
- package/dist/dev/runtime/templateRefs.mjs.map +1 -1
- package/dist/dev/runtime/types/core.d.mts +35 -0
- package/dist/dev/runtime/types/miniprogram.d.mts +84 -0
- package/dist/dev/runtime/types/miniprogramHost.d.mts +45 -0
- package/dist/dev/runtime/types/miniprogramHostSources.d.mts +112 -0
- package/dist/dev/runtime/types/options.d.mts +136 -0
- package/dist/dev/runtime/types/props/propTypes.d.mts +79 -0
- package/dist/dev/runtime/types/props/router.d.mts +51 -0
- package/dist/dev/runtime/types/props/setup.d.mts +96 -0
- package/dist/dev/runtime/types/props.d.mts +4 -0
- package/dist/dev/runtime/types/runtime.d.mts +59 -0
- package/dist/dev/runtime/types/setData.d.mts +237 -0
- package/dist/dev/runtime/types.d.mts +29 -0
- package/dist/dev/runtime/uniAppHost.d.mts +8 -0
- package/dist/dev/runtime/updatePerformance.d.mts +13 -0
- package/dist/dev/runtime/use.d.mts +13 -0
- package/dist/dev/runtime/vueCompat/context.d.mts +8 -0
- package/dist/dev/runtime/vueCompat/model.d.mts +30 -0
- package/dist/dev/runtime/vueCompat/router.d.mts +28 -0
- package/dist/dev/runtime/vueCompat/templateRef.d.mts +9 -0
- package/dist/dev/runtime/vueCompat/templateRef.mjs +2 -0
- package/dist/dev/runtime/vueCompat/templateRef.mjs.map +1 -1
- package/dist/dev/runtime/vueCompat.d.mts +5 -0
- package/dist/dev/scheduler.d.mts +4 -0
- package/dist/dev/store/base.mjs +12 -18
- package/dist/dev/store/base.mjs.map +1 -1
- package/dist/dev/store/define/optionsStyle.mjs +13 -23
- package/dist/dev/store/define/optionsStyle.mjs.map +1 -1
- package/dist/dev/store/define/setupStyle.mjs +14 -24
- package/dist/dev/store/define/setupStyle.mjs.map +1 -1
- package/dist/dev/store/define/shared.mjs +44 -1
- package/dist/dev/store/define/shared.mjs.map +1 -1
- package/dist/dev/store/define.d.mts +28 -0
- package/dist/dev/store/define.mjs.map +1 -1
- package/dist/dev/store/manager.d.mts +8 -0
- package/dist/dev/store/storeToRefs.d.mts +13 -0
- package/dist/dev/store/types.d.mts +70 -0
- package/dist/dev/store.d.mts +5 -0
- package/dist/dev/ttIntrinsicElements/base.d.mts +5 -0
- package/dist/dev/ttIntrinsicElements/elements/ad.d.mts +8 -0
- package/dist/dev/ttIntrinsicElements/elements/aweme-data.d.mts +15 -0
- package/dist/dev/ttIntrinsicElements/elements/aweme-user-card.d.mts +16 -0
- package/dist/dev/ttIntrinsicElements/elements/button.d.mts +23 -0
- package/dist/dev/ttIntrinsicElements/elements/camera.d.mts +19 -0
- package/dist/dev/ttIntrinsicElements/elements/canvas.d.mts +16 -0
- package/dist/dev/ttIntrinsicElements/elements/checkbox-group.d.mts +12 -0
- package/dist/dev/ttIntrinsicElements/elements/checkbox.d.mts +12 -0
- package/dist/dev/ttIntrinsicElements/elements/draw-ad.d.mts +16 -0
- package/dist/dev/ttIntrinsicElements/elements/form.d.mts +14 -0
- package/dist/dev/ttIntrinsicElements/elements/icon.d.mts +11 -0
- package/dist/dev/ttIntrinsicElements/elements/image.d.mts +16 -0
- package/dist/dev/ttIntrinsicElements/elements/input.d.mts +32 -0
- package/dist/dev/ttIntrinsicElements/elements/label.d.mts +10 -0
- package/dist/dev/ttIntrinsicElements/elements/live-player.d.mts +19 -0
- package/dist/dev/ttIntrinsicElements/elements/live-preview.d.mts +13 -0
- package/dist/dev/ttIntrinsicElements/elements/map.d.mts +36 -0
- package/dist/dev/ttIntrinsicElements/elements/mask.d.mts +8 -0
- package/dist/dev/ttIntrinsicElements/elements/match-media.d.mts +16 -0
- package/dist/dev/ttIntrinsicElements/elements/movable-area.d.mts +10 -0
- package/dist/dev/ttIntrinsicElements/elements/movable-view.d.mts +27 -0
- package/dist/dev/ttIntrinsicElements/elements/navigator.d.mts +16 -0
- package/dist/dev/ttIntrinsicElements/elements/open-data.d.mts +15 -0
- package/dist/dev/ttIntrinsicElements/elements/picker-view-column.d.mts +8 -0
- package/dist/dev/ttIntrinsicElements/elements/picker-view.d.mts +19 -0
- package/dist/dev/ttIntrinsicElements/elements/picker.d.mts +22 -0
- package/dist/dev/ttIntrinsicElements/elements/progress.d.mts +16 -0
- package/dist/dev/ttIntrinsicElements/elements/radio-group.d.mts +12 -0
- package/dist/dev/ttIntrinsicElements/elements/radio.d.mts +12 -0
- package/dist/dev/ttIntrinsicElements/elements/rich-text.d.mts +10 -0
- package/dist/dev/ttIntrinsicElements/elements/rtc-room.d.mts +13 -0
- package/dist/dev/ttIntrinsicElements/elements/scroll-view.d.mts +32 -0
- package/dist/dev/ttIntrinsicElements/elements/slider.d.mts +19 -0
- package/dist/dev/ttIntrinsicElements/elements/swiper-item.d.mts +10 -0
- package/dist/dev/ttIntrinsicElements/elements/swiper.d.mts +27 -0
- package/dist/dev/ttIntrinsicElements/elements/switch.d.mts +14 -0
- package/dist/dev/ttIntrinsicElements/elements/text.d.mts +12 -0
- package/dist/dev/ttIntrinsicElements/elements/textarea.d.mts +34 -0
- package/dist/dev/ttIntrinsicElements/elements/video.d.mts +58 -0
- package/dist/dev/ttIntrinsicElements/elements/view.d.mts +15 -0
- package/dist/dev/ttIntrinsicElements/elements/web-view.d.mts +15 -0
- package/dist/dev/ttIntrinsicElements.d.mts +88 -0
- package/dist/dev/version.d.mts +4 -0
- package/dist/dev/vue-augment.d.mts +8 -0
- package/dist/dev/vue-demi.d.mts +87 -0
- package/dist/dev/vue-demi.mjs +12 -15
- package/dist/dev/vue-demi.mjs.map +1 -1
- package/dist/dev/vue-types.d.mts +19 -0
- package/dist/dev/weappIntrinsicElements/base.d.mts +5 -0
- package/dist/dev/weappIntrinsicElements/elements/ad-custom.d.mts +14 -0
- package/dist/dev/weappIntrinsicElements/elements/ad.d.mts +17 -0
- package/dist/dev/weappIntrinsicElements/elements/audio.d.mts +21 -0
- package/dist/dev/weappIntrinsicElements/elements/block.d.mts +8 -0
- package/dist/dev/weappIntrinsicElements/elements/button.d.mts +42 -0
- package/dist/dev/weappIntrinsicElements/elements/camera.d.mts +19 -0
- package/dist/dev/weappIntrinsicElements/elements/canvas.d.mts +19 -0
- package/dist/dev/weappIntrinsicElements/elements/checkbox-group.d.mts +11 -0
- package/dist/dev/weappIntrinsicElements/elements/checkbox.d.mts +13 -0
- package/dist/dev/weappIntrinsicElements/elements/cover-image.d.mts +14 -0
- package/dist/dev/weappIntrinsicElements/elements/cover-view.d.mts +10 -0
- package/dist/dev/weappIntrinsicElements/elements/editor.d.mts +23 -0
- package/dist/dev/weappIntrinsicElements/elements/form.d.mts +17 -0
- package/dist/dev/weappIntrinsicElements/elements/functional-page-navigator.d.mts +16 -0
- package/dist/dev/weappIntrinsicElements/elements/icon.d.mts +12 -0
- package/dist/dev/weappIntrinsicElements/elements/image.d.mts +19 -0
- package/dist/dev/weappIntrinsicElements/elements/import.d.mts +10 -0
- package/dist/dev/weappIntrinsicElements/elements/include.d.mts +10 -0
- package/dist/dev/weappIntrinsicElements/elements/input.d.mts +47 -0
- package/dist/dev/weappIntrinsicElements/elements/keyboard-accessory.d.mts +8 -0
- package/dist/dev/weappIntrinsicElements/elements/label.d.mts +10 -0
- package/dist/dev/weappIntrinsicElements/elements/live-player.d.mts +36 -0
- package/dist/dev/weappIntrinsicElements/elements/live-pusher.d.mts +58 -0
- package/dist/dev/weappIntrinsicElements/elements/map.d.mts +106 -0
- package/dist/dev/weappIntrinsicElements/elements/match-media.d.mts +16 -0
- package/dist/dev/weappIntrinsicElements/elements/movable-area.d.mts +27 -0
- package/dist/dev/weappIntrinsicElements/elements/movable-view.d.mts +27 -0
- package/dist/dev/weappIntrinsicElements/elements/navigation-bar.d.mts +15 -0
- package/dist/dev/weappIntrinsicElements/elements/navigator.d.mts +26 -0
- package/dist/dev/weappIntrinsicElements/elements/official-account.d.mts +14 -0
- package/dist/dev/weappIntrinsicElements/elements/open-data.d.mts +16 -0
- package/dist/dev/weappIntrinsicElements/elements/page-container.d.mts +26 -0
- package/dist/dev/weappIntrinsicElements/elements/page-meta.d.mts +24 -0
- package/dist/dev/weappIntrinsicElements/elements/picker-view-column.d.mts +19 -0
- package/dist/dev/weappIntrinsicElements/elements/picker-view.d.mts +19 -0
- package/dist/dev/weappIntrinsicElements/elements/picker.d.mts +24 -0
- package/dist/dev/weappIntrinsicElements/elements/progress.d.mts +22 -0
- package/dist/dev/weappIntrinsicElements/elements/radio-group.d.mts +11 -0
- package/dist/dev/weappIntrinsicElements/elements/radio.d.mts +13 -0
- package/dist/dev/weappIntrinsicElements/elements/rich-text.d.mts +17 -0
- package/dist/dev/weappIntrinsicElements/elements/scroll-view.d.mts +64 -0
- package/dist/dev/weappIntrinsicElements/elements/share-element.d.mts +17 -0
- package/dist/dev/weappIntrinsicElements/elements/slider.d.mts +24 -0
- package/dist/dev/weappIntrinsicElements/elements/slot.d.mts +10 -0
- package/dist/dev/weappIntrinsicElements/elements/swiper-item.d.mts +11 -0
- package/dist/dev/weappIntrinsicElements/elements/swiper.d.mts +40 -0
- package/dist/dev/weappIntrinsicElements/elements/switch.d.mts +15 -0
- package/dist/dev/weappIntrinsicElements/elements/template.d.mts +12 -0
- package/dist/dev/weappIntrinsicElements/elements/text.d.mts +15 -0
- package/dist/dev/weappIntrinsicElements/elements/textarea.d.mts +41 -0
- package/dist/dev/weappIntrinsicElements/elements/video.d.mts +72 -0
- package/dist/dev/weappIntrinsicElements/elements/view.d.mts +15 -0
- package/dist/dev/weappIntrinsicElements/elements/voip-room.d.mts +15 -0
- package/dist/dev/weappIntrinsicElements/elements/web-view.d.mts +14 -0
- package/dist/dev/weappIntrinsicElements.d.mts +114 -0
- package/dist/dev/web-apis.d.mts +3 -0
- package/dist/fetch.d.mts +4 -4
- package/dist/index.d.mts +13 -14
- package/dist/index.mjs +1 -1
- package/dist/internal-reactivity.d.mts +2 -1
- package/dist/internal-reactivity.mjs +1 -1
- package/dist/internal-runtime.d.mts +13 -6
- package/dist/internal-runtime.mjs +1 -1
- package/dist/jsx-runtime.d.mts +51 -14
- package/dist/jsxTypes.d.mts +8 -0
- package/dist/macros/shared.d.mts +14 -15
- package/dist/macros.d.mts +22 -22
- package/dist/miniprogram/jsx-runtime.d.mts +13 -0
- package/dist/miniprogram/jsx-runtime.mjs +1 -0
- package/dist/miniprogramIntrinsicElements/base.d.mts +4 -0
- package/dist/miniprogramIntrinsicElements/elements/button.d.mts +23 -0
- package/dist/miniprogramIntrinsicElements/elements/camera.d.mts +18 -0
- package/dist/miniprogramIntrinsicElements/elements/canvas.d.mts +16 -0
- package/dist/miniprogramIntrinsicElements/elements/checkbox-group.d.mts +12 -0
- package/dist/miniprogramIntrinsicElements/elements/checkbox.d.mts +13 -0
- package/dist/miniprogramIntrinsicElements/elements/form.d.mts +13 -0
- package/dist/miniprogramIntrinsicElements/elements/icon.d.mts +12 -0
- package/dist/miniprogramIntrinsicElements/elements/image.d.mts +16 -0
- package/dist/miniprogramIntrinsicElements/elements/input.d.mts +29 -0
- package/dist/miniprogramIntrinsicElements/elements/label.d.mts +11 -0
- package/dist/miniprogramIntrinsicElements/elements/map.d.mts +31 -0
- package/dist/miniprogramIntrinsicElements/elements/match-media.d.mts +13 -0
- package/dist/miniprogramIntrinsicElements/elements/movable-area.d.mts +9 -0
- package/dist/miniprogramIntrinsicElements/elements/movable-view.d.mts +26 -0
- package/dist/miniprogramIntrinsicElements/elements/navigator.d.mts +15 -0
- package/dist/miniprogramIntrinsicElements/elements/picker-view-column.d.mts +9 -0
- package/dist/miniprogramIntrinsicElements/elements/picker-view.d.mts +20 -0
- package/dist/miniprogramIntrinsicElements/elements/picker.d.mts +14 -0
- package/dist/miniprogramIntrinsicElements/elements/progress.d.mts +12 -0
- package/dist/miniprogramIntrinsicElements/elements/radio-group.d.mts +12 -0
- package/dist/miniprogramIntrinsicElements/elements/radio.d.mts +13 -0
- package/dist/miniprogramIntrinsicElements/elements/rich-text.d.mts +11 -0
- package/dist/miniprogramIntrinsicElements/elements/scroll-view.d.mts +22 -0
- package/dist/miniprogramIntrinsicElements/elements/slider.d.mts +19 -0
- package/dist/miniprogramIntrinsicElements/elements/swiper-item.d.mts +9 -0
- package/dist/miniprogramIntrinsicElements/elements/swiper.d.mts +24 -0
- package/dist/miniprogramIntrinsicElements/elements/switch.d.mts +14 -0
- package/dist/miniprogramIntrinsicElements/elements/text.d.mts +13 -0
- package/dist/miniprogramIntrinsicElements/elements/textarea.d.mts +23 -0
- package/dist/miniprogramIntrinsicElements/elements/video.d.mts +29 -0
- package/dist/miniprogramIntrinsicElements/elements/view.d.mts +16 -0
- package/dist/miniprogramIntrinsicElements/elements/web-view.d.mts +15 -0
- package/dist/miniprogramIntrinsicElements.d.mts +70 -0
- package/dist/package.mjs +1 -1
- package/dist/reactivity/asyncDerivation.d.mts +40 -0
- package/dist/reactivity/asyncDerivation.mjs +1 -0
- package/dist/reactivity/computed.d.mts +8 -9
- package/dist/reactivity/computed.mjs +1 -1
- package/dist/reactivity/core.d.mts +15 -15
- package/dist/reactivity/core.mjs +1 -1
- package/dist/reactivity/index.d.mts +2 -1
- package/dist/reactivity/reactive/mutation.d.mts +6 -7
- package/dist/reactivity/reactive/patch.d.mts +4 -5
- package/dist/reactivity/reactive/shallow.d.mts +3 -4
- package/dist/reactivity/reactive/shared.d.mts +2 -3
- package/dist/reactivity/reactive.d.mts +6 -6
- package/dist/reactivity/readonly.d.mts +7 -8
- package/dist/reactivity/ref.d.mts +14 -15
- package/dist/reactivity/ref.mjs +1 -1
- package/dist/reactivity/shallowRef.d.mts +5 -6
- package/dist/reactivity/toRefs.d.mts +5 -6
- package/dist/reactivity/traverse.d.mts +2 -3
- package/dist/reactivity/watch/types.d.mts +18 -19
- package/dist/reactivity/watch.d.mts +8 -8
- package/dist/router/createRouter.d.mts +2 -3
- package/dist/router/navigationCore.d.mts +3 -4
- package/dist/router/resolve.d.mts +2 -3
- package/dist/router/routeSync.mjs +1 -1
- package/dist/router/types.d.mts +38 -39
- package/dist/router/useRoute.d.mts +5 -6
- package/dist/router/useRoute.mjs +1 -1
- package/dist/router/useRouter.d.mts +2 -3
- package/dist/routerInternal/query.d.mts +3 -4
- package/dist/routerInternal/types.d.mts +2 -3
- package/dist/runtime/app/computed.mjs +1 -1
- package/dist/runtime/app/context.mjs +1 -1
- package/dist/runtime/app/diagnostics.mjs +1 -1
- package/dist/runtime/app/mount.mjs +1 -1
- package/dist/runtime/app/pending.d.mts +3 -4
- package/dist/runtime/app/setData/commitTracker.d.mts +12 -0
- package/dist/runtime/app/setData/commitTracker.mjs +1 -0
- package/dist/runtime/app/setData/patchScheduler.mjs +1 -1
- package/dist/runtime/app/setData/scheduler.d.mts +50 -0
- package/dist/runtime/app/setData/scheduler.mjs +1 -1
- package/dist/runtime/app/setData/snapshot.mjs +1 -1
- package/dist/runtime/app.d.mts +2 -3
- package/dist/runtime/app.mjs +1 -1
- package/dist/runtime/bindingManifest.mjs +1 -0
- package/dist/runtime/capabilities.d.mts +74 -0
- package/dist/runtime/capabilities.mjs +1 -0
- package/dist/runtime/css.d.mts +3 -4
- package/dist/runtime/defaults.d.mts +5 -6
- package/dist/runtime/define/componentDefinition.mjs +1 -1
- package/dist/runtime/define/optionsApi.mjs +1 -1
- package/dist/runtime/define/props.mjs +1 -1
- package/dist/runtime/define/scopedSlotOptions.mjs +1 -1
- package/dist/runtime/define.d.mts +18 -27
- package/dist/runtime/define.mjs +1 -1
- package/dist/runtime/diff.mjs +1 -1
- package/dist/runtime/disposables.d.mts +6 -7
- package/dist/runtime/elementIntersectionObserver.d.mts +5 -6
- package/dist/runtime/features/inlineEvents.d.mts +6 -0
- package/dist/runtime/features/inlineEvents.mjs +1 -0
- package/dist/runtime/features/layout.d.mts +6 -0
- package/dist/runtime/features/layout.mjs +1 -0
- package/dist/runtime/features/patchStrategy.d.mts +6 -0
- package/dist/runtime/features/patchStrategy.mjs +1 -0
- package/dist/runtime/features/publicLayout.d.mts +23 -0
- package/dist/runtime/features/publicLayout.mjs +1 -0
- package/dist/runtime/features/scopedSlots.d.mts +22 -0
- package/dist/runtime/features/scopedSlots.mjs +1 -0
- package/dist/runtime/features/setDataHighFrequencyWarning.d.mts +6 -0
- package/dist/runtime/features/setDataHighFrequencyWarning.mjs +1 -0
- package/dist/runtime/features/templateRefs.d.mts +6 -0
- package/dist/runtime/features/templateRefs.mjs +1 -0
- package/dist/runtime/hooks/base.d.mts +7 -8
- package/dist/runtime/hooks/register.d.mts +26 -27
- package/dist/runtime/hooks/vue.d.mts +13 -15
- package/dist/runtime/hooks/vue.mjs +1 -1
- package/dist/runtime/index.d.mts +12 -14
- package/dist/runtime/inlineDataset.mjs +1 -0
- package/dist/runtime/intersectionObserver.d.mts +4 -5
- package/dist/runtime/jsxIsland.d.mts +20 -25
- package/dist/runtime/layoutBridge.d.mts +12 -17
- package/dist/runtime/noSetData.d.mts +3 -4
- package/dist/runtime/pageEnvironment.d.mts +9 -10
- package/dist/runtime/pageLayout.d.mts +9 -11
- package/dist/runtime/pageScroll.d.mts +4 -5
- package/dist/runtime/provide.d.mts +7 -7
- package/dist/runtime/provideStore.d.mts +2 -3
- package/dist/runtime/publicRuntime.d.mts +21 -0
- package/dist/runtime/publicRuntime.mjs +1 -0
- package/dist/runtime/pullDownRefresh.d.mts +4 -5
- package/dist/runtime/register/app.d.mts +2 -3
- package/dist/runtime/register/app.mjs +1 -1
- package/dist/runtime/register/component/lifecycle.mjs +1 -1
- package/dist/runtime/register/component/methods.mjs +1 -1
- package/dist/runtime/register/component/registerDefinition.mjs +1 -1
- package/dist/runtime/register/component.d.mts +2 -3
- package/dist/runtime/register/inline.d.mts +3 -4
- package/dist/runtime/register/inline.mjs +1 -1
- package/dist/runtime/register/runtimeInstance/setupContext.mjs +1 -1
- package/dist/runtime/register/runtimeInstance/setupPhase.mjs +1 -1
- package/dist/runtime/register/runtimeInstance/setupSnapshot.mjs +1 -0
- package/dist/runtime/register/runtimeInstance.d.mts +4 -5
- package/dist/runtime/register/runtimeInstance.mjs +1 -1
- package/dist/runtime/register/setup.d.mts +2 -3
- package/dist/runtime/register/snapshot.mjs +1 -1
- package/dist/runtime/register/watch.d.mts +3 -4
- package/dist/runtime/scopedSlots.mjs +1 -1
- package/dist/runtime/selectorQuery.d.mts +15 -16
- package/dist/runtime/selectorQuery.mjs +1 -1
- package/dist/runtime/teardown.mjs +1 -0
- package/dist/runtime/template.d.mts +4 -5
- package/dist/runtime/templateRefTypes.d.mts +7 -3
- package/dist/runtime/templateRefs.mjs +1 -1
- package/dist/runtime/types/core.d.mts +9 -10
- package/dist/runtime/types/miniprogram.d.mts +13 -10
- package/dist/runtime/types/miniprogramHost.d.mts +41 -41
- package/dist/runtime/types/miniprogramHostSources.d.mts +21 -22
- package/dist/runtime/types/options.d.mts +8 -9
- package/dist/runtime/types/props/propTypes.d.mts +16 -17
- package/dist/runtime/types/props/router.d.mts +13 -14
- package/dist/runtime/types/props/setup.d.mts +7 -8
- package/dist/runtime/types/props.d.mts +1 -1
- package/dist/runtime/types/runtime.d.mts +7 -8
- package/dist/runtime/types/setData.d.mts +21 -5
- package/dist/runtime/types.d.mts +10 -10
- package/dist/runtime/uniAppHost.d.mts +2 -3
- package/dist/runtime/updatePerformance.d.mts +5 -6
- package/dist/runtime/use.d.mts +3 -4
- package/dist/runtime/vueCompat/context.d.mts +4 -5
- package/dist/runtime/vueCompat/model.d.mts +9 -10
- package/dist/runtime/vueCompat/router.d.mts +3 -4
- package/dist/runtime/vueCompat/templateRef.d.mts +4 -5
- package/dist/runtime/vueCompat/templateRef.mjs +1 -1
- package/dist/scheduler.d.mts +2 -3
- package/dist/store/base.mjs +1 -1
- package/dist/store/define/optionsStyle.mjs +1 -1
- package/dist/store/define/setupStyle.mjs +1 -1
- package/dist/store/define/shared.mjs +1 -1
- package/dist/store/define.d.mts +12 -11
- package/dist/store/manager.d.mts +2 -3
- package/dist/store/storeToRefs.d.mts +3 -4
- package/dist/store/types.d.mts +12 -13
- package/dist/tt/jsx-runtime.d.mts +13 -0
- package/dist/tt/jsx-runtime.mjs +1 -0
- package/dist/ttIntrinsicElements/base.d.mts +4 -0
- package/dist/ttIntrinsicElements/elements/ad.d.mts +7 -0
- package/dist/ttIntrinsicElements/elements/aweme-data.d.mts +14 -0
- package/dist/ttIntrinsicElements/elements/aweme-user-card.d.mts +15 -0
- package/dist/ttIntrinsicElements/elements/button.d.mts +22 -0
- package/dist/ttIntrinsicElements/elements/camera.d.mts +18 -0
- package/dist/ttIntrinsicElements/elements/canvas.d.mts +15 -0
- package/dist/ttIntrinsicElements/elements/checkbox-group.d.mts +11 -0
- package/dist/ttIntrinsicElements/elements/checkbox.d.mts +11 -0
- package/dist/ttIntrinsicElements/elements/draw-ad.d.mts +15 -0
- package/dist/ttIntrinsicElements/elements/form.d.mts +13 -0
- package/dist/ttIntrinsicElements/elements/icon.d.mts +10 -0
- package/dist/ttIntrinsicElements/elements/image.d.mts +15 -0
- package/dist/ttIntrinsicElements/elements/input.d.mts +31 -0
- package/dist/ttIntrinsicElements/elements/label.d.mts +9 -0
- package/dist/ttIntrinsicElements/elements/live-player.d.mts +18 -0
- package/dist/ttIntrinsicElements/elements/live-preview.d.mts +12 -0
- package/dist/ttIntrinsicElements/elements/map.d.mts +35 -0
- package/dist/ttIntrinsicElements/elements/mask.d.mts +7 -0
- package/dist/ttIntrinsicElements/elements/match-media.d.mts +15 -0
- package/dist/ttIntrinsicElements/elements/movable-area.d.mts +9 -0
- package/dist/ttIntrinsicElements/elements/movable-view.d.mts +26 -0
- package/dist/ttIntrinsicElements/elements/navigator.d.mts +15 -0
- package/dist/ttIntrinsicElements/elements/open-data.d.mts +14 -0
- package/dist/ttIntrinsicElements/elements/picker-view-column.d.mts +7 -0
- package/dist/ttIntrinsicElements/elements/picker-view.d.mts +18 -0
- package/dist/ttIntrinsicElements/elements/picker.d.mts +21 -0
- package/dist/ttIntrinsicElements/elements/progress.d.mts +15 -0
- package/dist/ttIntrinsicElements/elements/radio-group.d.mts +11 -0
- package/dist/ttIntrinsicElements/elements/radio.d.mts +11 -0
- package/dist/ttIntrinsicElements/elements/rich-text.d.mts +9 -0
- package/dist/ttIntrinsicElements/elements/rtc-room.d.mts +12 -0
- package/dist/ttIntrinsicElements/elements/scroll-view.d.mts +31 -0
- package/dist/ttIntrinsicElements/elements/slider.d.mts +18 -0
- package/dist/ttIntrinsicElements/elements/swiper-item.d.mts +9 -0
- package/dist/ttIntrinsicElements/elements/swiper.d.mts +26 -0
- package/dist/ttIntrinsicElements/elements/switch.d.mts +13 -0
- package/dist/ttIntrinsicElements/elements/text.d.mts +11 -0
- package/dist/ttIntrinsicElements/elements/textarea.d.mts +33 -0
- package/dist/ttIntrinsicElements/elements/video.d.mts +57 -0
- package/dist/ttIntrinsicElements/elements/view.d.mts +14 -0
- package/dist/ttIntrinsicElements/elements/web-view.d.mts +14 -0
- package/dist/ttIntrinsicElements.d.mts +88 -0
- package/dist/version.d.mts +2 -3
- package/dist/vue-augment.d.mts +2 -1
- package/dist/vue-demi.d.mts +17 -18
- package/dist/vue-demi.mjs +1 -1
- package/dist/vue-types.d.mts +2 -2
- package/dist/weapp/jsx-runtime.d.mts +13 -0
- package/dist/weapp/jsx-runtime.mjs +1 -0
- package/dist/weappIntrinsicElements/base.d.mts +3 -21
- package/dist/weappIntrinsicElements/elements/ad-custom.d.mts +6 -6
- package/dist/weappIntrinsicElements/elements/ad.d.mts +7 -7
- package/dist/weappIntrinsicElements/elements/audio.d.mts +9 -9
- package/dist/weappIntrinsicElements/elements/block.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/button.d.mts +18 -17
- package/dist/weappIntrinsicElements/elements/camera.d.mts +12 -12
- package/dist/weappIntrinsicElements/elements/canvas.d.mts +10 -10
- package/dist/weappIntrinsicElements/elements/checkbox-group.d.mts +6 -9
- package/dist/weappIntrinsicElements/elements/checkbox.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/cover-image.d.mts +9 -6
- package/dist/weappIntrinsicElements/elements/cover-view.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/editor.d.mts +9 -9
- package/dist/weappIntrinsicElements/elements/form.d.mts +7 -7
- package/dist/weappIntrinsicElements/elements/functional-page-navigator.d.mts +9 -9
- package/dist/weappIntrinsicElements/elements/icon.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/image.d.mts +7 -7
- package/dist/weappIntrinsicElements/elements/import.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/include.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/input.d.mts +17 -18
- package/dist/weappIntrinsicElements/elements/keyboard-accessory.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/label.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/live-player.d.mts +18 -18
- package/dist/weappIntrinsicElements/elements/live-pusher.d.mts +19 -19
- package/dist/weappIntrinsicElements/elements/map.d.mts +18 -18
- package/dist/weappIntrinsicElements/elements/match-media.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/movable-area.d.mts +8 -8
- package/dist/weappIntrinsicElements/elements/movable-view.d.mts +8 -8
- package/dist/weappIntrinsicElements/elements/navigation-bar.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/navigator.d.mts +10 -10
- package/dist/weappIntrinsicElements/elements/official-account.d.mts +6 -6
- package/dist/weappIntrinsicElements/elements/open-data.d.mts +5 -5
- package/dist/weappIntrinsicElements/elements/page-container.d.mts +11 -11
- package/dist/weappIntrinsicElements/elements/page-meta.d.mts +7 -7
- package/dist/weappIntrinsicElements/elements/picker-view-column.d.mts +7 -7
- package/dist/weappIntrinsicElements/elements/picker-view.d.mts +7 -7
- package/dist/weappIntrinsicElements/elements/picker.d.mts +9 -9
- package/dist/weappIntrinsicElements/elements/progress.d.mts +5 -5
- package/dist/weappIntrinsicElements/elements/radio-group.d.mts +6 -9
- package/dist/weappIntrinsicElements/elements/radio.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/rich-text.d.mts +6 -7
- package/dist/weappIntrinsicElements/elements/scroll-view.d.mts +20 -25
- package/dist/weappIntrinsicElements/elements/share-element.d.mts +5 -7
- package/dist/weappIntrinsicElements/elements/slider.d.mts +6 -6
- package/dist/weappIntrinsicElements/elements/slot.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/swiper-item.d.mts +6 -38
- package/dist/weappIntrinsicElements/elements/swiper.d.mts +11 -14
- package/dist/weappIntrinsicElements/elements/switch.d.mts +5 -5
- package/dist/weappIntrinsicElements/elements/template.d.mts +3 -4
- package/dist/weappIntrinsicElements/elements/text.d.mts +5 -6
- package/dist/weappIntrinsicElements/elements/textarea.d.mts +16 -16
- package/dist/weappIntrinsicElements/elements/video.d.mts +24 -24
- package/dist/weappIntrinsicElements/elements/view.d.mts +5 -4
- package/dist/weappIntrinsicElements/elements/voip-room.d.mts +7 -7
- package/dist/weappIntrinsicElements/elements/web-view.d.mts +7 -7
- package/dist/weappIntrinsicElements.d.mts +111 -150
- package/package.json +19 -19
- package/dist/dev/jsx-runtime.mjs +0 -1
- package/dist/runtime/templateRefs.d.mts +0 -11
- /package/dist/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/defineProperty.mjs +0 -0
- /package/dist/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/toPrimitive.mjs +0 -0
- /package/dist/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/toPropertyKey.mjs +0 -0
- /package/dist/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/typeof.mjs +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.mjs","names":[],"sources":["../../../src/runtime/app.ts"],"sourcesContent":["import type {\n AppConfig,\n ComputedDefinitions,\n CreateAppOptions,\n MethodDefinitions,\n RuntimeApp,\n WevuPlugin,\n} from './types'\nimport { version } from '../version'\nimport { createRuntimeMount } from './app/mount'\nimport { setPendingRuntimeAppRegistration } from './app/pending'\nimport { applyWevuAppDefaults, INTERNAL_DEFAULTS_SCOPE_KEY } from './defaults'\nimport { getMiniProgramGlobalObject } from './platform'\nimport { ensureRuntimeAppProvides, setRuntimeAppProvidedValue } from './provideContext'\nimport { registerApp } from './register'\n\nexport function createApp<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(\n options: CreateAppOptions<D, C, M>,\n): RuntimeApp<D, C, M> {\n const defaultsScope = (options as any)[INTERNAL_DEFAULTS_SCOPE_KEY] as string | undefined\n const resolvedOptions = defaultsScope === 'component'\n ? options\n : applyWevuAppDefaults(options)\n const {\n [INTERNAL_DEFAULTS_SCOPE_KEY]: _ignoredDefaultsScope,\n data,\n computed: computedOptions,\n methods,\n setData: setDataOptions,\n watch: appWatch,\n setup: appSetup,\n ...mpOptions\n } = resolvedOptions\n const resolvedMethods = methods ?? ({} as M)\n const resolvedComputed = computedOptions ?? ({} as C)\n\n const installedPlugins = new Set<WevuPlugin>()\n const appUnmountCleanups = new Set<() => void>()\n let appUnmounted = false\n const appConfig: AppConfig = { globalProperties: {} }\n const mount = createRuntimeMount<D, C, M>({\n data,\n resolvedComputed,\n resolvedMethods,\n appConfig,\n setDataOptions,\n })\n\n const runtimeApp: RuntimeApp<D, C, M> = {\n mount,\n use(plugin: WevuPlugin, ...options: any[]) {\n if (!plugin || installedPlugins.has(plugin)) {\n return runtimeApp\n }\n installedPlugins.add(plugin)\n if (typeof plugin === 'function') {\n plugin(runtimeApp, ...options)\n }\n else if (typeof plugin.install === 'function') {\n plugin.install(runtimeApp, ...options)\n }\n else {\n throw new TypeError('插件必须是函数,或包含 install 方法的对象')\n }\n return runtimeApp\n },\n provide(key: any, value: any) {\n setRuntimeAppProvidedValue(runtimeApp, key, value, {\n syncGlobal: defaultsScope !== 'component',\n })\n return runtimeApp\n },\n onUnmount(cleanup: () => void) {\n if (typeof cleanup !== 'function') {\n throw new TypeError('onUnmount 只接受函数')\n }\n if (appUnmounted) {\n cleanup()\n return runtimeApp\n }\n appUnmountCleanups.add(cleanup)\n return runtimeApp\n },\n unmount() {\n if (appUnmounted) {\n return\n }\n appUnmounted = true\n for (const cleanup of appUnmountCleanups) {\n cleanup()\n }\n appUnmountCleanups.clear()\n },\n config: appConfig,\n version,\n }\n\n try {\n ensureRuntimeAppProvides(runtimeApp)\n Object.defineProperty(runtimeApp as Record<string, any>, '__wevuSetDataOptions', {\n value: setDataOptions,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n Object.defineProperty(runtimeApp as Record<string, any>, '__wevuHasTemplateRuntimeBindings', {\n value:
|
|
1
|
+
{"version":3,"file":"app.mjs","names":[],"sources":["../../../src/runtime/app.ts"],"sourcesContent":["import type { WevuRuntimeBindingManifestV1 } from '@weapp-core/constants'\nimport type {\n AppConfig,\n ComputedDefinitions,\n CreateAppOptions,\n MethodDefinitions,\n RuntimeApp,\n WevuPlugin,\n} from './types'\nimport {\n WEVU_BINDING_MANIFEST_KEY,\n WEVU_INLINE_HANDLER,\n WEVU_INLINE_MAP_KEY,\n WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY,\n WEVU_SLOT_OWNER_ID_KEY,\n} from '@weapp-core/constants'\nimport { version } from '../version'\nimport { createRuntimeMount } from './app/mount'\nimport { setPendingRuntimeAppRegistration } from './app/pending'\nimport { resolveBindingManifest } from './bindingManifest'\nimport { isSetDataHighFrequencyWarningRequested, requireRuntimeCapability } from './capabilities'\nimport { applyWevuAppDefaults, INTERNAL_DEFAULTS_SCOPE_KEY } from './defaults'\nimport { getMiniProgramGlobalObject } from './platform'\nimport { ensureRuntimeAppProvides, setRuntimeAppProvidedValue } from './provideContext'\nimport { registerApp } from './register'\n\nexport function createApp<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(\n options: CreateAppOptions<D, C, M>,\n): RuntimeApp<D, C, M> {\n const defaultsScope = (options as any)[INTERNAL_DEFAULTS_SCOPE_KEY] as string | undefined\n const resolvedOptions = defaultsScope === 'component'\n ? options\n : applyWevuAppDefaults(options)\n const {\n [INTERNAL_DEFAULTS_SCOPE_KEY]: _ignoredDefaultsScope,\n [WEVU_BINDING_MANIFEST_KEY]: rawBindingManifest,\n [WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY]: scopedSlotOwnerRequired,\n data,\n computed: computedOptions,\n methods,\n setData: setDataOptions,\n watch: appWatch,\n setup: appSetup,\n ...mpOptions\n } = resolvedOptions as typeof resolvedOptions & { [WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY]?: boolean }\n const bindingManifest: WevuRuntimeBindingManifestV1 | undefined = resolveBindingManifest(rawBindingManifest)\n const resolvedMethods = methods ?? ({} as M)\n const resolvedComputed = computedOptions ?? ({} as C)\n const hasScopedSlotBindings = scopedSlotOwnerRequired === true\n || (Array.isArray(setDataOptions?.pick) && setDataOptions.pick.includes(WEVU_SLOT_OWNER_ID_KEY))\n const methodRecord = resolvedMethods as unknown as Record<string, unknown>\n const inlineMap = methodRecord[WEVU_INLINE_MAP_KEY]\n const hasInlineMetadata = Object.prototype.hasOwnProperty.call(methodRecord, WEVU_INLINE_MAP_KEY)\n && inlineMap\n && typeof inlineMap === 'object'\n && Object.keys(inlineMap).length > 0\n if (\n hasInlineMetadata\n && typeof methodRecord[WEVU_INLINE_HANDLER] !== 'function'\n && typeof (mpOptions as Record<string, unknown>)[WEVU_INLINE_HANDLER] !== 'function'\n ) {\n requireRuntimeCapability('inlineEvents', 'createApp(inline event metadata)')\n }\n if (setDataOptions?.strategy === 'patch') {\n requireRuntimeCapability('patchStrategy', 'createApp(setData.strategy=\"patch\")')\n }\n if (isSetDataHighFrequencyWarningRequested(setDataOptions?.highFrequencyWarning)) {\n requireRuntimeCapability('setDataHighFrequencyWarning', 'createApp(setData.highFrequencyWarning)')\n }\n if (hasScopedSlotBindings) {\n requireRuntimeCapability('scopedSlots', 'createApp(scoped-slot bindings)')\n }\n\n const installedPlugins = new Set<WevuPlugin>()\n const appUnmountCleanups = new Set<() => void>()\n let appUnmounted = false\n const appConfig: AppConfig = { globalProperties: {} }\n const mount = createRuntimeMount<D, C, M>({\n data,\n resolvedComputed,\n resolvedMethods,\n appConfig,\n setDataOptions,\n bindingManifest,\n })\n\n const runtimeApp: RuntimeApp<D, C, M> = {\n mount,\n use(plugin: WevuPlugin, ...options: any[]) {\n if (!plugin || installedPlugins.has(plugin)) {\n return runtimeApp\n }\n installedPlugins.add(plugin)\n if (typeof plugin === 'function') {\n plugin(runtimeApp, ...options)\n }\n else if (typeof plugin.install === 'function') {\n plugin.install(runtimeApp, ...options)\n }\n else {\n throw new TypeError('插件必须是函数,或包含 install 方法的对象')\n }\n return runtimeApp\n },\n provide(key: any, value: any) {\n setRuntimeAppProvidedValue(runtimeApp, key, value, {\n syncGlobal: defaultsScope !== 'component',\n })\n return runtimeApp\n },\n onUnmount(cleanup: () => void) {\n if (typeof cleanup !== 'function') {\n throw new TypeError('onUnmount 只接受函数')\n }\n if (appUnmounted) {\n cleanup()\n return runtimeApp\n }\n appUnmountCleanups.add(cleanup)\n return runtimeApp\n },\n unmount() {\n if (appUnmounted) {\n return\n }\n appUnmounted = true\n for (const cleanup of appUnmountCleanups) {\n cleanup()\n }\n appUnmountCleanups.clear()\n },\n config: appConfig,\n version,\n }\n\n try {\n ensureRuntimeAppProvides(runtimeApp)\n Object.defineProperty(runtimeApp as Record<string, any>, '__wevuSetDataOptions', {\n value: setDataOptions,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n Object.defineProperty(runtimeApp as Record<string, any>, '__wevuHasTemplateRuntimeBindings', {\n value: hasScopedSlotBindings,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(runtimeApp as any).__wevuSetDataOptions = setDataOptions\n ;(runtimeApp as any).__wevuHasTemplateRuntimeBindings = hasScopedSlotBindings\n }\n\n const registerRuntimeApp = () => {\n const globalObject = getMiniProgramGlobalObject()\n const appRegisterKey = '__wevuAppRegistered'\n const hasRegistered = globalObject ? Boolean(globalObject[appRegisterKey]) : false\n // 开发者工具/HMR 可能重复执行入口,避免多次 App() 导致 AppService 事件监听累积。\n if (!hasRegistered) {\n if (globalObject) {\n globalObject[appRegisterKey] = true\n }\n // 若检测到全局 App 构造器则自动注册小程序 App\n registerApp<D, C, M>(runtimeApp, (methods ?? {}) as any, appWatch as any, appSetup as any, mpOptions as any)\n }\n }\n\n if (defaultsScope !== 'component' && typeof App === 'function') {\n registerRuntimeApp()\n }\n else if (defaultsScope !== 'component') {\n setPendingRuntimeAppRegistration({\n app: runtimeApp,\n register: registerRuntimeApp,\n })\n }\n\n return runtimeApp\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
//#region src/runtime/bindingManifest.ts
|
|
2
|
+
const BINDING_UPDATE_MODES = {
|
|
3
|
+
"exact-path": true,
|
|
4
|
+
"snapshot-fallback": true,
|
|
5
|
+
"top-level": true
|
|
6
|
+
};
|
|
7
|
+
function isStringArray(value) {
|
|
8
|
+
return Array.isArray(value) && value.every((item) => typeof item === "string");
|
|
9
|
+
}
|
|
10
|
+
function isFiniteInteger(value) {
|
|
11
|
+
return typeof value === "number" && Number.isFinite(value) && Number.isInteger(value);
|
|
12
|
+
}
|
|
13
|
+
function isSourcePosition(value) {
|
|
14
|
+
if (!value || typeof value !== "object") return false;
|
|
15
|
+
const position = value;
|
|
16
|
+
return isFiniteInteger(position.offset) && position.offset >= 0 && isFiniteInteger(position.line) && position.line >= 1 && isFiniteInteger(position.column) && position.column >= 1;
|
|
17
|
+
}
|
|
18
|
+
function isSourceLocation(value) {
|
|
19
|
+
if (!value || typeof value !== "object") return false;
|
|
20
|
+
const location = value;
|
|
21
|
+
const start = location.start;
|
|
22
|
+
const end = location.end;
|
|
23
|
+
return isSourcePosition(start) && isSourcePosition(end) && end.offset >= start.offset;
|
|
24
|
+
}
|
|
25
|
+
function hasValidFeatures(value) {
|
|
26
|
+
return Object.values(value).every((feature) => feature === true);
|
|
27
|
+
}
|
|
28
|
+
function isBindingRecord(value) {
|
|
29
|
+
if (!value || typeof value !== "object") return false;
|
|
30
|
+
const binding = value;
|
|
31
|
+
return typeof binding.id === "string" && binding.id.length > 0 && typeof binding.outputPath === "string" && binding.outputPath.length > 0 && (binding.sourceFile === void 0 || typeof binding.sourceFile === "string" && binding.sourceFile.length > 0) && (binding.updateMode === void 0 || typeof binding.updateMode === "string" && BINDING_UPDATE_MODES[binding.updateMode] === true) && (binding.sourceRoots === void 0 || isStringArray(binding.sourceRoots)) && (binding.sourceLocation === void 0 || isSourceLocation(binding.sourceLocation));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 仅接受当前运行时理解的 Binding Manifest 版本。
|
|
35
|
+
*/
|
|
36
|
+
function resolveBindingManifest(value) {
|
|
37
|
+
if (!value || typeof value !== "object") return;
|
|
38
|
+
const manifest = value;
|
|
39
|
+
if (manifest.version !== 1 || typeof manifest.sourceFile !== "string" || !Array.isArray(manifest.bindings) || !manifest.bindings.every(isBindingRecord) || manifest.features !== void 0 && (!manifest.features || typeof manifest.features !== "object" || Array.isArray(manifest.features) || !hasValidFeatures(manifest.features))) return;
|
|
40
|
+
return manifest;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 判断清单是否声明了指定输出路径。
|
|
44
|
+
*/
|
|
45
|
+
function hasBindingOutputPath(manifest, outputPath) {
|
|
46
|
+
var _manifest$bindings$so;
|
|
47
|
+
return (_manifest$bindings$so = manifest === null || manifest === void 0 ? void 0 : manifest.bindings.some((binding) => binding.outputPath === outputPath)) !== null && _manifest$bindings$so !== void 0 ? _manifest$bindings$so : false;
|
|
48
|
+
}
|
|
49
|
+
function normalizeBindingPath(path) {
|
|
50
|
+
return path.replace(/\[(?:'([^']+)'|"([^"]+)"|([^\]]+))\]/g, (_match, single, double, bare) => {
|
|
51
|
+
var _ref;
|
|
52
|
+
return `.${(_ref = single !== null && single !== void 0 ? single : double) !== null && _ref !== void 0 ? _ref : bare}`;
|
|
53
|
+
}).replace(/^\./, "");
|
|
54
|
+
}
|
|
55
|
+
function topLevelPath(path) {
|
|
56
|
+
var _normalizeBindingPath;
|
|
57
|
+
return (_normalizeBindingPath = normalizeBindingPath(path).split(".", 1)[0]) !== null && _normalizeBindingPath !== void 0 ? _normalizeBindingPath : "";
|
|
58
|
+
}
|
|
59
|
+
function pathsOverlap(left, right) {
|
|
60
|
+
const normalizedLeft = normalizeBindingPath(left);
|
|
61
|
+
const normalizedRight = normalizeBindingPath(right);
|
|
62
|
+
return normalizedLeft === normalizedRight || normalizedLeft.startsWith(`${normalizedRight}.`) || normalizedRight.startsWith(`${normalizedLeft}.`);
|
|
63
|
+
}
|
|
64
|
+
function getBindingUpdateMode(binding) {
|
|
65
|
+
var _binding$updateMode;
|
|
66
|
+
return (_binding$updateMode = binding.updateMode) !== null && _binding$updateMode !== void 0 ? _binding$updateMode : "exact-path";
|
|
67
|
+
}
|
|
68
|
+
function matchesBindingPath(binding, path) {
|
|
69
|
+
var _binding$sourceRoots;
|
|
70
|
+
if (!path) return false;
|
|
71
|
+
const updateMode = getBindingUpdateMode(binding);
|
|
72
|
+
if (updateMode === "snapshot-fallback" && binding.outputPath === "*") return true;
|
|
73
|
+
if (updateMode === "exact-path") return pathsOverlap(binding.outputPath, path);
|
|
74
|
+
const pathRoot = topLevelPath(path);
|
|
75
|
+
if (topLevelPath(binding.outputPath) === pathRoot) return true;
|
|
76
|
+
return updateMode === "snapshot-fallback" && ((_binding$sourceRoots = binding.sourceRoots) !== null && _binding$sourceRoots !== void 0 ? _binding$sourceRoots : []).some((sourceRoot) => topLevelPath(sourceRoot) === pathRoot);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 按实际 setData 路径惰性解析相关模板绑定,保持清单顺序并按 id 去重。
|
|
80
|
+
*/
|
|
81
|
+
function resolveBindingDiagnostics(manifest, paths, wholeSnapshotFallback = false) {
|
|
82
|
+
const payloadPaths = [...paths];
|
|
83
|
+
const seenIds = /* @__PURE__ */ new Set();
|
|
84
|
+
const diagnostics = [];
|
|
85
|
+
for (const binding of manifest.bindings) {
|
|
86
|
+
var _binding$sourceFile;
|
|
87
|
+
if (seenIds.has(binding.id)) continue;
|
|
88
|
+
const updateMode = getBindingUpdateMode(binding);
|
|
89
|
+
if (!(payloadPaths.length > 0 ? payloadPaths.some((path) => matchesBindingPath(binding, path)) : wholeSnapshotFallback && updateMode === "snapshot-fallback")) continue;
|
|
90
|
+
seenIds.add(binding.id);
|
|
91
|
+
const diagnostic = {
|
|
92
|
+
id: binding.id,
|
|
93
|
+
outputPath: binding.outputPath,
|
|
94
|
+
updateMode,
|
|
95
|
+
sourceFile: (_binding$sourceFile = binding.sourceFile) !== null && _binding$sourceFile !== void 0 ? _binding$sourceFile : manifest.sourceFile
|
|
96
|
+
};
|
|
97
|
+
if (binding.sourceLocation) diagnostic.sourceLocation = binding.sourceLocation;
|
|
98
|
+
diagnostics.push(diagnostic);
|
|
99
|
+
}
|
|
100
|
+
return diagnostics;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
//#endregion
|
|
104
|
+
export { hasBindingOutputPath, resolveBindingDiagnostics, resolveBindingManifest };
|
|
105
|
+
//# sourceMappingURL=bindingManifest.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bindingManifest.mjs","names":[],"sources":["../../../src/runtime/bindingManifest.ts"],"sourcesContent":["import type {\n WevuBindingSourcePositionV1,\n WevuBindingUpdateMode,\n WevuRuntimeBindingManifestV1,\n WevuRuntimeBindingRecordV1,\n} from '@weapp-core/constants'\nimport type { SetDataBindingDiagnostic } from './types'\n\nconst BINDING_UPDATE_MODES: Record<string, true> = {\n 'exact-path': true,\n 'snapshot-fallback': true,\n 'top-level': true,\n}\n\nfunction isStringArray(value: unknown): value is string[] {\n return Array.isArray(value) && value.every(item => typeof item === 'string')\n}\nfunction isFiniteInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value) && Number.isInteger(value)\n}\n\nfunction isSourcePosition(value: unknown): value is WevuBindingSourcePositionV1 {\n if (!value || typeof value !== 'object') {\n return false\n }\n const position = value as Record<string, unknown>\n return isFiniteInteger(position.offset)\n && position.offset >= 0\n && isFiniteInteger(position.line)\n && position.line >= 1\n && isFiniteInteger(position.column)\n && position.column >= 1\n}\n\nfunction isSourceLocation(value: unknown) {\n if (!value || typeof value !== 'object') {\n return false\n }\n const location = value as Record<string, unknown>\n const start = location.start\n const end = location.end\n return isSourcePosition(start)\n && isSourcePosition(end)\n && end.offset >= start.offset\n}\n\nfunction hasValidFeatures(value: object) {\n return Object.values(value).every(feature => feature === true)\n}\n\nfunction isBindingRecord(value: unknown): value is WevuRuntimeBindingRecordV1 {\n if (!value || typeof value !== 'object') {\n return false\n }\n const binding = value as Partial<WevuRuntimeBindingRecordV1>\n return typeof binding.id === 'string'\n && binding.id.length > 0\n && typeof binding.outputPath === 'string'\n && binding.outputPath.length > 0\n && (binding.sourceFile === undefined\n || (typeof binding.sourceFile === 'string' && binding.sourceFile.length > 0))\n && (binding.updateMode === undefined\n || (typeof binding.updateMode === 'string' && BINDING_UPDATE_MODES[binding.updateMode] === true))\n && (binding.sourceRoots === undefined || isStringArray(binding.sourceRoots))\n && (binding.sourceLocation === undefined || isSourceLocation(binding.sourceLocation))\n}\n\n/**\n * 仅接受当前运行时理解的 Binding Manifest 版本。\n */\nexport function resolveBindingManifest(value: unknown): WevuRuntimeBindingManifestV1 | undefined {\n if (!value || typeof value !== 'object') {\n return undefined\n }\n const manifest = value as Partial<WevuRuntimeBindingManifestV1>\n if (\n manifest.version !== 1\n || typeof manifest.sourceFile !== 'string'\n || !Array.isArray(manifest.bindings)\n || !manifest.bindings.every(isBindingRecord)\n || (manifest.features !== undefined\n && (!manifest.features\n || typeof manifest.features !== 'object'\n || Array.isArray(manifest.features)\n || !hasValidFeatures(manifest.features)))\n ) {\n return undefined\n }\n return manifest as WevuRuntimeBindingManifestV1\n}\n\n/**\n * 判断清单是否声明了指定输出路径。\n */\nexport function hasBindingOutputPath(\n manifest: WevuRuntimeBindingManifestV1 | undefined,\n outputPath: string,\n) {\n return manifest?.bindings.some(binding => binding.outputPath === outputPath) ?? false\n}\n\nfunction normalizeBindingPath(path: string) {\n return path\n .replace(/\\[(?:'([^']+)'|\"([^\"]+)\"|([^\\]]+))\\]/g, (_match, single, double, bare) => `.${single ?? double ?? bare}`)\n .replace(/^\\./, '')\n}\n\nfunction topLevelPath(path: string) {\n return normalizeBindingPath(path).split('.', 1)[0] ?? ''\n}\n\nfunction pathsOverlap(left: string, right: string) {\n const normalizedLeft = normalizeBindingPath(left)\n const normalizedRight = normalizeBindingPath(right)\n return normalizedLeft === normalizedRight\n || normalizedLeft.startsWith(`${normalizedRight}.`)\n || normalizedRight.startsWith(`${normalizedLeft}.`)\n}\n\nfunction getBindingUpdateMode(binding: WevuRuntimeBindingRecordV1): WevuBindingUpdateMode {\n return binding.updateMode ?? 'exact-path'\n}\n\nfunction matchesBindingPath(binding: WevuRuntimeBindingRecordV1, path: string) {\n if (!path) {\n return false\n }\n const updateMode = getBindingUpdateMode(binding)\n if (updateMode === 'snapshot-fallback' && binding.outputPath === '*') {\n return true\n }\n if (updateMode === 'exact-path') {\n return pathsOverlap(binding.outputPath, path)\n }\n\n const pathRoot = topLevelPath(path)\n if (topLevelPath(binding.outputPath) === pathRoot) {\n return true\n }\n return updateMode === 'snapshot-fallback'\n && (binding.sourceRoots ?? []).some(sourceRoot => topLevelPath(sourceRoot) === pathRoot)\n}\n\n/**\n * 按实际 setData 路径惰性解析相关模板绑定,保持清单顺序并按 id 去重。\n */\nexport function resolveBindingDiagnostics(\n manifest: WevuRuntimeBindingManifestV1,\n paths: Iterable<string>,\n wholeSnapshotFallback = false,\n): SetDataBindingDiagnostic[] {\n const payloadPaths = [...paths]\n const seenIds = new Set<string>()\n const diagnostics: SetDataBindingDiagnostic[] = []\n\n for (const binding of manifest.bindings) {\n if (seenIds.has(binding.id)) {\n continue\n }\n const updateMode = getBindingUpdateMode(binding)\n const matches = payloadPaths.length > 0\n ? payloadPaths.some(path => matchesBindingPath(binding, path))\n : wholeSnapshotFallback && updateMode === 'snapshot-fallback'\n if (!matches) {\n continue\n }\n seenIds.add(binding.id)\n const diagnostic: SetDataBindingDiagnostic = {\n id: binding.id,\n outputPath: binding.outputPath,\n updateMode,\n sourceFile: binding.sourceFile ?? manifest.sourceFile,\n }\n if (binding.sourceLocation) {\n diagnostic.sourceLocation = binding.sourceLocation\n }\n diagnostics.push(diagnostic)\n }\n\n return diagnostics\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { ComputedDefinitions, MethodDefinitions } from "./types/core.mjs";
|
|
2
|
+
import { InternalRuntimeState, RuntimeInstance } from "./types/runtime.mjs";
|
|
3
|
+
import { SetDataSnapshotOptions } from "./types/setData.mjs";
|
|
4
|
+
import "./types.mjs";
|
|
5
|
+
import { SetDataSchedulerOptions } from "./app/setData/scheduler.mjs";
|
|
6
|
+
import { InlineExpressionMap } from "./register/inline.mjs";
|
|
7
|
+
//#region src/runtime/capabilities.d.ts
|
|
8
|
+
export type RuntimeCapabilityName = 'patchStrategy' | 'templateRefs' | 'inlineEvents' | 'setDataHighFrequencyWarning' | 'scopedSlots' | 'layout';
|
|
9
|
+
export interface TemplateRefBinding {
|
|
10
|
+
selector: string;
|
|
11
|
+
inFor: boolean;
|
|
12
|
+
name?: string;
|
|
13
|
+
get?: () => unknown;
|
|
14
|
+
kind?: 'component' | 'element';
|
|
15
|
+
}
|
|
16
|
+
export interface LayoutHostBinding {
|
|
17
|
+
key: string;
|
|
18
|
+
refName?: string;
|
|
19
|
+
selector: string;
|
|
20
|
+
kind?: 'component';
|
|
21
|
+
}
|
|
22
|
+
export interface HighFrequencyWarningMonitorOptions {
|
|
23
|
+
option: SetDataSnapshotOptions['highFrequencyWarning'];
|
|
24
|
+
targetLabel: string;
|
|
25
|
+
isInPageScrollHook?: () => boolean;
|
|
26
|
+
now?: () => number;
|
|
27
|
+
logger?: (message: string) => void;
|
|
28
|
+
}
|
|
29
|
+
export interface SetDataScheduler {
|
|
30
|
+
job: () => void | Promise<void>;
|
|
31
|
+
snapshot: () => Record<string, unknown>;
|
|
32
|
+
cloneLatestSnapshot: () => Record<string, unknown>;
|
|
33
|
+
start?: () => void;
|
|
34
|
+
dispose?: () => void;
|
|
35
|
+
}
|
|
36
|
+
export interface ScopedSlotMountState {
|
|
37
|
+
ownerId: string;
|
|
38
|
+
shouldFlushNativeOwnerId: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface RuntimeCapabilityRegistry {
|
|
41
|
+
patchStrategy?: {
|
|
42
|
+
createScheduler: (options: SetDataSchedulerOptions) => SetDataScheduler;
|
|
43
|
+
};
|
|
44
|
+
templateRefs?: {
|
|
45
|
+
attachBindings: (target: InternalRuntimeState, bindings: readonly TemplateRefBinding[]) => void;
|
|
46
|
+
hasBindings: (target: InternalRuntimeState) => boolean;
|
|
47
|
+
schedule: (target: InternalRuntimeState, onResolved?: () => void, assignmentTarget?: InternalRuntimeState, onRejected?: (cause: unknown) => void) => void;
|
|
48
|
+
scheduleOwner: (target: InternalRuntimeState) => void;
|
|
49
|
+
clear: (target: InternalRuntimeState, assignmentTarget?: InternalRuntimeState) => void;
|
|
50
|
+
};
|
|
51
|
+
inlineEvents?: {
|
|
52
|
+
handler: (this: InternalRuntimeState, event: unknown) => unknown;
|
|
53
|
+
run: (context: unknown, expression: unknown, event: unknown, map?: InlineExpressionMap) => unknown;
|
|
54
|
+
};
|
|
55
|
+
setDataHighFrequencyWarning?: {
|
|
56
|
+
createMonitor: (options: HighFrequencyWarningMonitorOptions) => (() => void) | undefined;
|
|
57
|
+
};
|
|
58
|
+
scopedSlots?: {
|
|
59
|
+
prepareMount: (target: InternalRuntimeState) => ScopedSlotMountState;
|
|
60
|
+
attachMount: <D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(target: InternalRuntimeState, runtime: RuntimeInstance<D, C, M>, state: ScopedSlotMountState, deferSnapshot: boolean) => void;
|
|
61
|
+
refresh: (target: InternalRuntimeState, state: ScopedSlotMountState) => void;
|
|
62
|
+
syncNativeOwnerId: (target: InternalRuntimeState, state: ScopedSlotMountState) => void;
|
|
63
|
+
teardown: (target: InternalRuntimeState) => void;
|
|
64
|
+
resolveLifecycleProxy: (target: InternalRuntimeState) => unknown;
|
|
65
|
+
allocateOwnerId: () => string;
|
|
66
|
+
};
|
|
67
|
+
layout?: {
|
|
68
|
+
attachPageSetter: (target: InternalRuntimeState) => void;
|
|
69
|
+
attachHosts: (bindings: readonly LayoutHostBinding[], target: InternalRuntimeState) => void;
|
|
70
|
+
detachHosts: (bindings: readonly LayoutHostBinding[], target: InternalRuntimeState) => void;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//#endregion
|
|
74
|
+
export type { SetDataSchedulerOptions };
|
|
75
|
+
//# sourceMappingURL=capabilities.d.mts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
//#region src/runtime/capabilities.ts
|
|
2
|
+
const RUNTIME_SCOPED_SLOT_STATE_KEY = "__wevuScopedSlotMountState";
|
|
3
|
+
/**
|
|
4
|
+
* 读取能力实现挂在宿主实例上的作用域插槽挂载状态。
|
|
5
|
+
*/
|
|
6
|
+
function getScopedSlotMountState(target) {
|
|
7
|
+
return target[RUNTIME_SCOPED_SLOT_STATE_KEY];
|
|
8
|
+
}
|
|
9
|
+
const mutableRuntimeCapabilityRegistry = {};
|
|
10
|
+
/**
|
|
11
|
+
* 运行时能力的只读实时视图。安装器直接替换对应槽位,核心路径不会复制能力清单。
|
|
12
|
+
*/
|
|
13
|
+
const runtimeCapabilityRegistry = mutableRuntimeCapabilityRegistry;
|
|
14
|
+
/**
|
|
15
|
+
* 注册或热替换一个运行时能力实现。
|
|
16
|
+
*/
|
|
17
|
+
function registerRuntimeCapability(name, implementation) {
|
|
18
|
+
if (mutableRuntimeCapabilityRegistry[name] === implementation) return;
|
|
19
|
+
mutableRuntimeCapabilityRegistry[name] = implementation;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 读取调用方明确请求的能力;缺失时同步失败,禁止静默降级。
|
|
23
|
+
*/
|
|
24
|
+
function requireRuntimeCapability(name, requester) {
|
|
25
|
+
const implementation = mutableRuntimeCapabilityRegistry[name];
|
|
26
|
+
if (!implementation) throw new Error(`[wevu] runtime capability "${name}" is required by ${requester}; install it before registration`);
|
|
27
|
+
return implementation;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 判断 setData 高频告警是否被显式启用。
|
|
31
|
+
*/
|
|
32
|
+
function isSetDataHighFrequencyWarningRequested(option) {
|
|
33
|
+
if (option === true) return true;
|
|
34
|
+
if (!option || typeof option !== "object" || Array.isArray(option)) return false;
|
|
35
|
+
return option.enabled !== false;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { RUNTIME_SCOPED_SLOT_STATE_KEY, getScopedSlotMountState, isSetDataHighFrequencyWarningRequested, registerRuntimeCapability, requireRuntimeCapability, runtimeCapabilityRegistry };
|
|
40
|
+
//# sourceMappingURL=capabilities.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.mjs","names":[],"sources":["../../../src/runtime/capabilities.ts"],"sourcesContent":["import type { SetDataSchedulerOptions } from './app/setData/scheduler'\nimport type { InlineExpressionMap } from './register/inline'\nimport type { ComputedDefinitions, InternalRuntimeState, MethodDefinitions, RuntimeInstance, SetDataSnapshotOptions } from './types'\n\nexport type { SetDataSchedulerOptions } from './app/setData/scheduler'\n\nexport type RuntimeCapabilityName\n = | 'patchStrategy'\n | 'templateRefs'\n | 'inlineEvents'\n | 'setDataHighFrequencyWarning'\n | 'scopedSlots'\n | 'layout'\n\nexport interface TemplateRefBinding {\n selector: string\n inFor: boolean\n name?: string\n get?: () => unknown\n kind?: 'component' | 'element'\n}\n\nexport interface LayoutHostBinding {\n key: string\n refName?: string\n selector: string\n kind?: 'component'\n}\n\nexport interface HighFrequencyWarningMonitorOptions {\n option: SetDataSnapshotOptions['highFrequencyWarning']\n targetLabel: string\n isInPageScrollHook?: () => boolean\n now?: () => number\n logger?: (message: string) => void\n}\n\nexport const RUNTIME_SCOPED_SLOT_STATE_KEY = '__wevuScopedSlotMountState'\n\nexport interface SetDataScheduler {\n job: () => void | Promise<void>\n snapshot: () => Record<string, unknown>\n cloneLatestSnapshot: () => Record<string, unknown>\n start?: () => void\n dispose?: () => void\n}\n\nexport interface ScopedSlotMountState {\n ownerId: string\n shouldFlushNativeOwnerId: boolean\n}\n\ntype RuntimeStateWithScopedSlotMount = InternalRuntimeState & {\n [RUNTIME_SCOPED_SLOT_STATE_KEY]?: ScopedSlotMountState\n}\n\n/**\n * 读取能力实现挂在宿主实例上的作用域插槽挂载状态。\n */\nexport function getScopedSlotMountState(target: InternalRuntimeState): ScopedSlotMountState | undefined {\n return (target as RuntimeStateWithScopedSlotMount)[RUNTIME_SCOPED_SLOT_STATE_KEY]\n}\n\nexport interface RuntimeCapabilityRegistry {\n patchStrategy?: {\n createScheduler: (options: SetDataSchedulerOptions) => SetDataScheduler\n }\n templateRefs?: {\n attachBindings: (target: InternalRuntimeState, bindings: readonly TemplateRefBinding[]) => void\n hasBindings: (target: InternalRuntimeState) => boolean\n schedule: (target: InternalRuntimeState, onResolved?: () => void, assignmentTarget?: InternalRuntimeState, onRejected?: (cause: unknown) => void) => void\n scheduleOwner: (target: InternalRuntimeState) => void\n clear: (target: InternalRuntimeState, assignmentTarget?: InternalRuntimeState) => void\n }\n inlineEvents?: {\n handler: (this: InternalRuntimeState, event: unknown) => unknown\n run: (context: unknown, expression: unknown, event: unknown, map?: InlineExpressionMap) => unknown\n }\n setDataHighFrequencyWarning?: {\n createMonitor: (options: HighFrequencyWarningMonitorOptions) => (() => void) | undefined\n }\n scopedSlots?: {\n prepareMount: (target: InternalRuntimeState) => ScopedSlotMountState\n attachMount: <D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(\n target: InternalRuntimeState,\n runtime: RuntimeInstance<D, C, M>,\n state: ScopedSlotMountState,\n deferSnapshot: boolean,\n ) => void\n refresh: (target: InternalRuntimeState, state: ScopedSlotMountState) => void\n syncNativeOwnerId: (target: InternalRuntimeState, state: ScopedSlotMountState) => void\n teardown: (target: InternalRuntimeState) => void\n resolveLifecycleProxy: (target: InternalRuntimeState) => unknown\n allocateOwnerId: () => string\n }\n layout?: {\n attachPageSetter: (target: InternalRuntimeState) => void\n attachHosts: (bindings: readonly LayoutHostBinding[], target: InternalRuntimeState) => void\n detachHosts: (bindings: readonly LayoutHostBinding[], target: InternalRuntimeState) => void\n }\n}\n\nconst mutableRuntimeCapabilityRegistry: RuntimeCapabilityRegistry = {}\n\n/**\n * 运行时能力的只读实时视图。安装器直接替换对应槽位,核心路径不会复制能力清单。\n */\nexport const runtimeCapabilityRegistry: Readonly<RuntimeCapabilityRegistry> = mutableRuntimeCapabilityRegistry\n\n/**\n * 注册或热替换一个运行时能力实现。\n */\nexport function registerRuntimeCapability<Name extends RuntimeCapabilityName>(\n name: Name,\n implementation: NonNullable<RuntimeCapabilityRegistry[Name]>,\n): void {\n if (mutableRuntimeCapabilityRegistry[name] === implementation) {\n return\n }\n mutableRuntimeCapabilityRegistry[name] = implementation\n}\n\n/**\n * 读取调用方明确请求的能力;缺失时同步失败,禁止静默降级。\n */\nexport function requireRuntimeCapability<Name extends RuntimeCapabilityName>(\n name: Name,\n requester: string,\n): NonNullable<RuntimeCapabilityRegistry[Name]> {\n const implementation = mutableRuntimeCapabilityRegistry[name]\n if (!implementation) {\n throw new Error(`[wevu] runtime capability \"${name}\" is required by ${requester}; install it before registration`)\n }\n return implementation\n}\n\n/**\n * 判断 setData 高频告警是否被显式启用。\n */\nexport function isSetDataHighFrequencyWarningRequested(\n option: SetDataSnapshotOptions['highFrequencyWarning'],\n): boolean {\n if (option === true) {\n return true\n }\n if (!option || typeof option !== 'object' || Array.isArray(option)) {\n return false\n }\n return option.enabled !== false\n}\n"],"mappings":";AAqCA,MAAa,gCAAgC;;;;AAsB7C,SAAgB,wBAAwB,QAAgE;CACtG,OAAQ,OAA2C;AACrD;AAyCA,MAAM,mCAA8D,CAAC;;;;AAKrE,MAAa,4BAAiE;;;;AAK9E,SAAgB,0BACd,MACA,gBACM;CACN,IAAI,iCAAiC,UAAU,gBAC7C;CAEF,iCAAiC,QAAQ;AAC3C;;;;AAKA,SAAgB,yBACd,MACA,WAC8C;CAC9C,MAAM,iBAAiB,iCAAiC;CACxD,IAAI,CAAC,gBACH,MAAM,IAAI,MAAM,8BAA8B,KAAK,mBAAmB,UAAU,iCAAiC;CAEnH,OAAO;AACT;;;;AAKA,SAAgB,uCACd,QACS;CACT,IAAI,WAAW,MACb,OAAO;CAET,IAAI,CAAC,UAAU,OAAO,WAAW,YAAY,MAAM,QAAQ,MAAM,GAC/D,OAAO;CAET,OAAO,OAAO,YAAY;AAC5B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ComputedRef } from "../reactivity/computed.mjs";
|
|
2
|
+
import "../reactivity/index.mjs";
|
|
3
|
+
//#region src/runtime/css.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* 读取当前 SFC 的 CSS Modules 映射。
|
|
6
|
+
*/
|
|
7
|
+
export declare function useCssModule(name?: string): Record<string, string>;
|
|
8
|
+
/**
|
|
9
|
+
* 注册编译器生成的响应式 CSS 变量。
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare function useCssVars(getter: (context: Record<string, any>) => Record<string, unknown>): ComputedRef<string>;
|
|
13
|
+
//#endregion
|
|
14
|
+
//# sourceMappingURL=css.d.mts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CreateAppOptions, DefineComponentOptions } from "./types/options.mjs";
|
|
2
|
+
import "./types.mjs";
|
|
3
|
+
//#region src/runtime/defaults.d.ts
|
|
4
|
+
export declare const INTERNAL_DEFAULTS_SCOPE_KEY = "__wevuDefaultsScope";
|
|
5
|
+
export interface WevuDefaults {
|
|
6
|
+
app?: Partial<CreateAppOptions<any, any, any>>;
|
|
7
|
+
component?: Partial<DefineComponentOptions<any, any, any, any>>;
|
|
8
|
+
}
|
|
9
|
+
export declare function setWevuDefaults(next: WevuDefaults): void;
|
|
10
|
+
export declare function resetWevuDefaults(): void;
|
|
11
|
+
//#endregion
|
|
12
|
+
//# sourceMappingURL=defaults.d.mts.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { INTERNAL_DEFAULTS_SCOPE_KEY } from "../defaults.mjs";
|
|
2
2
|
import { registerComponent } from "../register/component.mjs";
|
|
3
3
|
import { createApp } from "../app.mjs";
|
|
4
|
+
import { WEVU_BINDING_MANIFEST_KEY, WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY } from "@weapp-core/constants";
|
|
4
5
|
|
|
5
6
|
//#region src/runtime/define/componentDefinition.ts
|
|
6
7
|
/**
|
|
@@ -12,6 +13,8 @@ function createRuntimeComponentDefinition(options, registerNative = false) {
|
|
|
12
13
|
computed: options.computed,
|
|
13
14
|
methods: options.methods,
|
|
14
15
|
setData: options.setData,
|
|
16
|
+
[WEVU_BINDING_MANIFEST_KEY]: options.bindingManifest,
|
|
17
|
+
[WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY]: options.scopedSlotOwnerRequired,
|
|
15
18
|
[INTERNAL_DEFAULTS_SCOPE_KEY]: "component"
|
|
16
19
|
});
|
|
17
20
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentDefinition.mjs","names":[],"sources":["../../../../src/runtime/define/componentDefinition.ts"],"sourcesContent":["import type { WatchMap } from '../register/watch'\nimport type {\n ComputedDefinitions,\n MethodDefinitions,\n MiniProgramComponentRawOptions,\n SetDataSnapshotOptions,\n} from '../types'\nimport { createApp } from '../app'\nimport { INTERNAL_DEFAULTS_SCOPE_KEY } from '../defaults'\nimport { registerComponent } from '../register'\n\nexport interface RuntimeComponentDefinitionOptions {\n data: (() => Record<string, any>) | undefined\n computed: ComputedDefinitions\n methods: MethodDefinitions\n setData: SetDataSnapshotOptions | undefined\n watch: WatchMap | undefined\n setup: ((props: any, ctx: any) => any) | undefined\n mpOptions: MiniProgramComponentRawOptions\n}\n\n/**\n * 从稳定的组件选项快照创建独立运行时和宿主生命周期定义。\n */\nexport function createRuntimeComponentDefinition(\n options: RuntimeComponentDefinitionOptions,\n registerNative = false,\n) {\n const runtimeApp = createApp({\n data: options.data,\n computed: options.computed,\n methods: options.methods,\n setData: options.setData,\n [INTERNAL_DEFAULTS_SCOPE_KEY]: 'component',\n } as any)\n const lifecycleDefinition = registerComponent(\n runtimeApp as any,\n options.methods,\n options.watch,\n options.setup,\n options.mpOptions,\n { registerNative },\n )\n\n return {\n lifecycleDefinition,\n runtimeApp,\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"componentDefinition.mjs","names":[],"sources":["../../../../src/runtime/define/componentDefinition.ts"],"sourcesContent":["import type { WevuRuntimeBindingManifestV1 } from '@weapp-core/constants'\nimport type { WatchMap } from '../register/watch'\nimport type {\n ComputedDefinitions,\n MethodDefinitions,\n MiniProgramComponentRawOptions,\n SetDataSnapshotOptions,\n} from '../types'\nimport {\n WEVU_BINDING_MANIFEST_KEY,\n WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY,\n} from '@weapp-core/constants'\nimport { createApp } from '../app'\nimport { INTERNAL_DEFAULTS_SCOPE_KEY } from '../defaults'\nimport { registerComponent } from '../register'\n\nexport interface RuntimeComponentDefinitionOptions {\n scopedSlotOwnerRequired: boolean\n data: (() => Record<string, any>) | undefined\n computed: ComputedDefinitions\n methods: MethodDefinitions\n setData: SetDataSnapshotOptions | undefined\n bindingManifest?: WevuRuntimeBindingManifestV1\n watch: WatchMap | undefined\n setup: ((props: any, ctx: any) => any) | undefined\n mpOptions: MiniProgramComponentRawOptions\n}\n\n/**\n * 从稳定的组件选项快照创建独立运行时和宿主生命周期定义。\n */\nexport function createRuntimeComponentDefinition(\n options: RuntimeComponentDefinitionOptions,\n registerNative = false,\n) {\n const runtimeApp = createApp({\n data: options.data,\n computed: options.computed,\n methods: options.methods,\n setData: options.setData,\n [WEVU_BINDING_MANIFEST_KEY]: options.bindingManifest,\n [WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY]: options.scopedSlotOwnerRequired,\n [INTERNAL_DEFAULTS_SCOPE_KEY]: 'component',\n } as any)\n const lifecycleDefinition = registerComponent(\n runtimeApp as any,\n options.methods,\n options.watch,\n options.setup,\n options.mpOptions,\n { registerNative },\n )\n\n return {\n lifecycleDefinition,\n runtimeApp,\n }\n}\n"],"mappings":";;;;;;;;;AA+BA,SAAgB,iCACd,SACA,iBAAiB,OACjB;CACA,MAAM,aAAa,UAAU;EAC3B,MAAM,QAAQ;EACd,UAAU,QAAQ;EAClB,SAAS,QAAQ;EACjB,SAAS,QAAQ;GAChB,4BAA4B,QAAQ;GACpC,sCAAsC,QAAQ;GAC9C,8BAA8B;CACjC,CAAQ;CAUR,OAAO;EACL,qBAV0B,kBAC1B,YACA,QAAQ,SACR,QAAQ,OACR,QAAQ,OACR,QAAQ,WACR,EAAE,eAAe,CAIC;EAClB;CACF;AACF"}
|
|
@@ -24,18 +24,19 @@ const NATIVE_PROPERTY_TYPE_MAP = /* @__PURE__ */ new Map([
|
|
|
24
24
|
function toNativePropertyType(candidate) {
|
|
25
25
|
return NATIVE_PROPERTY_TYPE_MAP.get(candidate);
|
|
26
26
|
}
|
|
27
|
+
function collectNativePropertyTypeCandidates(raw, normalized = []) {
|
|
28
|
+
if (Array.isArray(raw)) {
|
|
29
|
+
for (const item of raw) collectNativePropertyTypeCandidates(item, normalized);
|
|
30
|
+
return normalized;
|
|
31
|
+
}
|
|
32
|
+
const mapped = toNativePropertyType(raw);
|
|
33
|
+
if (mapped !== void 0 && !normalized.includes(mapped)) normalized.push(mapped);
|
|
34
|
+
return normalized;
|
|
35
|
+
}
|
|
27
36
|
function normalizeTypeCandidates(raw) {
|
|
28
37
|
if (raw === void 0) return [];
|
|
29
|
-
const
|
|
30
|
-
const normalized = [];
|
|
31
|
-
source.forEach((item) => {
|
|
32
|
-
const mapped = toNativePropertyType(item);
|
|
33
|
-
if (mapped === void 0) return;
|
|
34
|
-
if (!normalized.includes(mapped)) normalized.push(mapped);
|
|
35
|
-
});
|
|
36
|
-
const requiredNativeTypes = normalized.filter((item) => item !== null);
|
|
38
|
+
const requiredNativeTypes = collectNativePropertyTypeCandidates(raw).filter((item) => item !== null);
|
|
37
39
|
if (requiredNativeTypes.length > 0) return requiredNativeTypes;
|
|
38
|
-
if (normalized.includes(null)) return [null];
|
|
39
40
|
return [null];
|
|
40
41
|
}
|
|
41
42
|
function applyTypeOptions(target, rawType) {
|
|
@@ -48,55 +49,24 @@ function applyTypeOptions(target, rawType) {
|
|
|
48
49
|
if (optionalTypes.length > 0) target.optionalTypes = optionalTypes;
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
|
-
function
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
target.
|
|
52
|
+
function preserveImplicitNativeDefault(target) {
|
|
53
|
+
if (hasOwn(target, "value")) return;
|
|
54
|
+
if (target.type === String) target.value = "";
|
|
55
|
+
else if (target.type === Number) target.value = 0;
|
|
56
|
+
else if (target.type === Boolean) target.value = false;
|
|
57
|
+
else if (target.type === Array) target.value = [];
|
|
57
58
|
}
|
|
58
|
-
function
|
|
59
|
-
if (!
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if (definition === void 0) return;
|
|
70
|
-
if (definition === null) return { type: null };
|
|
71
|
-
if (Array.isArray(definition) || typeof definition === "function") {
|
|
72
|
-
const propOptions = {};
|
|
73
|
-
applyTypeOptions(propOptions, definition);
|
|
74
|
-
if (allowNullPropInput && propOptions.type !== null) appendOptionalType(propOptions, null);
|
|
75
|
-
if (!hasOwn(propOptions, "type")) propOptions.type = null;
|
|
76
|
-
return propOptions;
|
|
77
|
-
}
|
|
78
|
-
if (typeof definition !== "object") return definition;
|
|
79
|
-
const propOptions = { ...definition };
|
|
80
|
-
if ("type" in propOptions) {
|
|
81
|
-
var _normalizedTypes$;
|
|
82
|
-
const normalizedTypes = normalizeTypeCandidates(propOptions.type);
|
|
83
|
-
propOptions.type = (_normalizedTypes$ = normalizedTypes[0]) !== null && _normalizedTypes$ !== void 0 ? _normalizedTypes$ : null;
|
|
84
|
-
const existingOptionalTypes = normalizeOptionalTypeCandidates(propOptions.optionalTypes);
|
|
85
|
-
for (const candidate of normalizedTypes.slice(1)) if (candidate !== null && !existingOptionalTypes.includes(candidate)) existingOptionalTypes.push(candidate);
|
|
86
|
-
if (existingOptionalTypes.length > 0) propOptions.optionalTypes = existingOptionalTypes;
|
|
87
|
-
else delete propOptions.optionalTypes;
|
|
88
|
-
}
|
|
89
|
-
if (!hasOwn(propOptions, "type")) propOptions.type = null;
|
|
90
|
-
if (allowNullPropInput && propOptions.type !== null) appendOptionalType(propOptions, null);
|
|
91
|
-
return propOptions;
|
|
92
|
-
}
|
|
93
|
-
function normalizeExplicitProperties(properties, allowNullPropInput) {
|
|
94
|
-
const normalizedProperties = {};
|
|
95
|
-
Object.entries(properties).forEach(([key, definition]) => {
|
|
96
|
-
const normalizedDefinition = normalizeExplicitPropertyDefinition(definition, allowNullPropInput);
|
|
97
|
-
if (normalizedDefinition !== void 0) normalizedProperties[key] = normalizedDefinition;
|
|
98
|
-
});
|
|
99
|
-
return normalizedProperties;
|
|
59
|
+
function applyNullableTransportOptions(target, definition, allowNullPropInput) {
|
|
60
|
+
if (!allowNullPropInput || target.type === null) return;
|
|
61
|
+
const definitionRecord = definition && typeof definition === "object" && !Array.isArray(definition) ? definition : void 0;
|
|
62
|
+
const candidates = collectNativePropertyTypeCandidates(definitionRecord ? [definitionRecord.type, definitionRecord.optionalTypes] : definition);
|
|
63
|
+
const explicitlyNullable = candidates.includes(null);
|
|
64
|
+
const acceptsMultipleNativeTypes = candidates.filter((candidate) => candidate !== null).length > 1;
|
|
65
|
+
const acceptsMissingInput = (definitionRecord === null || definitionRecord === void 0 ? void 0 : definitionRecord.required) !== true;
|
|
66
|
+
if (!explicitlyNullable && !acceptsMultipleNativeTypes && !acceptsMissingInput) return;
|
|
67
|
+
if (!explicitlyNullable) preserveImplicitNativeDefault(target);
|
|
68
|
+
target.type = null;
|
|
69
|
+
delete target.optionalTypes;
|
|
100
70
|
}
|
|
101
71
|
function normalizeVueProps(props, allowNullPropInput) {
|
|
102
72
|
const properties = {};
|
|
@@ -110,8 +80,8 @@ function normalizeVueProps(props, allowNullPropInput) {
|
|
|
110
80
|
if (Array.isArray(definition) || typeof definition === "function") {
|
|
111
81
|
const propOptions = {};
|
|
112
82
|
applyTypeOptions(propOptions, definition);
|
|
113
|
-
if (allowNullPropInput && propOptions.type !== null) appendOptionalType(propOptions, null);
|
|
114
83
|
if (!hasOwn(propOptions, "type")) propOptions.type = null;
|
|
84
|
+
applyNullableTransportOptions(propOptions, definition, allowNullPropInput);
|
|
115
85
|
properties[key] = propOptions;
|
|
116
86
|
return;
|
|
117
87
|
}
|
|
@@ -139,8 +109,8 @@ function normalizeVueProps(props, allowNullPropInput) {
|
|
|
139
109
|
if ("observer" in definition && (typeof definition.observer === "function" || typeof definition.observer === "string")) propOptions.observer = definition.observer;
|
|
140
110
|
const defaultValue = "default" in definition ? definition.default : definition.value;
|
|
141
111
|
if (defaultValue !== void 0) propOptions.value = typeof defaultValue === "function" ? defaultValue() : defaultValue;
|
|
142
|
-
if (allowNullPropInput && propOptions.type !== null) appendOptionalType(propOptions, null);
|
|
143
112
|
if (!hasOwn(propOptions, "type")) propOptions.type = null;
|
|
113
|
+
applyNullableTransportOptions(propOptions, definition, allowNullPropInput);
|
|
144
114
|
properties[key] = propOptions;
|
|
145
115
|
}
|
|
146
116
|
});
|
|
@@ -173,7 +143,7 @@ function normalizeProps(baseOptions, props, explicitProperties) {
|
|
|
173
143
|
};
|
|
174
144
|
if (resolvedExplicit) {
|
|
175
145
|
const { properties: _ignored, ...rest } = normalizedBaseOptions;
|
|
176
|
-
const normalizedExplicitProperties = resolvedExplicit
|
|
146
|
+
const normalizedExplicitProperties = resolvedExplicit;
|
|
177
147
|
const normalizedVueProps = normalizeVueProps(props, allowNullPropInput);
|
|
178
148
|
return {
|
|
179
149
|
...rest,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.mjs","names":[],"sources":["../../../../src/runtime/define/props.ts"],"sourcesContent":["import type {\n ComponentPropsOptions,\n MiniProgramComponentPropertyOption,\n MiniProgramComponentShortProperty,\n} from '../types'\nimport {\n WEVU_SLOT_NAMES_PROP,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_SCOPE_KEY,\n} from '@weapp-core/constants'\nimport { hasOwn } from '../../utils'\n\nconst ALLOW_NULL_PROP_INPUT_KEY = '__wevu_allowNullPropInput'\nconst PUBLIC_ALLOW_NULL_PROP_INPUT_KEY = 'allowNullPropInput'\n\ntype NormalizedNativePropertyType = MiniProgramComponentShortProperty | FunctionConstructor | null\n\nconst NATIVE_PROPERTY_TYPE_MAP = new Map<unknown, NormalizedNativePropertyType>([\n [String, String],\n [Number, Number],\n [Boolean, Boolean],\n [Object, Object],\n [Array, Array],\n [Function, Function],\n ['String', String],\n ['Number', Number],\n ['Boolean', Boolean],\n ['Object', Object],\n ['Array', Array],\n ['Function', Function],\n [null, null],\n ['null', null],\n ['Null', null],\n])\n\nfunction toNativePropertyType(candidate: unknown) {\n return NATIVE_PROPERTY_TYPE_MAP.get(candidate)\n}\n\nfunction normalizeTypeCandidates(raw: unknown) {\n if (raw === undefined) {\n return []\n }\n const source = Array.isArray(raw) ? raw : [raw]\n const normalized: NormalizedNativePropertyType[] = []\n source.forEach((item) => {\n const mapped = toNativePropertyType(item)\n if (mapped === undefined) {\n return\n }\n if (!normalized.includes(mapped)) {\n normalized.push(mapped)\n }\n })\n const requiredNativeTypes = normalized.filter((item): item is Exclude<NormalizedNativePropertyType, null> => item !== null)\n if (requiredNativeTypes.length > 0) {\n return requiredNativeTypes\n }\n if (normalized.includes(null)) {\n return [null]\n }\n return [null]\n}\n\nfunction applyTypeOptions(target: Record<string, any>, rawType: unknown) {\n const candidates = normalizeTypeCandidates(rawType)\n if (candidates.length === 0) {\n return\n }\n\n target.type = candidates[0]\n if (candidates.length > 1) {\n const optionalTypes: any[] = []\n for (const candidate of candidates.slice(1)) {\n if (!optionalTypes.includes(candidate)) {\n optionalTypes.push(candidate)\n }\n }\n if (optionalTypes.length > 0) {\n target.optionalTypes = optionalTypes\n }\n }\n}\n\nfunction appendOptionalType(target: Record<string, any>, candidate: unknown) {\n if (candidate === undefined || target.type === candidate) {\n return\n }\n const optionalTypes = Array.isArray(target.optionalTypes)\n ? [...target.optionalTypes]\n : []\n if (optionalTypes.includes(candidate)) {\n return\n }\n optionalTypes.push(candidate)\n target.optionalTypes = optionalTypes\n}\n\nfunction normalizeOptionalTypeCandidates(raw: unknown) {\n if (!Array.isArray(raw)) {\n return []\n }\n const normalized: Array<Exclude<NormalizedNativePropertyType, null>> = []\n raw.forEach((item) => {\n const mapped = toNativePropertyType(item)\n if (mapped === undefined || mapped === null || normalized.includes(mapped)) {\n return\n }\n normalized.push(mapped)\n })\n return normalized\n}\n\nfunction normalizeExplicitPropertyDefinition(\n definition: unknown,\n allowNullPropInput: boolean,\n) {\n if (definition === undefined) {\n return undefined\n }\n if (definition === null) {\n return { type: null }\n }\n if (Array.isArray(definition) || typeof definition === 'function') {\n const propOptions: Record<string, any> = {}\n applyTypeOptions(propOptions, definition)\n if (allowNullPropInput && propOptions.type !== null) {\n appendOptionalType(propOptions, null)\n }\n if (!hasOwn(propOptions, 'type')) {\n propOptions.type = null\n }\n return propOptions\n }\n if (typeof definition !== 'object') {\n return definition\n }\n\n const propOptions: Record<string, any> = {\n ...(definition as Record<string, any>),\n }\n\n if ('type' in propOptions) {\n const normalizedTypes = normalizeTypeCandidates(propOptions.type)\n propOptions.type = normalizedTypes[0] ?? null\n const existingOptionalTypes = normalizeOptionalTypeCandidates(propOptions.optionalTypes)\n for (const candidate of normalizedTypes.slice(1)) {\n if (candidate !== null && !existingOptionalTypes.includes(candidate)) {\n existingOptionalTypes.push(candidate)\n }\n }\n if (existingOptionalTypes.length > 0) {\n propOptions.optionalTypes = existingOptionalTypes\n }\n else {\n delete propOptions.optionalTypes\n }\n }\n\n if (!hasOwn(propOptions, 'type')) {\n propOptions.type = null\n }\n\n if (allowNullPropInput && propOptions.type !== null) {\n appendOptionalType(propOptions, null)\n }\n\n return propOptions\n}\n\nfunction normalizeExplicitProperties(\n properties: MiniProgramComponentPropertyOption,\n allowNullPropInput: boolean,\n) {\n const normalizedProperties: Record<string, any> = {}\n Object.entries(properties).forEach(([key, definition]) => {\n const normalizedDefinition = normalizeExplicitPropertyDefinition(definition, allowNullPropInput)\n if (normalizedDefinition !== undefined) {\n normalizedProperties[key] = normalizedDefinition\n }\n })\n return normalizedProperties\n}\n\nfunction normalizeVueProps(\n props: ComponentPropsOptions | undefined,\n allowNullPropInput: boolean,\n) {\n const properties: Record<string, any> = {}\n if (!props) {\n return properties\n }\n\n Object.entries(props).forEach(([key, definition]) => {\n if (definition === undefined) {\n return\n }\n if (definition === null) {\n properties[key] = { type: null }\n return\n }\n if (Array.isArray(definition) || typeof definition === 'function') {\n const propOptions: Record<string, any> = {}\n applyTypeOptions(propOptions, definition)\n if (allowNullPropInput && propOptions.type !== null) {\n appendOptionalType(propOptions, null)\n }\n if (!hasOwn(propOptions, 'type')) {\n propOptions.type = null\n }\n properties[key] = propOptions\n return\n }\n if (typeof definition === 'object') {\n // 在 Vue <script setup> 中,defineModel() 会生成空的 modifiers props。\n if (key.endsWith('Modifiers') && Object.keys(definition).length === 0) {\n properties[key] = { type: Object, value: {} }\n return\n }\n const propOptions: Record<string, any> = {}\n if ('type' in definition && definition.type !== undefined) {\n applyTypeOptions(propOptions, (definition as any).type)\n }\n if (Array.isArray((definition as any).optionalTypes)) {\n const optionalTypes = (definition as any).optionalTypes.map((item: unknown) => toNativePropertyType(item)).filter((item: unknown): item is Exclude<NormalizedNativePropertyType, null> => item !== undefined && item !== null)\n if (optionalTypes.length > 0) {\n const existingOptionalTypes = Array.isArray(propOptions.optionalTypes)\n ? propOptions.optionalTypes as any[]\n : []\n for (const optionalType of optionalTypes) {\n if (optionalType === propOptions.type) {\n continue\n }\n if (!existingOptionalTypes.includes(optionalType)) {\n existingOptionalTypes.push(optionalType)\n }\n }\n if (existingOptionalTypes.length > 0) {\n propOptions.optionalTypes = existingOptionalTypes\n }\n }\n }\n if ('observer' in definition && (typeof (definition as any).observer === 'function' || typeof (definition as any).observer === 'string')) {\n propOptions.observer = (definition as any).observer\n }\n const defaultValue = 'default' in definition ? (definition as any).default : (definition as any).value\n if (defaultValue !== undefined) {\n propOptions.value = typeof defaultValue === 'function' ? (defaultValue as any)() : defaultValue\n }\n if (allowNullPropInput && propOptions.type !== null) {\n appendOptionalType(propOptions, null)\n }\n if (!hasOwn(propOptions, 'type')) {\n propOptions.type = null\n }\n properties[key] = propOptions\n }\n })\n\n return properties\n}\n\nexport function normalizeProps(\n baseOptions: Record<string, any>,\n props?: ComponentPropsOptions,\n explicitProperties?: MiniProgramComponentPropertyOption,\n) {\n const allowNullPropInput = Boolean(\n (baseOptions as any)[ALLOW_NULL_PROP_INPUT_KEY]\n ?? (baseOptions as any)[PUBLIC_ALLOW_NULL_PROP_INPUT_KEY],\n )\n const {\n [ALLOW_NULL_PROP_INPUT_KEY]: _ignoredAllowNullPropInput,\n [PUBLIC_ALLOW_NULL_PROP_INPUT_KEY]: _ignoredPublicAllowNullPropInput,\n ...normalizedBaseOptions\n } = baseOptions\n const baseProperties = (baseOptions as any).properties\n const normalizedBaseProperties = baseProperties && typeof baseProperties === 'object' && Object.keys(baseProperties).length > 0\n ? (baseProperties as any)\n : undefined\n const resolvedExplicit = explicitProperties\n ?? normalizedBaseProperties\n const shouldAttachInternalProps = Boolean(props || resolvedExplicit)\n const attachInternalProps = (source?: Record<string, any>) => {\n const next = { ...(source ?? {}) }\n if (!shouldAttachInternalProps) {\n return next\n }\n if (!hasOwn(next, WEVU_SLOT_OWNER_ID_PROP)) {\n next[WEVU_SLOT_OWNER_ID_PROP] = { type: String, value: '' }\n }\n if (!hasOwn(next, WEVU_SLOT_SCOPE_KEY)) {\n next[WEVU_SLOT_SCOPE_KEY] = { type: null, value: null }\n }\n if (!hasOwn(next, WEVU_SLOT_NAMES_PROP)) {\n next[WEVU_SLOT_NAMES_PROP] = { type: null, value: null }\n }\n return next\n }\n\n if (resolvedExplicit) {\n const {\n properties: _ignored,\n ...rest\n } = normalizedBaseOptions\n const normalizedExplicitProperties = resolvedExplicit\n ? allowNullPropInput\n ? normalizeExplicitProperties(resolvedExplicit as any, allowNullPropInput)\n : (resolvedExplicit as any)\n : undefined\n const normalizedVueProps = normalizeVueProps(props, allowNullPropInput)\n return {\n ...rest,\n properties: attachInternalProps({\n ...normalizedVueProps,\n ...normalizedExplicitProperties,\n }),\n }\n }\n\n return {\n ...normalizedBaseOptions,\n properties: attachInternalProps(normalizeVueProps(props, allowNullPropInput)),\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"props.mjs","names":[],"sources":["../../../../src/runtime/define/props.ts"],"sourcesContent":["import type {\n ComponentPropsOptions,\n MiniProgramComponentPropertyOption,\n MiniProgramComponentShortProperty,\n} from '../types'\nimport {\n WEVU_SLOT_NAMES_PROP,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_SCOPE_KEY,\n} from '@weapp-core/constants'\nimport { hasOwn } from '../../utils'\n\nconst ALLOW_NULL_PROP_INPUT_KEY = '__wevu_allowNullPropInput'\nconst PUBLIC_ALLOW_NULL_PROP_INPUT_KEY = 'allowNullPropInput'\n\ntype NormalizedNativePropertyType = MiniProgramComponentShortProperty | FunctionConstructor | null\n\nconst NATIVE_PROPERTY_TYPE_MAP = new Map<unknown, NormalizedNativePropertyType>([\n [String, String],\n [Number, Number],\n [Boolean, Boolean],\n [Object, Object],\n [Array, Array],\n [Function, Function],\n ['String', String],\n ['Number', Number],\n ['Boolean', Boolean],\n ['Object', Object],\n ['Array', Array],\n ['Function', Function],\n [null, null],\n ['null', null],\n ['Null', null],\n])\n\nfunction toNativePropertyType(candidate: unknown) {\n return NATIVE_PROPERTY_TYPE_MAP.get(candidate)\n}\n\nfunction collectNativePropertyTypeCandidates(\n raw: unknown,\n normalized: NormalizedNativePropertyType[] = [],\n) {\n if (Array.isArray(raw)) {\n for (const item of raw) {\n collectNativePropertyTypeCandidates(item, normalized)\n }\n return normalized\n }\n const mapped = toNativePropertyType(raw)\n if (mapped !== undefined && !normalized.includes(mapped)) {\n normalized.push(mapped)\n }\n return normalized\n}\n\nfunction normalizeTypeCandidates(raw: unknown) {\n if (raw === undefined) {\n return []\n }\n const normalized = collectNativePropertyTypeCandidates(raw)\n const requiredNativeTypes = normalized.filter((item): item is Exclude<NormalizedNativePropertyType, null> => item !== null)\n if (requiredNativeTypes.length > 0) {\n return requiredNativeTypes\n }\n return [null]\n}\n\nfunction applyTypeOptions(target: Record<string, unknown>, rawType: unknown) {\n const candidates = normalizeTypeCandidates(rawType)\n if (candidates.length === 0) {\n return\n }\n\n target.type = candidates[0]\n if (candidates.length > 1) {\n const optionalTypes: NormalizedNativePropertyType[] = []\n for (const candidate of candidates.slice(1)) {\n if (!optionalTypes.includes(candidate)) {\n optionalTypes.push(candidate)\n }\n }\n if (optionalTypes.length > 0) {\n target.optionalTypes = optionalTypes\n }\n }\n}\n\nfunction preserveImplicitNativeDefault(target: Record<string, unknown>) {\n if (hasOwn(target, 'value')) {\n return\n }\n if (target.type === String) {\n target.value = ''\n }\n else if (target.type === Number) {\n target.value = 0\n }\n else if (target.type === Boolean) {\n target.value = false\n }\n else if (target.type === Array) {\n target.value = []\n }\n}\n\nfunction applyNullableTransportOptions(\n target: Record<string, unknown>,\n definition: unknown,\n allowNullPropInput: boolean,\n) {\n if (!allowNullPropInput || target.type === null) {\n return\n }\n const definitionRecord = definition && typeof definition === 'object' && !Array.isArray(definition)\n ? (definition as Record<string, unknown>)\n : undefined\n const candidates = collectNativePropertyTypeCandidates(\n definitionRecord\n ? [definitionRecord.type, definitionRecord.optionalTypes]\n : definition,\n )\n const explicitlyNullable = candidates.includes(null)\n const nativeTypes = candidates.filter(candidate => candidate !== null)\n const acceptsMultipleNativeTypes = nativeTypes.length > 1\n const acceptsMissingInput = definitionRecord?.required !== true\n // glass-easel 会先按主 type 校验并转换,optionalTypes 无法保护合法的联合值与空值传输。\n if (!explicitlyNullable && !acceptsMultipleNativeTypes && !acceptsMissingInput) {\n return\n }\n\n // 显式声明的 null 必须保持可观察;其余降级场景则保留原主类型的宿主隐式默认值。\n if (!explicitlyNullable) {\n preserveImplicitNativeDefault(target)\n }\n target.type = null\n delete target.optionalTypes\n}\n\nfunction normalizeVueProps(\n props: ComponentPropsOptions | undefined,\n allowNullPropInput: boolean,\n) {\n const properties: Record<string, any> = {}\n if (!props) {\n return properties\n }\n\n Object.entries(props).forEach(([key, definition]) => {\n if (definition === undefined) {\n return\n }\n if (definition === null) {\n properties[key] = { type: null }\n return\n }\n if (Array.isArray(definition) || typeof definition === 'function') {\n const propOptions: Record<string, unknown> = {}\n applyTypeOptions(propOptions, definition)\n if (!hasOwn(propOptions, 'type')) {\n propOptions.type = null\n }\n applyNullableTransportOptions(propOptions, definition, allowNullPropInput)\n properties[key] = propOptions\n return\n }\n if (typeof definition === 'object') {\n // 在 Vue <script setup> 中,defineModel() 会生成空的 modifiers props。\n if (key.endsWith('Modifiers') && Object.keys(definition).length === 0) {\n properties[key] = { type: Object, value: {} }\n return\n }\n const propOptions: Record<string, unknown> = {}\n if ('type' in definition && definition.type !== undefined) {\n applyTypeOptions(propOptions, (definition as any).type)\n }\n if (Array.isArray((definition as any).optionalTypes)) {\n const optionalTypes = (definition as any).optionalTypes.map((item: unknown) => toNativePropertyType(item)).filter((item: unknown): item is Exclude<NormalizedNativePropertyType, null> => item !== undefined && item !== null)\n if (optionalTypes.length > 0) {\n const existingOptionalTypes = Array.isArray(propOptions.optionalTypes)\n ? propOptions.optionalTypes as NormalizedNativePropertyType[]\n : []\n for (const optionalType of optionalTypes) {\n if (optionalType === propOptions.type) {\n continue\n }\n if (!existingOptionalTypes.includes(optionalType)) {\n existingOptionalTypes.push(optionalType)\n }\n }\n if (existingOptionalTypes.length > 0) {\n propOptions.optionalTypes = existingOptionalTypes\n }\n }\n }\n if ('observer' in definition && (typeof (definition as any).observer === 'function' || typeof (definition as any).observer === 'string')) {\n propOptions.observer = (definition as any).observer\n }\n const defaultValue = 'default' in definition ? (definition as any).default : (definition as any).value\n if (defaultValue !== undefined) {\n propOptions.value = typeof defaultValue === 'function' ? (defaultValue as any)() : defaultValue\n }\n if (!hasOwn(propOptions, 'type')) {\n propOptions.type = null\n }\n applyNullableTransportOptions(propOptions, definition, allowNullPropInput)\n properties[key] = propOptions\n }\n })\n\n return properties\n}\n\nexport function normalizeProps(\n baseOptions: Record<string, any>,\n props?: ComponentPropsOptions,\n explicitProperties?: MiniProgramComponentPropertyOption,\n) {\n const allowNullPropInput = Boolean(\n (baseOptions as any)[ALLOW_NULL_PROP_INPUT_KEY]\n ?? (baseOptions as any)[PUBLIC_ALLOW_NULL_PROP_INPUT_KEY],\n )\n const {\n [ALLOW_NULL_PROP_INPUT_KEY]: _ignoredAllowNullPropInput,\n [PUBLIC_ALLOW_NULL_PROP_INPUT_KEY]: _ignoredPublicAllowNullPropInput,\n ...normalizedBaseOptions\n } = baseOptions\n const baseProperties = (baseOptions as any).properties\n const normalizedBaseProperties = baseProperties && typeof baseProperties === 'object' && Object.keys(baseProperties).length > 0\n ? (baseProperties as any)\n : undefined\n const resolvedExplicit = explicitProperties\n ?? normalizedBaseProperties\n const shouldAttachInternalProps = Boolean(props || resolvedExplicit)\n const attachInternalProps = (source?: Record<string, any>) => {\n const next = { ...(source ?? {}) }\n if (!shouldAttachInternalProps) {\n return next\n }\n if (!hasOwn(next, WEVU_SLOT_OWNER_ID_PROP)) {\n next[WEVU_SLOT_OWNER_ID_PROP] = { type: String, value: '' }\n }\n if (!hasOwn(next, WEVU_SLOT_SCOPE_KEY)) {\n next[WEVU_SLOT_SCOPE_KEY] = { type: null, value: null }\n }\n if (!hasOwn(next, WEVU_SLOT_NAMES_PROP)) {\n next[WEVU_SLOT_NAMES_PROP] = { type: null, value: null }\n }\n return next\n }\n\n if (resolvedExplicit) {\n const {\n properties: _ignored,\n ...rest\n } = normalizedBaseOptions\n const normalizedExplicitProperties = resolvedExplicit\n const normalizedVueProps = normalizeVueProps(props, allowNullPropInput)\n return {\n ...rest,\n properties: attachInternalProps({\n ...normalizedVueProps,\n ...normalizedExplicitProperties,\n }),\n }\n }\n\n return {\n ...normalizedBaseOptions,\n properties: attachInternalProps(normalizeVueProps(props, allowNullPropInput)),\n }\n}\n"],"mappings":"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"}
|