wevu 6.16.6 → 6.16.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev/index.mjs +4 -4
- package/dist/dev/{ref-oJCdOWf7.mjs → ref-Dui1TzOR.mjs} +5 -5
- package/dist/dev/{ref-oJCdOWf7.mjs.map → ref-Dui1TzOR.mjs.map} +1 -1
- package/dist/dev/{router-CXNNN43P.mjs → router-DFQw3LKA.mjs} +2 -2
- package/dist/dev/{router-CXNNN43P.mjs.map → router-DFQw3LKA.mjs.map} +1 -1
- package/dist/dev/router.mjs +36 -20
- package/dist/dev/router.mjs.map +1 -1
- package/dist/dev/{src-C2BzhMY6.mjs → src-Bg6AVYQe.mjs} +632 -57
- package/dist/dev/src-Bg6AVYQe.mjs.map +1 -0
- package/dist/dev/{store-BhOds5RF.mjs → store-Brqfb7LU.mjs} +2 -2
- package/dist/dev/{store-BhOds5RF.mjs.map → store-Brqfb7LU.mjs.map} +1 -1
- package/dist/dev/store.mjs +1 -1
- package/dist/dev/vue-demi.mjs +4 -4
- package/dist/index.mjs +1 -1
- package/dist/router.d.mts +4 -1
- package/dist/router.mjs +1 -1
- package/dist/src-C0T_fnDR.mjs +1 -0
- package/dist/vue-demi.mjs +1 -1
- package/package.json +3 -3
- package/dist/dev/src-C2BzhMY6.mjs.map +0 -1
- package/dist/src-BF-e4_0K.mjs +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as track, C as effect, d as reactive, g as touchReactive, j as trigger, l as isReactive, n as isRef, r as markAsRef, w as effectScope, y as toRaw } from "./ref-
|
|
1
|
+
import { A as track, C as effect, d as reactive, g as touchReactive, j as trigger, l as isReactive, n as isRef, r as markAsRef, w as effectScope, y as toRaw } from "./ref-Dui1TzOR.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/reactivity/computed.ts
|
|
4
4
|
function computed(getterOrOptions) {
|
|
@@ -515,4 +515,4 @@ function storeToRefs(store) {
|
|
|
515
515
|
|
|
516
516
|
//#endregion
|
|
517
517
|
export { computed as i, defineStore as n, createStore as r, storeToRefs as t };
|
|
518
|
-
//# sourceMappingURL=store-
|
|
518
|
+
//# sourceMappingURL=store-Brqfb7LU.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-BhOds5RF.mjs","names":[],"sources":["../../src/reactivity/computed.ts","../../src/store/actions.ts","../../src/store/utils.ts","../../src/store/base.ts","../../src/store/define/shared.ts","../../src/store/define/optionsStyle.ts","../../src/store/define/setupStyle.ts","../../src/store/manager.ts","../../src/store/define.ts","../../src/store/storeToRefs.ts"],"sourcesContent":["import type { ReactiveEffect } from './core'\nimport type { Ref } from './ref'\nimport { effect, track, trigger } from './core'\nimport { markAsRef } from './ref'\n\nexport type ComputedGetter<T> = () => T\nexport type ComputedSetter<T> = (value: T) => void\n\ninterface BaseComputedRef<T, S = T> extends Ref<T, S> {\n [key: symbol]: any\n}\n\nexport interface ComputedRef<T = any> extends BaseComputedRef<T> {\n readonly value: T\n}\n\nexport interface WritableComputedRef<T, S = T> extends BaseComputedRef<T, S> {\n value: T\n}\n\nexport interface WritableComputedOptions<T> {\n get: ComputedGetter<T>\n set: ComputedSetter<T>\n}\n\nexport function computed<T>(getter: ComputedGetter<T>): ComputedRef<T>\nexport function computed<T>(options: WritableComputedOptions<T>): WritableComputedRef<T>\nexport function computed<T>(\n getterOrOptions: ComputedGetter<T> | WritableComputedOptions<T>,\n): ComputedRef<T> | WritableComputedRef<T> {\n let getter: ComputedGetter<T>\n let setter: ComputedSetter<T>\n const onlyGetter = typeof getterOrOptions === 'function'\n if (onlyGetter) {\n getter = getterOrOptions as ComputedGetter<T>\n setter = () => {\n throw new Error('计算属性是只读的')\n }\n }\n else {\n getter = (getterOrOptions as WritableComputedOptions<T>).get\n setter = (getterOrOptions as WritableComputedOptions<T>).set\n }\n let value: T\n let dirty = true\n let runner: ReactiveEffect<T>\n const obj: any = {\n get value() {\n if (dirty) {\n value = runner()\n dirty = false\n }\n track(obj, 'value')\n return value\n },\n set value(newValue: T) {\n setter(newValue)\n },\n }\n markAsRef(obj)\n runner = effect(getter, {\n lazy: true,\n scheduler: () => {\n if (!dirty) {\n dirty = true\n trigger(obj, 'value')\n }\n },\n })\n return (onlyGetter ? obj as ComputedRef<T> : obj as WritableComputedRef<T>)\n}\n","import type { ActionSubscriber } from './types'\n\nexport function wrapAction<TStore extends Record<string, any>>(\n store: TStore,\n name: string,\n action: (...args: any[]) => any,\n actionSubs: Set<ActionSubscriber<TStore>>,\n) {\n return function wrapped(this: any, ...args: any[]) {\n const afterCbs: Array<(r: any) => void> = []\n const errorCbs: Array<(e: any) => void> = []\n const after = (cb: (r: any) => void) => afterCbs.push(cb)\n const onError = (cb: (e: any) => void) => errorCbs.push(cb)\n actionSubs.forEach((sub) => {\n try {\n sub({ name, store, args, after, onError })\n }\n catch {\n // 捕获订阅者回调内部的异常,避免单个监听器出错影响其他订阅和原始 action 执行链\n }\n })\n let res: any\n try {\n res = action.apply(store, args)\n }\n catch (e) {\n errorCbs.forEach(cb => cb(e))\n throw e\n }\n const finalize = (r: any) => {\n afterCbs.forEach(cb => cb(r))\n return r\n }\n if (res && typeof (res as Promise<any>).then === 'function') {\n return (res as Promise<any>).then(\n r => finalize(r),\n (e) => {\n errorCbs.forEach(cb => cb(e))\n return Promise.reject(e)\n },\n )\n }\n return finalize(res)\n }\n}\n","export function isObject(val: unknown): val is object {\n return typeof val === 'object' && val !== null\n}\n\nexport function isPlainObject(val: unknown): val is Record<string, any> {\n if (!isObject(val)) {\n return false\n }\n const proto = Object.getPrototypeOf(val)\n return proto === Object.prototype || proto === null\n}\n\nexport function mergeShallow(target: Record<string, any>, patch: Record<string, any>) {\n for (const k in patch) {\n target[k] = patch[k]\n }\n}\n\nexport function cloneDeep<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map(item => cloneDeep(item)) as T\n }\n if (isPlainObject(value)) {\n const result: Record<string, any> = {}\n for (const key in value) {\n result[key] = cloneDeep((value as any)[key])\n }\n return result as T\n }\n return value\n}\n\nexport function resetObject(target: Record<string, any>, snapshot: Record<string, any> | any[]) {\n if (Array.isArray(target) && Array.isArray(snapshot)) {\n target.length = 0\n snapshot.forEach((item, index) => {\n target[index] = cloneDeep(item)\n })\n return\n }\n if (!isObject(snapshot)) {\n return\n }\n for (const key in target) {\n if (!(key in snapshot)) {\n delete target[key]\n }\n }\n for (const key in snapshot) {\n const snapValue = (snapshot as any)[key]\n const currentValue = target[key]\n if (Array.isArray(snapValue) && Array.isArray(currentValue)) {\n resetObject(currentValue, snapValue)\n continue\n }\n if (isPlainObject(snapValue) && isPlainObject(currentValue)) {\n resetObject(currentValue, snapValue)\n continue\n }\n target[key] = cloneDeep(snapValue)\n }\n}\n","import type { ActionSubscriber, MutationType, SubscriptionCallback } from './types'\nimport { isObject, mergeShallow } from './utils'\n\nexport function createBaseApi<S extends Record<string, any>>(\n id: string,\n stateObj: S | undefined,\n notify: (type: MutationType) => void,\n resetImpl?: () => void,\n) {\n const api: any = {\n $id: id,\n }\n Object.defineProperty(api, '$state', {\n get() {\n return stateObj\n },\n set(v: any) {\n if (stateObj && isObject(v)) {\n mergeShallow(stateObj, v)\n notify('patch object')\n }\n },\n })\n api.$patch = (patch: Record<string, any> | ((state: S) => void)) => {\n if (!stateObj) {\n if (typeof patch === 'function') {\n patch(api as S)\n notify('patch function')\n }\n else {\n mergeShallow(api as any, patch)\n notify('patch object')\n }\n return\n }\n if (typeof patch === 'function') {\n patch(stateObj)\n notify('patch function')\n }\n else {\n mergeShallow(stateObj, patch)\n notify('patch object')\n }\n }\n if (resetImpl) {\n api.$reset = () => resetImpl()\n }\n const subs = new Set<SubscriptionCallback<S>>()\n api.$subscribe = (cb: SubscriptionCallback<S>, _opts?: { detached?: boolean }) => {\n subs.add(cb)\n return () => subs.delete(cb)\n }\n const actionSubs = new Set<ActionSubscriber<any>>()\n api.$onAction = (cb: ActionSubscriber<any>) => {\n actionSubs.add(cb)\n return () => actionSubs.delete(cb)\n }\n return { api, subs, actionSubs }\n}\n","import type { MutationType, SubscriptionCallback } from '../types'\nimport { isReactive, isRef, toRaw } from '../../reactivity'\nimport { cloneDeep } from '../utils'\n\nconst hasOwn = Object.prototype.hasOwnProperty\n\nexport function isTrackableRef(value: unknown) {\n return isRef(value) && hasOwn.call(value, 'dep')\n}\n\nexport function snapshotValue(value: unknown) {\n if (isReactive(value)) {\n return cloneDeep(toRaw(value as any))\n }\n if (isTrackableRef(value)) {\n return cloneDeep((value as any).value)\n }\n return cloneDeep(value)\n}\n\nexport function createSafeNotifier<S>(\n storeId: string,\n subs: Set<SubscriptionCallback<S>>,\n getState: () => S,\n) {\n let notifying = false\n return (type: MutationType) => {\n if (notifying) {\n return\n }\n notifying = true\n try {\n const state = getState()\n subs.forEach((cb) => {\n try {\n cb({ type, storeId }, state)\n }\n catch {}\n })\n }\n finally {\n notifying = false\n }\n }\n}\n","import { computed, effect, reactive, toRaw, touchReactive } from '../../reactivity'\nimport { wrapAction } from '../actions'\nimport { createBaseApi } from '../base'\nimport { cloneDeep, resetObject } from '../utils'\nimport { createSafeNotifier } from './shared'\n\nexport function createOptionsStyleStore(id: string, options: any, manager: any) {\n const rawState = options.state ? options.state() : {}\n const state = reactive(rawState)\n const initialSnapshot = cloneDeep(toRaw(rawState))\n let notify: (type: any) => void = () => {}\n const base = createBaseApi<typeof state>(id, state, t => notify(t), () => {\n resetObject(state as any, initialSnapshot)\n notify('patch object')\n })\n\n let isPatching = false\n const rawPatch = base.api.$patch\n base.api.$patch = (patch: Partial<typeof state> | ((nextState: typeof state) => void)) => {\n isPatching = true\n try {\n rawPatch(patch as any)\n }\n finally {\n isPatching = false\n }\n }\n if (typeof base.api.$reset === 'function') {\n const rawReset = base.api.$reset\n base.api.$reset = () => {\n isPatching = true\n try {\n rawReset()\n }\n finally {\n isPatching = false\n }\n }\n }\n\n notify = createSafeNotifier(id, base.subs, () => state as any)\n\n const store: Record<string, any> = {}\n for (const key of Object.getOwnPropertyNames(base.api)) {\n const d = Object.getOwnPropertyDescriptor(base.api, key)\n if (d) {\n if (key === '$state') {\n Object.defineProperty(store, key, {\n enumerable: d.enumerable,\n configurable: d.configurable,\n get() {\n return (base.api as any).$state\n },\n set(v: any) {\n isPatching = true\n try {\n ;(base.api as any).$state = v\n }\n finally {\n isPatching = false\n }\n },\n })\n }\n else {\n Object.defineProperty(store, key, d)\n }\n }\n }\n\n const getterDefs = options.getters ?? {}\n Object.keys(getterDefs).forEach((key) => {\n const getter = (getterDefs as any)[key]\n if (typeof getter === 'function') {\n const c = computed(() => getter.call(store, state))\n Object.defineProperty(store, key, {\n enumerable: true,\n configurable: true,\n get() {\n return c.value\n },\n })\n }\n })\n\n const actionDefs = options.actions ?? {}\n Object.keys(actionDefs).forEach((key) => {\n const act = (actionDefs as any)[key]\n if (typeof act === 'function') {\n const wrapped = wrapAction(store as any, key, (...args: any[]) => {\n return act.apply(store as any, args)\n }, base.actionSubs)\n store[key] = wrapped\n }\n })\n\n Object.keys(state).forEach((k) => {\n Object.defineProperty(store, k, {\n enumerable: true,\n configurable: true,\n get() {\n return (state as any)[k]\n },\n set(v: any) {\n ;(state as any)[k] = v\n },\n })\n })\n\n let initialized = false\n let dispatchingDirect = false\n effect(() => {\n touchReactive(state)\n if (!initialized) {\n initialized = true\n return\n }\n if (isPatching || dispatchingDirect) {\n return\n }\n dispatchingDirect = true\n try {\n notify('direct')\n }\n finally {\n dispatchingDirect = false\n }\n })\n\n const plugins = manager?._plugins ?? []\n for (const plugin of plugins) {\n try {\n plugin({ store })\n }\n catch {}\n }\n\n return store\n}\n","import { effect, isReactive, isRef, touchReactive } from '../../reactivity'\nimport { wrapAction } from '../actions'\nimport { createBaseApi } from '../base'\nimport { cloneDeep, resetObject } from '../utils'\nimport { createSafeNotifier, isTrackableRef, snapshotValue } from './shared'\n\nexport function createSetupStyleStore(id: string, setupFactory: () => Record<string, any>, manager: any) {\n const result = setupFactory()\n let notify: (type: any) => void = () => {}\n const initialSnapshot = new Map<string, any>()\n Object.keys(result).forEach((k) => {\n const val = (result as any)[k]\n if (typeof val === 'function' || k.startsWith('$')) {\n return\n }\n if (isRef(val) && !isTrackableRef(val)) {\n return\n }\n initialSnapshot.set(k, snapshotValue(val))\n })\n\n let instance: Record<string, any> = {}\n const resetImpl = () => {\n initialSnapshot.forEach((snapValue, key) => {\n const current = (instance as any)[key]\n if (isTrackableRef(current)) {\n current.value = cloneDeep(snapValue)\n return\n }\n if (isReactive(current)) {\n resetObject(current as any, snapValue)\n return\n }\n if (isRef(current)) {\n return\n }\n ;(instance as any)[key] = cloneDeep(snapValue)\n })\n notify('patch object')\n }\n\n const base = createBaseApi<any>(id, undefined, t => notify(t), resetImpl)\n let isPatching = false\n const rawPatch = base.api.$patch\n base.api.$patch = (patch: Record<string, any> | ((state: any) => void)) => {\n isPatching = true\n try {\n rawPatch(patch)\n }\n finally {\n isPatching = false\n }\n }\n if (typeof base.api.$reset === 'function') {\n const rawReset = base.api.$reset\n base.api.$reset = () => {\n isPatching = true\n try {\n rawReset()\n }\n finally {\n isPatching = false\n }\n }\n }\n\n instance = { ...result }\n notify = createSafeNotifier(id, base.subs, () => instance)\n\n // 将 setup 返回值与基础 API 合并,同时保留每个 getter/setter 的描述符,避免覆写访问器行为\n for (const key of Object.getOwnPropertyNames(base.api)) {\n const d = Object.getOwnPropertyDescriptor(base.api, key)\n if (d) {\n if (key === '$state') {\n Object.defineProperty(instance, key, {\n enumerable: d.enumerable,\n configurable: d.configurable,\n get() {\n return (base.api as any).$state\n },\n set(v: any) {\n isPatching = true\n try {\n ;(base.api as any).$state = v\n }\n finally {\n isPatching = false\n }\n },\n })\n }\n else {\n Object.defineProperty(instance, key, d)\n }\n }\n }\n\n const directSources: any[] = []\n Object.keys(result).forEach((k) => {\n const val = (result as any)[k]\n if (typeof val === 'function' && !k.startsWith('$')) {\n ;(instance as any)[k] = wrapAction(instance, k, val, base.actionSubs)\n return\n }\n if (isTrackableRef(val)) {\n directSources.push(val)\n return\n }\n if (isReactive(val)) {\n directSources.push(val)\n return\n }\n if (isRef(val)) {\n return\n }\n if (!k.startsWith('$')) {\n let innerValue = val\n Object.defineProperty(instance, k, {\n enumerable: true,\n configurable: true,\n get() {\n return innerValue\n },\n set(next: any) {\n innerValue = next\n if (!isPatching) {\n notify('direct')\n }\n },\n })\n }\n })\n\n let dispatchingDirect = false\n if (directSources.length > 0) {\n let initialized = false\n effect(() => {\n directSources.forEach((source) => {\n if (isTrackableRef(source)) {\n void source.value\n }\n else {\n touchReactive(source)\n }\n })\n if (!initialized) {\n initialized = true\n return\n }\n if (isPatching || dispatchingDirect) {\n return\n }\n dispatchingDirect = true\n try {\n notify('direct')\n }\n finally {\n dispatchingDirect = false\n }\n })\n }\n\n const plugins = manager?._plugins ?? []\n for (const plugin of plugins) {\n try {\n plugin({ store: instance })\n }\n catch {}\n }\n\n return instance\n}\n","import type { StoreManager } from './types'\n\n/**\n * @description 创建 store 管理器(插件与共享实例入口)\n */\nexport function createStore(): StoreManager {\n const manager: StoreManager = {\n _stores: new Map(),\n _plugins: [],\n install(_app: any) {\n // 小程序场景不需要注册全局插件入口,这里保留 API 但不执行任何操作\n },\n use(plugin: (context: { store: any }) => void) {\n if (typeof plugin === 'function') {\n manager._plugins.push(plugin)\n }\n return manager\n },\n }\n ;(createStore as any)._instance = manager\n return manager\n}\n","import type {\n ActionSubscriber,\n DefineStoreOptions,\n StoreGetters,\n StoreManager,\n StoreSubscribeOptions,\n SubscriptionCallback,\n} from './types'\nimport { effectScope } from '../reactivity'\nimport { createOptionsStyleStore } from './define/optionsStyle'\nimport { createSetupStyleStore } from './define/setupStyle'\nimport { createStore } from './manager'\n\ntype SetupDefinition<T> = () => T\n\n/**\n * @description 定义一个 setup 风格的 store\n */\nexport function defineStore<T extends Record<string, any>>(id: string, setup: SetupDefinition<T>): () => T & {\n $id: string\n $patch: (patch: Record<string, any> | ((state: any) => void)) => void\n $reset: () => void\n $subscribe: (cb: SubscriptionCallback<any>, opts?: StoreSubscribeOptions) => () => void\n $onAction: (cb: ActionSubscriber<any>) => () => void\n}\n/**\n * @description 定义一个 options 风格的 store\n */\nexport function defineStore<S extends Record<string, any>, G extends Record<string, any>, A extends Record<string, any>>(\n id: string,\n options: DefineStoreOptions<S, G, A>,\n): () => S & StoreGetters<G> & A & {\n $id: string\n $state: S\n $patch: (patch: Partial<S> | ((state: S) => void)) => void\n $reset: () => void\n $subscribe: (cb: SubscriptionCallback<S>, opts?: StoreSubscribeOptions) => () => void\n $onAction: (cb: ActionSubscriber<S & StoreGetters<G> & A>) => () => void\n}\nexport function defineStore(id: string, setupOrOptions: any) {\n let instance: any\n let created = false\n const manager = (createStore as any)._instance as StoreManager | undefined\n\n return function useStore(): any {\n if (created && instance) {\n return instance\n }\n created = true\n\n const storeScope = effectScope(true)\n instance = storeScope.run(() => {\n return typeof setupOrOptions === 'function'\n ? createSetupStyleStore(id, setupOrOptions, manager)\n : createOptionsStyleStore(id, setupOrOptions as DefineStoreOptions<any, any, any>, manager)\n })\n\n return instance\n }\n}\n","import type { Ref } from '../reactivity'\nimport { computed, isRef } from '../reactivity'\n\n/**\n * @description storeToRefs 返回类型推导\n */\nexport type StoreToRefsResult<T extends Record<string, any>> = {\n [K in keyof T]:\n T[K] extends (...args: any[]) => any\n ? T[K]\n : T[K] extends Ref<infer V>\n ? Ref<V>\n : Ref<T[K]>\n}\n\n/**\n * @description 将 store 状态转换为 Ref\n */\nexport function storeToRefs<T extends Record<string, any>>(store: T): StoreToRefsResult<T> {\n const result: Record<string, any> = {}\n for (const key in store) {\n const value = (store as any)[key]\n if (typeof value === 'function') {\n result[key] = value\n continue\n }\n if (isRef(value)) {\n result[key] = value\n }\n else {\n result[key] = computed({\n get: () => (store as any)[key],\n set: (v: any) => {\n ;(store as any)[key] = v\n },\n })\n }\n }\n return result as StoreToRefsResult<T>\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store-Brqfb7LU.mjs","names":[],"sources":["../../src/reactivity/computed.ts","../../src/store/actions.ts","../../src/store/utils.ts","../../src/store/base.ts","../../src/store/define/shared.ts","../../src/store/define/optionsStyle.ts","../../src/store/define/setupStyle.ts","../../src/store/manager.ts","../../src/store/define.ts","../../src/store/storeToRefs.ts"],"sourcesContent":["import type { ReactiveEffect } from './core'\nimport type { Ref } from './ref'\nimport { effect, track, trigger } from './core'\nimport { markAsRef } from './ref'\n\nexport type ComputedGetter<T> = () => T\nexport type ComputedSetter<T> = (value: T) => void\n\ninterface BaseComputedRef<T, S = T> extends Ref<T, S> {\n [key: symbol]: any\n}\n\nexport interface ComputedRef<T = any> extends BaseComputedRef<T> {\n readonly value: T\n}\n\nexport interface WritableComputedRef<T, S = T> extends BaseComputedRef<T, S> {\n value: T\n}\n\nexport interface WritableComputedOptions<T> {\n get: ComputedGetter<T>\n set: ComputedSetter<T>\n}\n\nexport function computed<T>(getter: ComputedGetter<T>): ComputedRef<T>\nexport function computed<T>(options: WritableComputedOptions<T>): WritableComputedRef<T>\nexport function computed<T>(\n getterOrOptions: ComputedGetter<T> | WritableComputedOptions<T>,\n): ComputedRef<T> | WritableComputedRef<T> {\n let getter: ComputedGetter<T>\n let setter: ComputedSetter<T>\n const onlyGetter = typeof getterOrOptions === 'function'\n if (onlyGetter) {\n getter = getterOrOptions as ComputedGetter<T>\n setter = () => {\n throw new Error('计算属性是只读的')\n }\n }\n else {\n getter = (getterOrOptions as WritableComputedOptions<T>).get\n setter = (getterOrOptions as WritableComputedOptions<T>).set\n }\n let value: T\n let dirty = true\n let runner: ReactiveEffect<T>\n const obj: any = {\n get value() {\n if (dirty) {\n value = runner()\n dirty = false\n }\n track(obj, 'value')\n return value\n },\n set value(newValue: T) {\n setter(newValue)\n },\n }\n markAsRef(obj)\n runner = effect(getter, {\n lazy: true,\n scheduler: () => {\n if (!dirty) {\n dirty = true\n trigger(obj, 'value')\n }\n },\n })\n return (onlyGetter ? obj as ComputedRef<T> : obj as WritableComputedRef<T>)\n}\n","import type { ActionSubscriber } from './types'\n\nexport function wrapAction<TStore extends Record<string, any>>(\n store: TStore,\n name: string,\n action: (...args: any[]) => any,\n actionSubs: Set<ActionSubscriber<TStore>>,\n) {\n return function wrapped(this: any, ...args: any[]) {\n const afterCbs: Array<(r: any) => void> = []\n const errorCbs: Array<(e: any) => void> = []\n const after = (cb: (r: any) => void) => afterCbs.push(cb)\n const onError = (cb: (e: any) => void) => errorCbs.push(cb)\n actionSubs.forEach((sub) => {\n try {\n sub({ name, store, args, after, onError })\n }\n catch {\n // 捕获订阅者回调内部的异常,避免单个监听器出错影响其他订阅和原始 action 执行链\n }\n })\n let res: any\n try {\n res = action.apply(store, args)\n }\n catch (e) {\n errorCbs.forEach(cb => cb(e))\n throw e\n }\n const finalize = (r: any) => {\n afterCbs.forEach(cb => cb(r))\n return r\n }\n if (res && typeof (res as Promise<any>).then === 'function') {\n return (res as Promise<any>).then(\n r => finalize(r),\n (e) => {\n errorCbs.forEach(cb => cb(e))\n return Promise.reject(e)\n },\n )\n }\n return finalize(res)\n }\n}\n","export function isObject(val: unknown): val is object {\n return typeof val === 'object' && val !== null\n}\n\nexport function isPlainObject(val: unknown): val is Record<string, any> {\n if (!isObject(val)) {\n return false\n }\n const proto = Object.getPrototypeOf(val)\n return proto === Object.prototype || proto === null\n}\n\nexport function mergeShallow(target: Record<string, any>, patch: Record<string, any>) {\n for (const k in patch) {\n target[k] = patch[k]\n }\n}\n\nexport function cloneDeep<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map(item => cloneDeep(item)) as T\n }\n if (isPlainObject(value)) {\n const result: Record<string, any> = {}\n for (const key in value) {\n result[key] = cloneDeep((value as any)[key])\n }\n return result as T\n }\n return value\n}\n\nexport function resetObject(target: Record<string, any>, snapshot: Record<string, any> | any[]) {\n if (Array.isArray(target) && Array.isArray(snapshot)) {\n target.length = 0\n snapshot.forEach((item, index) => {\n target[index] = cloneDeep(item)\n })\n return\n }\n if (!isObject(snapshot)) {\n return\n }\n for (const key in target) {\n if (!(key in snapshot)) {\n delete target[key]\n }\n }\n for (const key in snapshot) {\n const snapValue = (snapshot as any)[key]\n const currentValue = target[key]\n if (Array.isArray(snapValue) && Array.isArray(currentValue)) {\n resetObject(currentValue, snapValue)\n continue\n }\n if (isPlainObject(snapValue) && isPlainObject(currentValue)) {\n resetObject(currentValue, snapValue)\n continue\n }\n target[key] = cloneDeep(snapValue)\n }\n}\n","import type { ActionSubscriber, MutationType, SubscriptionCallback } from './types'\nimport { isObject, mergeShallow } from './utils'\n\nexport function createBaseApi<S extends Record<string, any>>(\n id: string,\n stateObj: S | undefined,\n notify: (type: MutationType) => void,\n resetImpl?: () => void,\n) {\n const api: any = {\n $id: id,\n }\n Object.defineProperty(api, '$state', {\n get() {\n return stateObj\n },\n set(v: any) {\n if (stateObj && isObject(v)) {\n mergeShallow(stateObj, v)\n notify('patch object')\n }\n },\n })\n api.$patch = (patch: Record<string, any> | ((state: S) => void)) => {\n if (!stateObj) {\n if (typeof patch === 'function') {\n patch(api as S)\n notify('patch function')\n }\n else {\n mergeShallow(api as any, patch)\n notify('patch object')\n }\n return\n }\n if (typeof patch === 'function') {\n patch(stateObj)\n notify('patch function')\n }\n else {\n mergeShallow(stateObj, patch)\n notify('patch object')\n }\n }\n if (resetImpl) {\n api.$reset = () => resetImpl()\n }\n const subs = new Set<SubscriptionCallback<S>>()\n api.$subscribe = (cb: SubscriptionCallback<S>, _opts?: { detached?: boolean }) => {\n subs.add(cb)\n return () => subs.delete(cb)\n }\n const actionSubs = new Set<ActionSubscriber<any>>()\n api.$onAction = (cb: ActionSubscriber<any>) => {\n actionSubs.add(cb)\n return () => actionSubs.delete(cb)\n }\n return { api, subs, actionSubs }\n}\n","import type { MutationType, SubscriptionCallback } from '../types'\nimport { isReactive, isRef, toRaw } from '../../reactivity'\nimport { cloneDeep } from '../utils'\n\nconst hasOwn = Object.prototype.hasOwnProperty\n\nexport function isTrackableRef(value: unknown) {\n return isRef(value) && hasOwn.call(value, 'dep')\n}\n\nexport function snapshotValue(value: unknown) {\n if (isReactive(value)) {\n return cloneDeep(toRaw(value as any))\n }\n if (isTrackableRef(value)) {\n return cloneDeep((value as any).value)\n }\n return cloneDeep(value)\n}\n\nexport function createSafeNotifier<S>(\n storeId: string,\n subs: Set<SubscriptionCallback<S>>,\n getState: () => S,\n) {\n let notifying = false\n return (type: MutationType) => {\n if (notifying) {\n return\n }\n notifying = true\n try {\n const state = getState()\n subs.forEach((cb) => {\n try {\n cb({ type, storeId }, state)\n }\n catch {}\n })\n }\n finally {\n notifying = false\n }\n }\n}\n","import { computed, effect, reactive, toRaw, touchReactive } from '../../reactivity'\nimport { wrapAction } from '../actions'\nimport { createBaseApi } from '../base'\nimport { cloneDeep, resetObject } from '../utils'\nimport { createSafeNotifier } from './shared'\n\nexport function createOptionsStyleStore(id: string, options: any, manager: any) {\n const rawState = options.state ? options.state() : {}\n const state = reactive(rawState)\n const initialSnapshot = cloneDeep(toRaw(rawState))\n let notify: (type: any) => void = () => {}\n const base = createBaseApi<typeof state>(id, state, t => notify(t), () => {\n resetObject(state as any, initialSnapshot)\n notify('patch object')\n })\n\n let isPatching = false\n const rawPatch = base.api.$patch\n base.api.$patch = (patch: Partial<typeof state> | ((nextState: typeof state) => void)) => {\n isPatching = true\n try {\n rawPatch(patch as any)\n }\n finally {\n isPatching = false\n }\n }\n if (typeof base.api.$reset === 'function') {\n const rawReset = base.api.$reset\n base.api.$reset = () => {\n isPatching = true\n try {\n rawReset()\n }\n finally {\n isPatching = false\n }\n }\n }\n\n notify = createSafeNotifier(id, base.subs, () => state as any)\n\n const store: Record<string, any> = {}\n for (const key of Object.getOwnPropertyNames(base.api)) {\n const d = Object.getOwnPropertyDescriptor(base.api, key)\n if (d) {\n if (key === '$state') {\n Object.defineProperty(store, key, {\n enumerable: d.enumerable,\n configurable: d.configurable,\n get() {\n return (base.api as any).$state\n },\n set(v: any) {\n isPatching = true\n try {\n ;(base.api as any).$state = v\n }\n finally {\n isPatching = false\n }\n },\n })\n }\n else {\n Object.defineProperty(store, key, d)\n }\n }\n }\n\n const getterDefs = options.getters ?? {}\n Object.keys(getterDefs).forEach((key) => {\n const getter = (getterDefs as any)[key]\n if (typeof getter === 'function') {\n const c = computed(() => getter.call(store, state))\n Object.defineProperty(store, key, {\n enumerable: true,\n configurable: true,\n get() {\n return c.value\n },\n })\n }\n })\n\n const actionDefs = options.actions ?? {}\n Object.keys(actionDefs).forEach((key) => {\n const act = (actionDefs as any)[key]\n if (typeof act === 'function') {\n const wrapped = wrapAction(store as any, key, (...args: any[]) => {\n return act.apply(store as any, args)\n }, base.actionSubs)\n store[key] = wrapped\n }\n })\n\n Object.keys(state).forEach((k) => {\n Object.defineProperty(store, k, {\n enumerable: true,\n configurable: true,\n get() {\n return (state as any)[k]\n },\n set(v: any) {\n ;(state as any)[k] = v\n },\n })\n })\n\n let initialized = false\n let dispatchingDirect = false\n effect(() => {\n touchReactive(state)\n if (!initialized) {\n initialized = true\n return\n }\n if (isPatching || dispatchingDirect) {\n return\n }\n dispatchingDirect = true\n try {\n notify('direct')\n }\n finally {\n dispatchingDirect = false\n }\n })\n\n const plugins = manager?._plugins ?? []\n for (const plugin of plugins) {\n try {\n plugin({ store })\n }\n catch {}\n }\n\n return store\n}\n","import { effect, isReactive, isRef, touchReactive } from '../../reactivity'\nimport { wrapAction } from '../actions'\nimport { createBaseApi } from '../base'\nimport { cloneDeep, resetObject } from '../utils'\nimport { createSafeNotifier, isTrackableRef, snapshotValue } from './shared'\n\nexport function createSetupStyleStore(id: string, setupFactory: () => Record<string, any>, manager: any) {\n const result = setupFactory()\n let notify: (type: any) => void = () => {}\n const initialSnapshot = new Map<string, any>()\n Object.keys(result).forEach((k) => {\n const val = (result as any)[k]\n if (typeof val === 'function' || k.startsWith('$')) {\n return\n }\n if (isRef(val) && !isTrackableRef(val)) {\n return\n }\n initialSnapshot.set(k, snapshotValue(val))\n })\n\n let instance: Record<string, any> = {}\n const resetImpl = () => {\n initialSnapshot.forEach((snapValue, key) => {\n const current = (instance as any)[key]\n if (isTrackableRef(current)) {\n current.value = cloneDeep(snapValue)\n return\n }\n if (isReactive(current)) {\n resetObject(current as any, snapValue)\n return\n }\n if (isRef(current)) {\n return\n }\n ;(instance as any)[key] = cloneDeep(snapValue)\n })\n notify('patch object')\n }\n\n const base = createBaseApi<any>(id, undefined, t => notify(t), resetImpl)\n let isPatching = false\n const rawPatch = base.api.$patch\n base.api.$patch = (patch: Record<string, any> | ((state: any) => void)) => {\n isPatching = true\n try {\n rawPatch(patch)\n }\n finally {\n isPatching = false\n }\n }\n if (typeof base.api.$reset === 'function') {\n const rawReset = base.api.$reset\n base.api.$reset = () => {\n isPatching = true\n try {\n rawReset()\n }\n finally {\n isPatching = false\n }\n }\n }\n\n instance = { ...result }\n notify = createSafeNotifier(id, base.subs, () => instance)\n\n // 将 setup 返回值与基础 API 合并,同时保留每个 getter/setter 的描述符,避免覆写访问器行为\n for (const key of Object.getOwnPropertyNames(base.api)) {\n const d = Object.getOwnPropertyDescriptor(base.api, key)\n if (d) {\n if (key === '$state') {\n Object.defineProperty(instance, key, {\n enumerable: d.enumerable,\n configurable: d.configurable,\n get() {\n return (base.api as any).$state\n },\n set(v: any) {\n isPatching = true\n try {\n ;(base.api as any).$state = v\n }\n finally {\n isPatching = false\n }\n },\n })\n }\n else {\n Object.defineProperty(instance, key, d)\n }\n }\n }\n\n const directSources: any[] = []\n Object.keys(result).forEach((k) => {\n const val = (result as any)[k]\n if (typeof val === 'function' && !k.startsWith('$')) {\n ;(instance as any)[k] = wrapAction(instance, k, val, base.actionSubs)\n return\n }\n if (isTrackableRef(val)) {\n directSources.push(val)\n return\n }\n if (isReactive(val)) {\n directSources.push(val)\n return\n }\n if (isRef(val)) {\n return\n }\n if (!k.startsWith('$')) {\n let innerValue = val\n Object.defineProperty(instance, k, {\n enumerable: true,\n configurable: true,\n get() {\n return innerValue\n },\n set(next: any) {\n innerValue = next\n if (!isPatching) {\n notify('direct')\n }\n },\n })\n }\n })\n\n let dispatchingDirect = false\n if (directSources.length > 0) {\n let initialized = false\n effect(() => {\n directSources.forEach((source) => {\n if (isTrackableRef(source)) {\n void source.value\n }\n else {\n touchReactive(source)\n }\n })\n if (!initialized) {\n initialized = true\n return\n }\n if (isPatching || dispatchingDirect) {\n return\n }\n dispatchingDirect = true\n try {\n notify('direct')\n }\n finally {\n dispatchingDirect = false\n }\n })\n }\n\n const plugins = manager?._plugins ?? []\n for (const plugin of plugins) {\n try {\n plugin({ store: instance })\n }\n catch {}\n }\n\n return instance\n}\n","import type { StoreManager } from './types'\n\n/**\n * @description 创建 store 管理器(插件与共享实例入口)\n */\nexport function createStore(): StoreManager {\n const manager: StoreManager = {\n _stores: new Map(),\n _plugins: [],\n install(_app: any) {\n // 小程序场景不需要注册全局插件入口,这里保留 API 但不执行任何操作\n },\n use(plugin: (context: { store: any }) => void) {\n if (typeof plugin === 'function') {\n manager._plugins.push(plugin)\n }\n return manager\n },\n }\n ;(createStore as any)._instance = manager\n return manager\n}\n","import type {\n ActionSubscriber,\n DefineStoreOptions,\n StoreGetters,\n StoreManager,\n StoreSubscribeOptions,\n SubscriptionCallback,\n} from './types'\nimport { effectScope } from '../reactivity'\nimport { createOptionsStyleStore } from './define/optionsStyle'\nimport { createSetupStyleStore } from './define/setupStyle'\nimport { createStore } from './manager'\n\ntype SetupDefinition<T> = () => T\n\n/**\n * @description 定义一个 setup 风格的 store\n */\nexport function defineStore<T extends Record<string, any>>(id: string, setup: SetupDefinition<T>): () => T & {\n $id: string\n $patch: (patch: Record<string, any> | ((state: any) => void)) => void\n $reset: () => void\n $subscribe: (cb: SubscriptionCallback<any>, opts?: StoreSubscribeOptions) => () => void\n $onAction: (cb: ActionSubscriber<any>) => () => void\n}\n/**\n * @description 定义一个 options 风格的 store\n */\nexport function defineStore<S extends Record<string, any>, G extends Record<string, any>, A extends Record<string, any>>(\n id: string,\n options: DefineStoreOptions<S, G, A>,\n): () => S & StoreGetters<G> & A & {\n $id: string\n $state: S\n $patch: (patch: Partial<S> | ((state: S) => void)) => void\n $reset: () => void\n $subscribe: (cb: SubscriptionCallback<S>, opts?: StoreSubscribeOptions) => () => void\n $onAction: (cb: ActionSubscriber<S & StoreGetters<G> & A>) => () => void\n}\nexport function defineStore(id: string, setupOrOptions: any) {\n let instance: any\n let created = false\n const manager = (createStore as any)._instance as StoreManager | undefined\n\n return function useStore(): any {\n if (created && instance) {\n return instance\n }\n created = true\n\n const storeScope = effectScope(true)\n instance = storeScope.run(() => {\n return typeof setupOrOptions === 'function'\n ? createSetupStyleStore(id, setupOrOptions, manager)\n : createOptionsStyleStore(id, setupOrOptions as DefineStoreOptions<any, any, any>, manager)\n })\n\n return instance\n }\n}\n","import type { Ref } from '../reactivity'\nimport { computed, isRef } from '../reactivity'\n\n/**\n * @description storeToRefs 返回类型推导\n */\nexport type StoreToRefsResult<T extends Record<string, any>> = {\n [K in keyof T]:\n T[K] extends (...args: any[]) => any\n ? T[K]\n : T[K] extends Ref<infer V>\n ? Ref<V>\n : Ref<T[K]>\n}\n\n/**\n * @description 将 store 状态转换为 Ref\n */\nexport function storeToRefs<T extends Record<string, any>>(store: T): StoreToRefsResult<T> {\n const result: Record<string, any> = {}\n for (const key in store) {\n const value = (store as any)[key]\n if (typeof value === 'function') {\n result[key] = value\n continue\n }\n if (isRef(value)) {\n result[key] = value\n }\n else {\n result[key] = computed({\n get: () => (store as any)[key],\n set: (v: any) => {\n ;(store as any)[key] = v\n },\n })\n }\n }\n return result as StoreToRefsResult<T>\n}\n"],"mappings":"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"}
|
package/dist/dev/store.mjs
CHANGED
package/dist/dev/vue-demi.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $ as isNoSetData, A as createApp, B as waitForLayoutHost, C as usePageStack, Ct as shallowRef, D as createWevuComponent, E as useDisposables, Et as __reExport, F as resolveLayoutHost, G as runSetupFunction, H as mountRuntimeInstance, I as unregisterPageLayoutBridge, J as syncRuntimePageLayoutState, K as resolveRuntimePageLayoutName, L as unregisterRuntimeLayoutHosts, M as registerPageLayoutBridge, N as registerRuntimeLayoutHosts, O as createWevuScopedSlotComponent, P as resolveLayoutBridge, Q as setWevuDefaults, R as useLayoutBridge, S as useNavigationBarMetrics, St as isShallowRef, T as useElementIntersectionObserver, Tt as __exportAll, U as setRuntimeSetDataVisibility, V as registerApp, W as teardownRuntimeInstance, X as usePageLayout, Y as syncRuntimePageLayoutStateFromRuntime, Z as resetWevuDefaults, _ as useSelectorQuery, _t as onUnmounted, a as useModel, at as watchSyncEffect, b as getCurrentPageStackSnapshot, bt as toRef, c as useSlots, ct as callUpdateHooks, d as useUpdatePerformanceListener, dt as onBeforeUnmount, et as markNoSetData, f as normalizeClass, ft as onBeforeUpdate, g as useSelectorFields, gt as onServerPrefetch, h as useScrollOffset, ht as onMounted, i as useChangeModel, it as watchPostEffect, j as registerComponent, k as defineComponent, l as defineAppSetup, lt as onActivated, m as useBoundingClientRect, mt as onErrorCaptured, n as mergeModels, nt as watch, o as useAttrs, ot as getDeepWatchStrategy, p as normalizeStyle, pt as onDeactivated, q as setPageLayout, r as useBindModel, rt as watchEffect, s as useNativeInstance, st as setDeepWatchStrategy, t as useTemplateRef, tt as version, u as use, ut as onBeforeMount, v as useAsyncPullDownRefresh, vt as onUpdated, w as useIntersectionObserver, wt as triggerRef, x as getNavigationBarMetrics, xt as toRefs, y as usePageScrollThrottle, yt as traverse, z as useLayoutHosts } from "./src-
|
|
2
|
-
import { C as effect, D as onScopeDispose, E as getCurrentScope, N as nextTick, O as startBatch, S as batch, T as endBatch, a as toValue, b as addMutationRecorder, c as isRaw, d as reactive, f as isShallowReactive, g as touchReactive, h as prelinkReactiveTree, i as ref, k as stop, l as isReactive, n as isRef, o as unref, p as shallowReactive, s as getReactiveVersion, t as customRef, u as markRaw, w as effectScope, x as removeMutationRecorder, y as toRaw } from "./ref-
|
|
3
|
-
import { i as computed, n as defineStore, r as createStore, t as storeToRefs } from "./store-
|
|
4
|
-
import { $ as onUnhandledRejection, A as setGlobalProvidedValue, B as onPageNotFound, F as onHide, G as onResize, H as onPullDownRefresh, I as onLaunch, J as onShareAppMessage, K as onRouteDone, L as onLoad, M as onAttached, N as onDetached, P as onError, Q as onThemeChange, R as onMemoryWarning, U as onReachBottom, V as onPageScroll, W as onReady, X as onShow, Y as onShareTimeline, Z as onTabItemTap, _ as provide, _t as readonly, at as getCurrentSetupContext, ct as setCurrentSetupContext, et as onUnload, g as injectGlobal, gt as isReadonly, h as inject, ht as isProxy, it as getCurrentInstance, j as onAddToFavorites, m as hasInjectionContext, n as useNativeRouter, nt as callHookList, q as onSaveExitState, rt as callHookReturn, st as setCurrentInstance, t as useNativePageRouter, v as provideGlobal, vt as shallowReadonly, z as onMoved } from "./router-
|
|
1
|
+
import { $ as isNoSetData, A as createApp, B as waitForLayoutHost, C as usePageStack, Ct as shallowRef, D as createWevuComponent, E as useDisposables, Et as __reExport, F as resolveLayoutHost, G as runSetupFunction, H as mountRuntimeInstance, I as unregisterPageLayoutBridge, J as syncRuntimePageLayoutState, K as resolveRuntimePageLayoutName, L as unregisterRuntimeLayoutHosts, M as registerPageLayoutBridge, N as registerRuntimeLayoutHosts, O as createWevuScopedSlotComponent, P as resolveLayoutBridge, Q as setWevuDefaults, R as useLayoutBridge, S as useNavigationBarMetrics, St as isShallowRef, T as useElementIntersectionObserver, Tt as __exportAll, U as setRuntimeSetDataVisibility, V as registerApp, W as teardownRuntimeInstance, X as usePageLayout, Y as syncRuntimePageLayoutStateFromRuntime, Z as resetWevuDefaults, _ as useSelectorQuery, _t as onUnmounted, a as useModel, at as watchSyncEffect, b as getCurrentPageStackSnapshot, bt as toRef, c as useSlots, ct as callUpdateHooks, d as useUpdatePerformanceListener, dt as onBeforeUnmount, et as markNoSetData, f as normalizeClass, ft as onBeforeUpdate, g as useSelectorFields, gt as onServerPrefetch, h as useScrollOffset, ht as onMounted, i as useChangeModel, it as watchPostEffect, j as registerComponent, k as defineComponent, l as defineAppSetup, lt as onActivated, m as useBoundingClientRect, mt as onErrorCaptured, n as mergeModels, nt as watch, o as useAttrs, ot as getDeepWatchStrategy, p as normalizeStyle, pt as onDeactivated, q as setPageLayout, r as useBindModel, rt as watchEffect, s as useNativeInstance, st as setDeepWatchStrategy, t as useTemplateRef, tt as version, u as use, ut as onBeforeMount, v as useAsyncPullDownRefresh, vt as onUpdated, w as useIntersectionObserver, wt as triggerRef, x as getNavigationBarMetrics, xt as toRefs, y as usePageScrollThrottle, yt as traverse, z as useLayoutHosts } from "./src-Bg6AVYQe.mjs";
|
|
2
|
+
import { C as effect, D as onScopeDispose, E as getCurrentScope, N as nextTick, O as startBatch, S as batch, T as endBatch, a as toValue, b as addMutationRecorder, c as isRaw, d as reactive, f as isShallowReactive, g as touchReactive, h as prelinkReactiveTree, i as ref, k as stop, l as isReactive, n as isRef, o as unref, p as shallowReactive, s as getReactiveVersion, t as customRef, u as markRaw, w as effectScope, x as removeMutationRecorder, y as toRaw } from "./ref-Dui1TzOR.mjs";
|
|
3
|
+
import { i as computed, n as defineStore, r as createStore, t as storeToRefs } from "./store-Brqfb7LU.mjs";
|
|
4
|
+
import { $ as onUnhandledRejection, A as setGlobalProvidedValue, B as onPageNotFound, F as onHide, G as onResize, H as onPullDownRefresh, I as onLaunch, J as onShareAppMessage, K as onRouteDone, L as onLoad, M as onAttached, N as onDetached, P as onError, Q as onThemeChange, R as onMemoryWarning, U as onReachBottom, V as onPageScroll, W as onReady, X as onShow, Y as onShareTimeline, Z as onTabItemTap, _ as provide, _t as readonly, at as getCurrentSetupContext, ct as setCurrentSetupContext, et as onUnload, g as injectGlobal, gt as isReadonly, h as inject, ht as isProxy, it as getCurrentInstance, j as onAddToFavorites, m as hasInjectionContext, n as useNativeRouter, nt as callHookList, q as onSaveExitState, rt as callHookReturn, st as setCurrentInstance, t as useNativePageRouter, v as provideGlobal, vt as shallowReadonly, z as onMoved } from "./router-DFQw3LKA.mjs";
|
|
5
5
|
|
|
6
6
|
export * from "@wevu/web-apis"
|
|
7
7
|
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,D as t,E as n,N as r,O as i,S as a,T as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,n as _,o as v,p as y,s as b,t as x,u as S,w as C,x as w,y as T}from"./ref-B6CIXciv.mjs";import{i as E,n as D,r as O,t as k}from"./store-C-7rPMM3.mjs";import{$ as A,A as j,B as M,F as N,G as P,H as F,I,J as L,K as R,L as z,M as B,N as V,P as H,Q as U,R as W,U as G,V as K,W as q,X as J,Y,Z as X,_ as Z,_t as Q,at as $,ct as ee,et as te,g as ne,gt as re,h as ie,ht as ae,it as oe,j as se,m as ce,n as le,nt as ue,q as de,rt as fe,st as pe,t as me,v as he,vt as ge,z as _e}from"./router-Cm3FUnTw.mjs";import{$ as ve,A as ye,B as be,C as xe,Ct as Se,D as Ce,E as we,F as Te,G as Ee,H as De,I as Oe,J as ke,K as Ae,L as je,M as Me,N as Ne,O as Pe,P as Fe,Q as Ie,R as Le,S as Re,St as ze,T as Be,U as Ve,V as He,W as Ue,X as We,Y as Ge,Z as Ke,_ as qe,_t as Je,a as Ye,at as Xe,b as Ze,bt as Qe,c as $e,ct as et,d as tt,dt as nt,et as rt,f as it,ft as at,g as ot,gt as st,h as ct,ht as lt,i as ut,it as dt,j as ft,k as pt,l as mt,lt as ht,m as gt,mt as _t,n as vt,nt as yt,o as bt,ot as xt,p as St,pt as Ct,q as wt,r as Tt,rt as Et,s as Dt,st as Ot,t as kt,tt as At,u as jt,ut as Mt,v as Nt,vt as Pt,w as Ft,wt as It,x as Lt,xt as Rt,y as zt,yt as Bt,z as Vt}from"./src-
|
|
1
|
+
import{C as e,D as t,E as n,N as r,O as i,S as a,T as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,n as _,o as v,p as y,s as b,t as x,u as S,w as C,x as w,y as T}from"./ref-B6CIXciv.mjs";import{i as E,n as D,r as O,t as k}from"./store-C-7rPMM3.mjs";import{$ as A,A as j,B as M,F as N,G as P,H as F,I,J as L,K as R,L as z,M as B,N as V,P as H,Q as U,R as W,U as G,V as K,W as q,X as J,Y,Z as X,_ as Z,_t as Q,at as $,ct as ee,et as te,g as ne,gt as re,h as ie,ht as ae,it as oe,j as se,m as ce,n as le,nt as ue,q as de,rt as fe,st as pe,t as me,v as he,vt as ge,z as _e}from"./router-Cm3FUnTw.mjs";import{$ as ve,A as ye,B as be,C as xe,Ct as Se,D as Ce,E as we,F as Te,G as Ee,H as De,I as Oe,J as ke,K as Ae,L as je,M as Me,N as Ne,O as Pe,P as Fe,Q as Ie,R as Le,S as Re,St as ze,T as Be,U as Ve,V as He,W as Ue,X as We,Y as Ge,Z as Ke,_ as qe,_t as Je,a as Ye,at as Xe,b as Ze,bt as Qe,c as $e,ct as et,d as tt,dt as nt,et as rt,f as it,ft as at,g as ot,gt as st,h as ct,ht as lt,i as ut,it as dt,j as ft,k as pt,l as mt,lt as ht,m as gt,mt as _t,n as vt,nt as yt,o as bt,ot as xt,p as St,pt as Ct,q as wt,r as Tt,rt as Et,s as Dt,st as Ot,t as kt,tt as At,u as jt,ut as Mt,v as Nt,vt as Pt,w as Ft,wt as It,x as Lt,xt as Rt,y as zt,yt as Bt,z as Vt}from"./src-C0T_fnDR.mjs";export*from"@wevu/web-apis";export{c as addMutationRecorder,a as batch,ue as callHookList,fe as callHookReturn,et as callUpdateHooks,E as computed,ye as createApp,O as createStore,Ce as createWevuComponent,Pe as createWevuScopedSlotComponent,x as customRef,mt as defineAppSetup,pt as defineComponent,D as defineStore,e as effect,C as effectScope,o as endBatch,oe as getCurrentInstance,Ze as getCurrentPageStackSnapshot,n as getCurrentScope,$ as getCurrentSetupContext,xt as getDeepWatchStrategy,Lt as getNavigationBarMetrics,b as getReactiveVersion,ce as hasInjectionContext,ie as inject,ne as injectGlobal,ve as isNoSetData,ae as isProxy,l as isRaw,g as isReactive,re as isReadonly,_ as isRef,d as isShallowReactive,ze as isShallowRef,rt as markNoSetData,S as markRaw,vt as mergeModels,De as mountRuntimeInstance,r as nextTick,it as normalizeClass,St as normalizeStyle,ht as onActivated,se as onAddToFavorites,B as onAttached,Mt as onBeforeMount,nt as onBeforeUnmount,at as onBeforeUpdate,Ct as onDeactivated,V as onDetached,H as onError,_t as onErrorCaptured,N as onHide,I as onLaunch,z as onLoad,W as onMemoryWarning,lt as onMounted,_e as onMoved,M as onPageNotFound,K as onPageScroll,F as onPullDownRefresh,G as onReachBottom,q as onReady,P as onResize,R as onRouteDone,de as onSaveExitState,t as onScopeDispose,st as onServerPrefetch,L as onShareAppMessage,Y as onShareTimeline,J as onShow,X as onTabItemTap,U as onThemeChange,A as onUnhandledRejection,te as onUnload,Je as onUnmounted,Pt as onUpdated,p as prelinkReactiveTree,Z as provide,he as provideGlobal,u as reactive,Q as readonly,m as ref,He as registerApp,ft as registerComponent,Me as registerPageLayoutBridge,Ne as registerRuntimeLayoutHosts,w as removeMutationRecorder,Ke as resetWevuDefaults,Fe as resolveLayoutBridge,Te as resolveLayoutHost,Ae as resolveRuntimePageLayoutName,Ee as runSetupFunction,pe as setCurrentInstance,ee as setCurrentSetupContext,Ot as setDeepWatchStrategy,j as setGlobalProvidedValue,wt as setPageLayout,Ve as setRuntimeSetDataVisibility,Ie as setWevuDefaults,y as shallowReactive,ge as shallowReadonly,Se as shallowRef,i as startBatch,h as stop,k as storeToRefs,ke as syncRuntimePageLayoutState,Ge as syncRuntimePageLayoutStateFromRuntime,Ue as teardownRuntimeInstance,T as toRaw,Qe as toRef,Rt as toRefs,s as toValue,f as touchReactive,Bt as traverse,It as triggerRef,v as unref,Oe as unregisterPageLayoutBridge,je as unregisterRuntimeLayoutHosts,jt as use,Nt as useAsyncPullDownRefresh,bt as useAttrs,Tt as useBindModel,gt as useBoundingClientRect,ut as useChangeModel,we as useDisposables,Be as useElementIntersectionObserver,Ft as useIntersectionObserver,Le as useLayoutBridge,Vt as useLayoutHosts,Ye as useModel,Dt as useNativeInstance,me as useNativePageRouter,le as useNativeRouter,Re as useNavigationBarMetrics,We as usePageLayout,zt as usePageScrollThrottle,xe as usePageStack,ct as useScrollOffset,ot as useSelectorFields,qe as useSelectorQuery,$e as useSlots,kt as useTemplateRef,tt as useUpdatePerformanceListener,At as version,be as waitForLayoutHost,yt as watch,Et as watchEffect,dt as watchPostEffect,Xe as watchSyncEffect};
|
package/dist/router.d.mts
CHANGED
|
@@ -184,7 +184,10 @@ declare function isNavigationFailure(error: unknown, type?: NavigationFailureTyp
|
|
|
184
184
|
declare function resolveRouteLocation(to: RouteLocationRaw, currentPath?: string, codec?: RouteResolveCodec): RouteLocationNormalizedLoaded;
|
|
185
185
|
//#endregion
|
|
186
186
|
//#region src/router/useRoute.d.ts
|
|
187
|
-
|
|
187
|
+
interface UseRouteOptions {
|
|
188
|
+
resolveRoute?: (route: RouteLocationNormalizedLoaded) => RouteLocationNormalizedLoaded;
|
|
189
|
+
}
|
|
190
|
+
declare function useRoute(options?: UseRouteOptions): Readonly<RouteLocationNormalizedLoaded>;
|
|
188
191
|
/**
|
|
189
192
|
* @description 获取当前组件路径语义的原生 Router
|
|
190
193
|
*/
|
package/dist/router.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as e}from"./ref-B6CIXciv.mjs";import{K as t,L as n,W as r,X as i,_t as a,a as o,at as s,c,d as l,f as u,g as d,i as f,l as p,n as m,o as h,p as g,r as _,s as v,t as y,u as b,v as x}from"./router-Cm3FUnTw.mjs";const S=/^:(\w+)(?:\([^)]*\))?([+*?])?$/;function C(e){var t;let n=S.exec(e);if(n)return{key:n[1],modifier:(t=n[2])==null?``:t}}function ee(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function w(e){return encodeURIComponent(e)}function T(e){try{return decodeURIComponent(e)}catch(t){return e}}function E(e,t,n){let r=[],i=new Set;for(let a of e.split(`/`)){if(!a)continue;let e=C(a);if(!e){r.push(a);continue}let o=ee(t[e.key]);if(e.modifier===``){if(o.length!==1)throw Error(`Missing required param "${e.key}" for named route "${n}"`);i.add(e.key),r.push(w(o[0]));continue}if(e.modifier===`?`){if(o.length===0)continue;if(o.length>1)throw Error(`Param "${e.key}" for named route "${n}" must be a single value`);i.add(e.key),r.push(w(o[0]));continue}if(e.modifier===`+`){if(o.length===0)throw Error(`Missing required repeatable param "${e.key}" for named route "${n}"`);i.add(e.key);for(let e of o)r.push(w(e));continue}o.length>0&&i.add(e.key);for(let e of o)r.push(w(e))}return{path:r.join(`/`),consumedKeys:i}}function te(e){return e===void 0?!1:Array.isArray(e)?e.length>0:!0}function D(e,t,n){let r=Object.keys(e).filter(e=>!t.has(e)).filter(t=>te(e[t]));if(r.length!==0)throw Error(`Unexpected params for named route "${n}": ${r.join(`, `)}`)}function ne(e,t,n){let r=e.name;if(typeof r!=`string`||!r||e.path!==void 0||e.fullPath!==void 0)return e;let i=t.recordByName.get(r);if(!i)throw Error(`Named route "${r}" is not defined in createRouter({ routes | namedRoutes })`);let a=e.params?c(e.params):{},o=E(i.path,a,r);return n===`strict`&&D(a,o.consumedKeys,r),{...e,path:o.path?`/${o.path}`:`/`,params:a}}function O(e){return e.split(`/`).filter(Boolean)}function re(e){return[e.path,...e.aliasPaths]}function k(e,t){let n=[],r=new Set,i=e;for(;i&&!(r.has(i.name)||(r.add(i.name),n.unshift(i),!i.parentName));)i=t.recordByName.get(i.parentName);return n}function ie(e){let t;for(let n of e)n.meta&&(t||(t={}),Object.assign(t,n.meta));return t}function A(e,t){let n=new Set;if(!t.has(e))return n;n.add(e);let r=!0;for(;r;){r=!1;for(let[e,i]of t.entries())!i.parentName||n.has(e)||n.has(i.parentName)&&(n.add(e),r=!0)}return n}function j(e){let t={};for(let[n,r]of e.entries())r.length!==0&&(t[n]=r.length===1?r[0]:r);return t}function ae(e,t){let n=O(e),r=O(t),i=new Map,a=(e,t)=>{let n=i.get(e);if(n){n.push(t);return}i.set(e,[t])},o=e=>{let t=i.get(e);!t||t.length===0||(t.pop(),t.length===0&&i.delete(e))},s=(e,t,n)=>{for(let i=0;i<n;i+=1)a(e,T(r[t+i]));return()=>{for(let t=0;t<n;t+=1)o(e)}},c=(e,t)=>{if(e>=n.length)return t>=r.length;let i=n[e],l=C(i);if(!l)return t>=r.length||i!==r[t]?!1:c(e+1,t+1);if(l.modifier===``){if(t>=r.length)return!1;a(l.key,T(r[t]));let n=c(e+1,t+1);return n||o(l.key),n}if(l.modifier===`?`){if(t<r.length){if(a(l.key,T(r[t])),c(e+1,t+1))return!0;o(l.key)}return c(e+1,t)}let u=+(l.modifier===`+`),d=r.length-t;for(let n=d;n>=u;--n){let r=s(l.key,t,n);if(c(e+1,t+n))return!0;r()}return!1};if(c(0,0))return j(i)}function M(e,t){if(e.name){let n=t.recordByName.get(e.name);if(n)return{record:n,matchedRecords:k(n,t)}}let n=t.nameByStaticPath.get(e.path);if(n){let r=t.recordByName.get(n);if(r)return{record:r,matchedRecords:k(r,t),matchedPath:e.path}}for(let n of t.recordByName.values())for(let r of re(n)){if(!u(r))continue;let i=ae(r,e.path);if(i)return{record:n,matchedRecords:k(n,t),matchedPath:r,params:i}}}function N(e){typeof console>`u`||typeof console.warn!=`function`||console.warn(`[wevu/router] ${e}`)}function oe(e){let t=g(e,``);return t?l(t):`/`}function se(e,t=new Set){if(t.has(e))return!0;if(!Array.isArray(e.children)||e.children.length===0)return!1;let n=new Set(t);n.add(e);for(let t of e.children)if(se(t,n))return!0;return!1}function ce(e){let t=typeof e.name==`string`?e.name.trim():``;if(!t)throw Error(`Route name is required when adding a named route`);if(typeof e.path!=`string`||!e.path)throw Error(`Route path is required when adding named route "${t}"`);if(se(e))throw Error(`Circular children reference detected when adding named route "${t}"`)}function le(e){let t=new Map,n=[];for(let i of e){var r;let e=typeof i.route.name==`string`?i.route.name.trim():``;if(!e)continue;let a=(r=i.source)==null?`namedRoutes`:r,o=oe(i.route.path),s=t.get(e);s&&n.push(`"${e}" (${s.source}:${s.path} -> ${a}:${o})`),t.set(e,{source:a,path:o})}n.length!==0&&N(`duplicate route names detected, later entries override earlier ones: ${n.join(`, `)}`)}function ue(e){return e?Array.isArray(e)?e:[e]:[]}function de(e,t,n=`namedRoutes`){return typeof e.name==`string`&&e.name.trim()?e.name.trim():n===`routes`?t||`/`:``}function fe(e,t){if(!e)return[];let n=Array.isArray(e)?e:[e],r=[];for(let e of n){if(typeof e!=`string`)continue;let n=g(e,``);!n||n===t||r.includes(n)||r.push(n)}return r}function pe(e,t,n=`namedRoutes`){let r=g(e.path,``);if(!r&&e.path!==`/`)return;let i=de(e,r,n);if(i)return{name:i,path:r,aliasPaths:fe(e.alias,r),parentName:t,meta:e.meta,beforeEnterGuards:ue(e.beforeEnter),redirect:e.redirect}}function P(e,t){return!t||e.startsWith(`/`)?g(e,``):g(`${l(t)}/${e}`,``)}function me(e){return e?Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.length>0):typeof e==`string`&&e.length>0?[e]:[]:[]}function he(e){let t=[];for(let n of e)!n||t.includes(n)||t.push(n);return t}function ge(e){if(e.length!==0)return e.length===1?l(e[0]):e.map(e=>l(e))}function F(e,t,n,r=[],i,a=`namedRoutes`,o=new Set){let s=[];for(let[c,u]of e.entries()){let e=`${a}[${c}]`;if(o.has(u)){N(`ignored route record at ${e}: detected circular children reference`);continue}if(typeof u.path!=`string`||!u.path){N(`ignored route record "${typeof(u==null?void 0:u.name)==`string`?u.name.trim():``}" at ${e}: route path is required`);continue}let d=P(u.path,t),f=de(u,d,i);if(!f){N(`ignored route record at ${e}: route name is required`);continue}let p=[],m=new Map;for(let n of me(u.alias)){let r=P(n,t);if(!r)continue;if(r===d){N(`ignored alias "${l(r)}" for route "${f}" at ${e}: alias is same as route path`);continue}let i=m.get(r);if(i){N(`ignored duplicate alias "${l(r)}" for route "${f}" at ${e}: already declared by "${i}"`);continue}m.set(r,n),p.push(r)}let h=u.path.startsWith(`/`)?[]:r.map(e=>P(u.path,e)).filter(Boolean).filter(e=>e!==d),g=he([...p,...h]),_={name:f,path:d?l(d):`/`,alias:ge(g),meta:u.meta,beforeEnter:u.beforeEnter,redirect:u.redirect};if(s.push({route:_,parentName:n,source:i}),Array.isArray(u.children)&&u.children.length>0){let t=new Set(o);t.add(u),s.push(...F(u.children,d,f,g,i,`${e}.children`,t))}}return s}function I(e,t=`namedRoutes`){if(!e)return[];if(Array.isArray(e))return F(e,void 0,void 0,[],t,t);let n=[];for(let[r,i]of Object.entries(e)){let e=typeof r==`string`?r.trim():``;if(!e){N(`ignored route record at ${t}: route name is required`);continue}if(typeof i!=`string`||!i){N(`ignored route record "${e}" at ${t}: route path is required`);continue}n.push({route:{name:e,path:i},source:t})}return n}function _e(e){return[...I(e.routes,`routes`),...I(e.namedRoutes,`namedRoutes`)]}function L(e){let t=new Map;for(let[n,r]of e.entries()){!u(r.path)&&!t.has(r.path)&&t.set(r.path,n);for(let e of r.aliasPaths)!u(e)&&!t.has(e)&&t.set(e,n)}return t}function ve(e){let t=new Map;for(let n of e){let e=pe(n.route,n.parentName,n.source);e&&t.set(e.name,e)}return{recordByName:t,nameByStaticPath:L(t)}}function R(e){if(e)return{...e}}function ye(e){let t={name:e.name,path:e.path};return e.meta!==void 0&&(t.meta=R(e.meta)),Array.isArray(e.alias)?t.alias=Object.freeze(e.alias.slice()):e.alias!==void 0&&(t.alias=e.alias),Array.isArray(e.beforeEnter)?t.beforeEnter=Object.freeze(e.beforeEnter.slice()):e.beforeEnter!==void 0&&(t.beforeEnter=e.beforeEnter),e.redirect!==void 0&&(t.redirect=e.redirect),Object.freeze(t)}function be(e,t,n,r,i,a){let o=Object.freeze(e.map(e=>l(e))),s=Object.freeze(t.map(ye));return Object.freeze({tabBarEntries:o,routes:s,namedRoutes:s,paramsMode:n,maxRedirects:r,parseQuery:i.parseQuery,stringifyQuery:i.stringifyQuery,rejectOnError:a})}function xe(e,t){let n={name:e.name,path:l(e.path)},r=typeof t==`string`&&t?l(g(t,``)):void 0;return r&&r!==n.path&&(n.aliasPath=r),e.meta!==void 0&&(n.meta=R(e.meta)),n}function z(e){if(e)return e.map(e=>({name:e.name,path:e.path,aliasPath:e.aliasPath,meta:R(e.meta)}))}function B(e){let t={};for(let n of Object.keys(e)){let r=e[n];t[n]=Array.isArray(r)?r.slice():r}return t}function V(e){let t={};for(let n of Object.keys(e)){let r=e[n];t[n]=Array.isArray(r)?r.slice():r}return t}function Se(e){if(!e)return;let t={path:e.path,fullPath:e.fullPath,query:B(e.query),hash:e.hash,params:V(e.params)};return e.name!==void 0&&(t.name=e.name),e.meta!==void 0&&(t.meta=R(e.meta)),e.href!==void 0&&(t.href=e.href),e.matched!==void 0&&(t.matched=z(e.matched)),t}function Ce(e){let t={path:e.path,fullPath:e.fullPath,query:B(e.query),hash:e.hash,params:V(e.params)};return e.name!==void 0&&(t.name=e.name),e.meta!==void 0&&(t.meta=R(e.meta)),e.href!==void 0&&(t.href=e.href),e.matched!==void 0&&(t.matched=z(e.matched)),t}function H(e){let t={path:e.path,fullPath:e.fullPath,query:B(e.query),hash:e.hash,params:V(e.params)};return e.meta!==void 0&&(t.meta=R(e.meta)),e.href!==void 0&&(t.href=e.href),e.matched!==void 0&&(t.matched=z(e.matched)),e.redirectedFrom!==void 0&&(t.redirectedFrom=Se(e.redirectedFrom)),e.name!==void 0&&(t.name=e.name),t}function U(e,t=b){let n=l(e.path),r=t(e.query);return r?`${n}?${r}`:n}function we(e){return Object.keys(e).length>0}const Te=Symbol(`wevu.router.instance`);let Ee;function De(e){Ee=e,x(Te,e)}function Oe(){var e;return(e=Ee)==null?d(Te,void 0):e}const W={unknown:1,aborted:4,cancelled:8,duplicated:16},ke=/already|same|duplicat|重复/,Ae=/cancel|取消/,je=/abort|interrupt|中断/;function Me(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`){let t=e.errMsg;if(typeof t==`string`)return t;if(e instanceof Error)return e.message}return``}function G(e){let t=Me(e).toLowerCase();return ke.test(t)?W.duplicated:Ae.test(t)?W.cancelled:je.test(t)?W.aborted:W.unknown}function K(e,t,n,r){let i=Me(r)||`Navigation failed`,a=Error(i);return a.__wevuNavigationFailure=!0,a.type=e,a.to=t,a.from=n,a.cause=r,a}function q(e,t){if(!e||typeof e!=`object`)return!1;let n=e;return n.__wevuNavigationFailure===!0?t===void 0?!0:n.type===t:!1}function Ne(e){return!e||typeof e!=`object`?!1:`to`in e}function Pe(e){if(typeof e==`string`)return!0;if(!e||typeof e!=`object`)return!1;let t=e;return`path`in t||`fullPath`in t||`query`in t||`hash`in t||`name`in t||`params`in t}async function J(e,t,n){for(let r of e)try{let e=await r(t.to,t.from,t);if(q(e))return{status:`failure`,failure:e};if(e===!1)return{status:`failure`,failure:K(W.aborted,t.to,t.from,`Navigation aborted by guard`)};if(Ne(e))return t.to?{status:`redirect`,target:n(e.to,t.to.path),replace:e.replace}:{status:`failure`,failure:K(W.aborted,t.to,t.from,`Redirect is not supported in back navigation guards`)};if(Pe(e))return t.to?{status:`redirect`,target:n(e,t.to.path)}:{status:`failure`,failure:K(W.aborted,t.to,t.from,`Redirect is not supported in back navigation guards`)}}catch(e){return{status:`failure`,failure:K(W.aborted,t.to,t.from,e)}}return{status:`continue`}}function Y(e,t,n,r){return new Promise(i=>{let a=!1,o=e=>{a||(a=!0,i(e))};try{let i=e({...t,success:()=>o(),fail:e=>{o(K(G(e),n,r,e))}});i&&typeof i.then==`function`&&i.then(()=>o(),e=>o(K(G(e),n,r,e)))}catch(e){o(K(G(e),n,r,e))}})}async function Fe(e,t){for(let n of e)try{await n(t.to,t.from,t.failure,t)}catch(e){}}async function Ie(e,t,n){for(let r of e)try{await r(t,n)}catch(e){}}function Le(e){return!e||typeof e!=`object`?!1:typeof e.errMsg==`string`}function X(e){return e.type===W.unknown||e.cause instanceof Error?!0:e.type===W.aborted&&e.cause!==void 0?!(typeof e.cause==`string`||Le(e.cause)):!1}function Z(e,t,n,r){return{mode:e,from:t,to:n,failure:r}}function Re(e){let{afterEachHooks:t,errorHandlers:n,nativeRouter:r,rejectOnError:i}=e;async function a(e){if(await Fe(t,{mode:e.mode,to:e.to,from:e.from,nativeRouter:r,failure:e.failure}),e.failure&&X(e.failure)){var i;await Ie(n,(i=e.failure.cause)==null?e.failure:i,{mode:e.mode,to:e.to,from:e.from,nativeRouter:r,failure:e.failure})}}function o(e){return i&&X(e)}async function s(e){if(await a(e),e.failure&&o(e.failure))throw e.failure;return e.failure}return{settleNavigationResult:s}}function ze(e,t){return K(W.duplicated,e,t,`Avoided redundant navigation to current location`)}function Be(e,t){return K(W.aborted,e,t,`switchTab does not support query parameters`)}function Q(e,t,n){return K(W.aborted,e,t,`Navigation redirected more than ${n} times`)}function Ve(e,t){return K(W.aborted,e,t,`Hash-only navigation is not supported in mini-program router`)}function He(e){return K(W.aborted,void 0,e,`Forward navigation is not supported in mini-program router`)}function $(e,t){e.redirectedFrom=t.redirectedFrom?Se(t.redirectedFrom):Ce(t)}async function Ue(e,t,n,r){let i=typeof e==`function`?await e(t,n):e;return Ne(i)?{target:r(i.to,t.path),replace:i.replace}:{target:r(i,t.path),replace:!0}}async function We(e){let{mode:t,target:n,from:r,nativeRouter:i,routeResolveCodec:a,namedRouteLookup:o,beforeEachGuards:s,beforeResolveGuards:c,maxRedirects:u,tabBarPathSet:d,resolveWithCodec:f}=e,p=n,m=t,h=0;for(;;){var g;let e=d.has(p.path);if(U(p,a.stringifyQuery)===U(r,a.stringifyQuery)&&p.hash!==r.hash)return Z(m,r,p,Ve(p,r));if(e?p.path===r.path:p.fullPath===r.fullPath)return Z(m,r,p,ze(p,r));if(e&&we(p.query))return Z(m,r,p,Be(p,r));let t=await J(s,{mode:m,to:p,from:r,nativeRouter:i},f);if(t.status===`failure`)return Z(m,r,p,t.failure);if(t.status===`redirect`){let e=t.target,n=t.replace===!0?`replace`:t.replace===!1?`push`:m;if(e.fullPath!==p.fullPath||n!==m){if($(e,p),p=e,m=n,h+=1,h>u)return Z(m,r,p,Q(p,r,u));continue}}let n=M(p,o),_=(g=n==null?void 0:n.matchedRecords)==null?[]:g,v=!1;for(let e of _){if(e.redirect===void 0)continue;let t;try{t=await Ue(e.redirect,p,r,f)}catch(e){return Z(m,r,p,K(W.aborted,p,r,e))}let n=t.replace===!1?`push`:`replace`,i=t.target;if(i.fullPath!==p.fullPath||n!==m){if($(i,p),p=i,m=n,h+=1,h>u)return Z(m,r,p,Q(p,r,u));v=!0;break}}if(v)continue;let y=!1;for(let e of _){if(e.beforeEnterGuards.length===0)continue;let t=await J(new Set(e.beforeEnterGuards),{mode:m,to:p,from:r,nativeRouter:i},f);if(t.status===`failure`)return Z(m,r,p,t.failure);if(t.status===`redirect`){let e=t.target,n=t.replace===!0?`replace`:t.replace===!1?`push`:m;if(e.fullPath!==p.fullPath||n!==m){if($(e,p),p=e,m=n,h+=1,h>u)return Z(m,r,p,Q(p,r,u));y=!0;break}}}if(y)continue;let b=await J(c,{mode:m,to:p,from:r,nativeRouter:i},f);if(b.status===`failure`)return Z(m,r,p,b.failure);if(b.status===`redirect`){let e=b.target,t=b.replace===!0?`replace`:b.replace===!1?`push`:m;if(e.fullPath!==p.fullPath||t!==m){if($(e,p),p=e,m=t,h+=1,h>u)return Z(m,r,p,Q(p,r,u));continue}}if(e){let e=await Y(i.switchTab,{url:l(p.path)},p,r);return q(e)?Z(m,r,p,e):Z(m,r,p)}let x=await Y(m===`push`?i.navigateTo:i.redirectTo,{url:U(p,a.stringifyQuery)},p,r);return q(x)?Z(m,r,p,x):Z(m,r,p)}}function Ge(e){let{nativeRouter:t,route:n,routeResolveCodec:r,namedRouteLookup:i,beforeEachGuards:a,beforeResolveGuards:o,maxRedirects:s,tabBarPathSet:c,resolveWithCodec:l,settleNavigationResult:u}=e;async function d(e){let d=H(n),f;try{f=l(e,d.path)}catch(e){return u(Z(`push`,d,void 0,K(W.unknown,void 0,d,e)))}return u(await We({mode:`push`,target:f,from:d,nativeRouter:t,routeResolveCodec:r,namedRouteLookup:i,beforeEachGuards:a,beforeResolveGuards:o,maxRedirects:s,tabBarPathSet:c,resolveWithCodec:l}))}async function f(e){let d=H(n),f;try{f=l(e,d.path)}catch(e){return u(Z(`replace`,d,void 0,K(W.unknown,void 0,d,e)))}return u(await We({mode:`replace`,target:f,from:d,nativeRouter:t,routeResolveCodec:r,namedRouteLookup:i,beforeEachGuards:a,beforeResolveGuards:o,maxRedirects:s,tabBarPathSet:c,resolveWithCodec:l}))}async function p(e=1){let r=H(n),i=await J(a,{mode:`back`,from:r,nativeRouter:t},l);if(i.status===`failure`)return u(Z(`back`,r,void 0,i.failure));if(i.status===`redirect`)return u(Z(`back`,r,void 0,K(W.aborted,void 0,r,`Redirect is not supported in back navigation guards`)));let s=await J(o,{mode:`back`,from:r,nativeRouter:t},l);if(s.status===`failure`)return u(Z(`back`,r,void 0,s.failure));if(s.status===`redirect`)return u(Z(`back`,r,void 0,K(W.aborted,void 0,r,`Redirect is not supported in back navigation guards`)));let c=await Y(t.navigateBack,{delta:e},void 0,r);return u(q(c)?Z(`back`,r,void 0,c):Z(`back`,r))}async function m(e){if(e<0)return p(Math.abs(e));if(e===0)return;let t=H(n);return u(Z(`back`,t,void 0,He(t)))}async function h(){return m(1)}return{push:d,replace:f,back:p,go:m,forward:h}}const Ke={parseQuery:p,stringifyQuery:b};function qe(e,t=``,n=Ke){var r,i,a,o;if(typeof e==`string`){let r=f(e,n);return _(g(r.path,t),r.query,r.hash,void 0,{},n.stringifyQuery)}let s=typeof e.fullPath==`string`?f(e.fullPath,n):void 0;return _(g((r=(i=e.path)==null?s==null?void 0:s.path:i)==null?t:r,t),e.query?v(e.query):(a=s==null?void 0:s.query)==null?{}:a,h((o=e.hash)==null?s==null?void 0:s.hash:o),typeof e.name==`string`?e.name:void 0,e.params?c(e.params):{},n.stringifyQuery)}function Je(e){let t={name:e.name,path:e.path?`/${e.path}`:`/`};return e.meta!==void 0&&(t.meta=R(e.meta)),e.aliasPaths.length===1?t.alias=l(e.aliasPaths[0]):e.aliasPaths.length>1&&(t.alias=e.aliasPaths.map(e=>l(e))),e.beforeEnterGuards.length===1?t.beforeEnter=e.beforeEnterGuards[0]:e.beforeEnterGuards.length>1&&(t.beforeEnter=e.beforeEnterGuards.slice()),e.redirect!==void 0&&(t.redirect=e.redirect),t}function Ye(e){let t=t=>e.recordByName.has(t),n=()=>Array.from(e.recordByName.values(),Je),r=((t,n)=>{let r=typeof t==`string`?n:t;if(!r)throw Error(`Route record is required when adding a child route`);ce(r);let i=typeof t==`string`?t:void 0,a=i?e.recordByName.get(i):void 0;if(i&&!a)throw Error(`Parent route "${i}" is not defined in createRouter({ routes | namedRoutes })`);let o=F([r],a==null?void 0:a.path,i,a==null?void 0:a.aliasPaths,void 0,`addRoute`);if(o.length===0)throw Error(`Route name and path are required when adding a named route`);let s=[];for(let t of o){let n=pe(t.route,t.parentName);if(!n)continue;let r=e.recordByName.get(n.name);if(r){let t=A(r.name,e.recordByName);for(let n of t)e.recordByName.delete(n);N(`addRoute() replaced existing route "${n.name}" (${l(r.path)} -> ${l(n.path)}) and removed ${t.size-1} nested route(s)`)}e.recordByName.set(n.name,n),s.push(n)}return e.nameByStaticPath=L(e.recordByName),()=>{let t=!1;for(let n of s)e.recordByName.get(n.name)===n&&(e.recordByName.delete(n.name),t=!0);t&&(e.nameByStaticPath=L(e.recordByName))}});function i(t){let n=A(t,e.recordByName);if(n.size===0)return;let r=!1;for(let t of n)r=e.recordByName.delete(t)||r;r&&(e.nameByStaticPath=L(e.recordByName))}function a(){e.recordByName.clear(),e.nameByStaticPath.clear()}return{hasRoute:t,getRoutes:n,addRoute:r,removeRoute:i,clearRoutes:a}}function Xe(){let c=s();if(!c)throw Error(`useRoute() 必须在 setup() 的同步阶段调用`);let l=c.instance,u=o(void 0,l),d=e({path:u.path,fullPath:u.fullPath,query:u.query,hash:u.hash,params:u.params,name:u.name});u.meta!==void 0&&(d.meta=u.meta);function f(e){let t=o(e,l);d.path=t.path,d.fullPath=t.fullPath,d.query=t.query,d.hash=t.hash,t.meta===void 0?delete d.meta:d.meta=t.meta,d.params=t.params,d.name=t.name}return n(e=>{f(e)}),r(()=>{f()}),i(()=>{f()}),t(()=>{f()}),a(d)}function Ze(){return m()}function Qe(){return y()}function $e(e={}){var t,n,r,i,a,o;let s=Ze(),c=Xe(),l=new Set,u=new Set,d=new Set,f=new Set,m=(t=e.maxRedirects)==null?10:t,h=(n=e.paramsMode)==null?`loose`:n,_=(r=e.rejectOnError)==null?!0:r,v={parseQuery:(i=e.parseQuery)==null?p:i,stringifyQuery:(a=e.stringifyQuery)==null?b:a},y=Promise.resolve(),x=_e(e);le(x);let S=ve(x),C=((o=e.tabBarEntries)==null?[]:o).map(e=>g(e,``)).filter(Boolean),ee=new Set(C),w=Ye(S),T=be(C,w.getRoutes(),h,m,v,_);function E(e,t){let n=qe(typeof e==`string`?e:ne(e,S,h),t,v);n.href=n.fullPath;let r=M(n,S);if(r){let e=r.record;n.name===void 0&&(n.name=e.name);let t=ie(r.matchedRecords);t!==void 0&&(n.meta=R(t)),r.params&&Object.keys(n.params).length===0&&(n.params=V(r.params)),n.matched=r.matchedRecords.map((e,t,n)=>xe(e,t===n.length-1?r.matchedPath:void 0))}else n.matched=[];return n}function te(e){return E(e,c.path)}let D=Ge({nativeRouter:s,route:c,routeResolveCodec:v,namedRouteLookup:S,beforeEachGuards:l,beforeResolveGuards:u,maxRedirects:m,tabBarPathSet:ee,resolveWithCodec:E,settleNavigationResult:Re({afterEachHooks:d,errorHandlers:f,nativeRouter:s,rejectOnError:_}).settleNavigationResult});function O(e){return l.add(e),()=>{l.delete(e)}}function re(e){return u.add(e),()=>{u.delete(e)}}function k(e){return d.add(e),()=>{d.delete(e)}}function A(e){return f.add(e),()=>{f.delete(e)}}let j={nativeRouter:s,options:T,currentRoute:c,install(e){var t;De(j);let n=e==null||(t=e.config)==null?void 0:t.globalProperties;n&&(n.$router=j)},resolve:te,isReady(){return y},push:D.push,replace:D.replace,back:D.back,go:D.go,forward:D.forward,hasRoute:w.hasRoute,getRoutes:w.getRoutes,addRoute:w.addRoute,removeRoute:w.removeRoute,clearRoutes:w.clearRoutes,beforeEach:O,beforeResolve:re,afterEach:k,onError:A};return De(j),j}function et(){let e=Oe();if(e)return e;throw Error(`useRouter() 未找到已创建的 router 实例。请先在 setup() 中调用 createRouter()。`)}export{W as NavigationFailureType,K as createNavigationFailure,$e as createRouter,q as isNavigationFailure,p as parseQuery,qe as resolveRouteLocation,b as stringifyQuery,Qe as useNativePageRouter,Ze as useNativeRouter,Xe as useRoute,et as useRouter};
|
|
1
|
+
import{d as e}from"./ref-B6CIXciv.mjs";import{K as t,L as n,W as r,X as i,_t as a,a as o,at as s,c,d as l,f as u,g as d,i as f,l as p,n as m,o as h,p as g,r as _,s as v,t as y,u as b,v as x}from"./router-Cm3FUnTw.mjs";const S=/^:(\w+)(?:\([^)]*\))?([+*?])?$/;function C(e){var t;let n=S.exec(e);if(n)return{key:n[1],modifier:(t=n[2])==null?``:t}}function w(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function T(e){return encodeURIComponent(e)}function E(e){try{return decodeURIComponent(e)}catch(t){return e}}function D(e,t,n){let r=[],i=new Set;for(let a of e.split(`/`)){if(!a)continue;let e=C(a);if(!e){r.push(a);continue}let o=w(t[e.key]);if(e.modifier===``){if(o.length!==1)throw Error(`Missing required param "${e.key}" for named route "${n}"`);i.add(e.key),r.push(T(o[0]));continue}if(e.modifier===`?`){if(o.length===0)continue;if(o.length>1)throw Error(`Param "${e.key}" for named route "${n}" must be a single value`);i.add(e.key),r.push(T(o[0]));continue}if(e.modifier===`+`){if(o.length===0)throw Error(`Missing required repeatable param "${e.key}" for named route "${n}"`);i.add(e.key);for(let e of o)r.push(T(e));continue}o.length>0&&i.add(e.key);for(let e of o)r.push(T(e))}return{path:r.join(`/`),consumedKeys:i}}function O(e){return e===void 0?!1:Array.isArray(e)?e.length>0:!0}function ee(e,t,n){let r=Object.keys(e).filter(e=>!t.has(e)).filter(t=>O(e[t]));if(r.length!==0)throw Error(`Unexpected params for named route "${n}": ${r.join(`, `)}`)}function te(e,t,n){let r=e.name;if(typeof r!=`string`||!r||e.path!==void 0||e.fullPath!==void 0)return e;let i=t.recordByName.get(r);if(!i)throw Error(`Named route "${r}" is not defined in createRouter({ routes | namedRoutes })`);let a=e.params?c(e.params):{},o=D(i.path,a,r);return n===`strict`&&ee(a,o.consumedKeys,r),{...e,path:o.path?`/${o.path}`:`/`,params:a}}function k(e){return e.split(`/`).filter(Boolean)}function ne(e){return[e.path,...e.aliasPaths]}function A(e,t){let n=[],r=new Set,i=e;for(;i&&!(r.has(i.name)||(r.add(i.name),n.unshift(i),!i.parentName));)i=t.recordByName.get(i.parentName);return n}function re(e){let t;for(let n of e)n.meta&&(t||(t={}),Object.assign(t,n.meta));return t}function j(e,t){let n=new Set;if(!t.has(e))return n;n.add(e);let r=!0;for(;r;){r=!1;for(let[e,i]of t.entries())!i.parentName||n.has(e)||n.has(i.parentName)&&(n.add(e),r=!0)}return n}function ie(e){let t={};for(let[n,r]of e.entries())r.length!==0&&(t[n]=r.length===1?r[0]:r);return t}function M(e,t){let n=k(e),r=k(t),i=new Map,a=(e,t)=>{let n=i.get(e);if(n){n.push(t);return}i.set(e,[t])},o=e=>{let t=i.get(e);!t||t.length===0||(t.pop(),t.length===0&&i.delete(e))},s=(e,t,n)=>{for(let i=0;i<n;i+=1)a(e,E(r[t+i]));return()=>{for(let t=0;t<n;t+=1)o(e)}},c=(e,t)=>{if(e>=n.length)return t>=r.length;let i=n[e],l=C(i);if(!l)return t>=r.length||i!==r[t]?!1:c(e+1,t+1);if(l.modifier===``){if(t>=r.length)return!1;a(l.key,E(r[t]));let n=c(e+1,t+1);return n||o(l.key),n}if(l.modifier===`?`){if(t<r.length){if(a(l.key,E(r[t])),c(e+1,t+1))return!0;o(l.key)}return c(e+1,t)}let u=+(l.modifier===`+`),d=r.length-t;for(let n=d;n>=u;--n){let r=s(l.key,t,n);if(c(e+1,t+n))return!0;r()}return!1};if(c(0,0))return ie(i)}function ae(e,t){if(e.name){let n=t.recordByName.get(e.name);if(n)return{record:n,matchedRecords:A(n,t)}}let n=t.nameByStaticPath.get(e.path);if(n){let r=t.recordByName.get(n);if(r)return{record:r,matchedRecords:A(r,t),matchedPath:e.path}}for(let n of t.recordByName.values())for(let r of ne(n)){if(!u(r))continue;let i=M(r,e.path);if(i)return{record:n,matchedRecords:A(n,t),matchedPath:r,params:i}}}function N(e){typeof console>`u`||typeof console.warn!=`function`||console.warn(`[wevu/router] ${e}`)}function oe(e){let t=g(e,``);return t?l(t):`/`}function P(e,t=new Set){if(t.has(e))return!0;if(!Array.isArray(e.children)||e.children.length===0)return!1;let n=new Set(t);n.add(e);for(let t of e.children)if(P(t,n))return!0;return!1}function se(e){let t=typeof e.name==`string`?e.name.trim():``;if(!t)throw Error(`Route name is required when adding a named route`);if(typeof e.path!=`string`||!e.path)throw Error(`Route path is required when adding named route "${t}"`);if(P(e))throw Error(`Circular children reference detected when adding named route "${t}"`)}function ce(e){let t=new Map,n=[];for(let i of e){var r;let e=typeof i.route.name==`string`?i.route.name.trim():``;if(!e)continue;let a=(r=i.source)==null?`namedRoutes`:r,o=oe(i.route.path),s=t.get(e);s&&n.push(`"${e}" (${s.source}:${s.path} -> ${a}:${o})`),t.set(e,{source:a,path:o})}n.length!==0&&N(`duplicate route names detected, later entries override earlier ones: ${n.join(`, `)}`)}function le(e){return e?Array.isArray(e)?e:[e]:[]}function ue(e,t,n=`namedRoutes`){return typeof e.name==`string`&&e.name.trim()?e.name.trim():n===`routes`?t||`/`:``}function de(e,t){if(!e)return[];let n=Array.isArray(e)?e:[e],r=[];for(let e of n){if(typeof e!=`string`)continue;let n=g(e,``);!n||n===t||r.includes(n)||r.push(n)}return r}function fe(e,t,n=`namedRoutes`){let r=g(e.path,``);if(!r&&e.path!==`/`)return;let i=ue(e,r,n);if(i)return{name:i,path:r,aliasPaths:de(e.alias,r),parentName:t,meta:e.meta,beforeEnterGuards:le(e.beforeEnter),redirect:e.redirect}}function F(e,t){return!t||e.startsWith(`/`)?g(e,``):g(`${l(t)}/${e}`,``)}function pe(e){return e?Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.length>0):typeof e==`string`&&e.length>0?[e]:[]:[]}function me(e){let t=[];for(let n of e)!n||t.includes(n)||t.push(n);return t}function he(e){if(e.length!==0)return e.length===1?l(e[0]):e.map(e=>l(e))}function I(e,t,n,r=[],i,a=`namedRoutes`,o=new Set){let s=[];for(let[c,u]of e.entries()){let e=`${a}[${c}]`;if(o.has(u)){N(`ignored route record at ${e}: detected circular children reference`);continue}if(typeof u.path!=`string`||!u.path){N(`ignored route record "${typeof(u==null?void 0:u.name)==`string`?u.name.trim():``}" at ${e}: route path is required`);continue}let d=F(u.path,t),f=ue(u,d,i);if(!f){N(`ignored route record at ${e}: route name is required`);continue}let p=[],m=new Map;for(let n of pe(u.alias)){let r=F(n,t);if(!r)continue;if(r===d){N(`ignored alias "${l(r)}" for route "${f}" at ${e}: alias is same as route path`);continue}let i=m.get(r);if(i){N(`ignored duplicate alias "${l(r)}" for route "${f}" at ${e}: already declared by "${i}"`);continue}m.set(r,n),p.push(r)}let h=u.path.startsWith(`/`)?[]:r.map(e=>F(u.path,e)).filter(Boolean).filter(e=>e!==d),g=me([...p,...h]),_={name:f,path:d?l(d):`/`,alias:he(g),meta:u.meta,beforeEnter:u.beforeEnter,redirect:u.redirect};if(s.push({route:_,parentName:n,source:i}),Array.isArray(u.children)&&u.children.length>0){let t=new Set(o);t.add(u),s.push(...I(u.children,d,f,g,i,`${e}.children`,t))}}return s}function ge(e,t=`namedRoutes`){if(!e)return[];if(Array.isArray(e))return I(e,void 0,void 0,[],t,t);let n=[];for(let[r,i]of Object.entries(e)){let e=typeof r==`string`?r.trim():``;if(!e){N(`ignored route record at ${t}: route name is required`);continue}if(typeof i!=`string`||!i){N(`ignored route record "${e}" at ${t}: route path is required`);continue}n.push({route:{name:e,path:i},source:t})}return n}function _e(e){return[...ge(e.routes,`routes`),...ge(e.namedRoutes,`namedRoutes`)]}function L(e){let t=new Map;for(let[n,r]of e.entries()){!u(r.path)&&!t.has(r.path)&&t.set(r.path,n);for(let e of r.aliasPaths)!u(e)&&!t.has(e)&&t.set(e,n)}return t}function ve(e){let t=new Map;for(let n of e){let e=fe(n.route,n.parentName,n.source);e&&t.set(e.name,e)}return{recordByName:t,nameByStaticPath:L(t)}}function R(e){if(e)return{...e}}function ye(e){let t={name:e.name,path:e.path};return e.meta!==void 0&&(t.meta=R(e.meta)),Array.isArray(e.alias)?t.alias=Object.freeze(e.alias.slice()):e.alias!==void 0&&(t.alias=e.alias),Array.isArray(e.beforeEnter)?t.beforeEnter=Object.freeze(e.beforeEnter.slice()):e.beforeEnter!==void 0&&(t.beforeEnter=e.beforeEnter),e.redirect!==void 0&&(t.redirect=e.redirect),Object.freeze(t)}function be(e,t,n,r,i,a){let o=Object.freeze(e.map(e=>l(e))),s=Object.freeze(t.map(ye));return Object.freeze({tabBarEntries:o,routes:s,namedRoutes:s,paramsMode:n,maxRedirects:r,parseQuery:i.parseQuery,stringifyQuery:i.stringifyQuery,rejectOnError:a})}function xe(e,t){let n={name:e.name,path:l(e.path)},r=typeof t==`string`&&t?l(g(t,``)):void 0;return r&&r!==n.path&&(n.aliasPath=r),e.meta!==void 0&&(n.meta=R(e.meta)),n}function z(e){if(e)return e.map(e=>({name:e.name,path:e.path,aliasPath:e.aliasPath,meta:R(e.meta)}))}function B(e){let t={};for(let n of Object.keys(e)){let r=e[n];t[n]=Array.isArray(r)?r.slice():r}return t}function V(e){let t={};for(let n of Object.keys(e)){let r=e[n];t[n]=Array.isArray(r)?r.slice():r}return t}function H(e){if(!e)return;let t={path:e.path,fullPath:e.fullPath,query:B(e.query),hash:e.hash,params:V(e.params)};return e.name!==void 0&&(t.name=e.name),e.meta!==void 0&&(t.meta=R(e.meta)),e.href!==void 0&&(t.href=e.href),e.matched!==void 0&&(t.matched=z(e.matched)),t}function Se(e){let t={path:e.path,fullPath:e.fullPath,query:B(e.query),hash:e.hash,params:V(e.params)};return e.name!==void 0&&(t.name=e.name),e.meta!==void 0&&(t.meta=R(e.meta)),e.href!==void 0&&(t.href=e.href),e.matched!==void 0&&(t.matched=z(e.matched)),t}function U(e){let t={path:e.path,fullPath:e.fullPath,query:B(e.query),hash:e.hash,params:V(e.params)};return e.meta!==void 0&&(t.meta=R(e.meta)),e.href!==void 0&&(t.href=e.href),e.matched!==void 0&&(t.matched=z(e.matched)),e.redirectedFrom!==void 0&&(t.redirectedFrom=H(e.redirectedFrom)),e.name!==void 0&&(t.name=e.name),t}function W(e,t=b){let n=l(e.path),r=t(e.query);return r?`${n}?${r}`:n}function Ce(e){return Object.keys(e).length>0}const we=Symbol(`wevu.router.instance`);let Te;function Ee(e){Te=e,x(we,e)}function De(){var e;return(e=Te)==null?d(we,void 0):e}const G={unknown:1,aborted:4,cancelled:8,duplicated:16},Oe=/already|same|duplicat|重复/,ke=/cancel|取消/,Ae=/abort|interrupt|中断/;function je(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`){let t=e.errMsg;if(typeof t==`string`)return t;if(e instanceof Error)return e.message}return``}function K(e){let t=je(e).toLowerCase();return Oe.test(t)?G.duplicated:ke.test(t)?G.cancelled:Ae.test(t)?G.aborted:G.unknown}function q(e,t,n,r){let i=je(r)||`Navigation failed`,a=Error(i);return a.__wevuNavigationFailure=!0,a.type=e,a.to=t,a.from=n,a.cause=r,a}function J(e,t){if(!e||typeof e!=`object`)return!1;let n=e;return n.__wevuNavigationFailure===!0?t===void 0?!0:n.type===t:!1}function Me(e){return!e||typeof e!=`object`?!1:`to`in e}function Ne(e){if(typeof e==`string`)return!0;if(!e||typeof e!=`object`)return!1;let t=e;return`path`in t||`fullPath`in t||`query`in t||`hash`in t||`name`in t||`params`in t}async function Y(e,t,n){for(let r of e)try{let e=await r(t.to,t.from,t);if(J(e))return{status:`failure`,failure:e};if(e===!1)return{status:`failure`,failure:q(G.aborted,t.to,t.from,`Navigation aborted by guard`)};if(Me(e))return t.to?{status:`redirect`,target:n(e.to,t.to.path),replace:e.replace}:{status:`failure`,failure:q(G.aborted,t.to,t.from,`Redirect is not supported in back navigation guards`)};if(Ne(e))return t.to?{status:`redirect`,target:n(e,t.to.path)}:{status:`failure`,failure:q(G.aborted,t.to,t.from,`Redirect is not supported in back navigation guards`)}}catch(e){return{status:`failure`,failure:q(G.aborted,t.to,t.from,e)}}return{status:`continue`}}function X(e,t,n,r){return new Promise(i=>{let a=!1,o=e=>{a||(a=!0,i(e))};try{let i=e({...t,success:()=>o(),fail:e=>{o(q(K(e),n,r,e))}});i&&typeof i.then==`function`&&i.then(()=>o(),e=>o(q(K(e),n,r,e)))}catch(e){o(q(K(e),n,r,e))}})}async function Pe(e,t){for(let n of e)try{await n(t.to,t.from,t.failure,t)}catch(e){}}async function Fe(e,t,n){for(let r of e)try{await r(t,n)}catch(e){}}function Ie(e){return!e||typeof e!=`object`?!1:typeof e.errMsg==`string`}function Le(e){return e.type===G.unknown||e.cause instanceof Error?!0:e.type===G.aborted&&e.cause!==void 0?!(typeof e.cause==`string`||Ie(e.cause)):!1}function Z(e,t,n,r){return{mode:e,from:t,to:n,failure:r}}function Re(e){let{afterEachHooks:t,errorHandlers:n,nativeRouter:r,rejectOnError:i}=e;async function a(e){if(await Pe(t,{mode:e.mode,to:e.to,from:e.from,nativeRouter:r,failure:e.failure}),e.failure&&Le(e.failure)){var i;await Fe(n,(i=e.failure.cause)==null?e.failure:i,{mode:e.mode,to:e.to,from:e.from,nativeRouter:r,failure:e.failure})}}function o(e){return i&&Le(e)}async function s(e){if(await a(e),e.failure&&o(e.failure))throw e.failure;return e.failure}return{settleNavigationResult:s}}function ze(e,t){return q(G.duplicated,e,t,`Avoided redundant navigation to current location`)}function Be(e,t){return q(G.aborted,e,t,`switchTab does not support query parameters`)}function Q(e,t,n){return q(G.aborted,e,t,`Navigation redirected more than ${n} times`)}function Ve(e,t){return q(G.aborted,e,t,`Hash-only navigation is not supported in mini-program router`)}function He(e){return q(G.aborted,void 0,e,`Forward navigation is not supported in mini-program router`)}function $(e,t){e.redirectedFrom=t.redirectedFrom?H(t.redirectedFrom):Se(t)}async function Ue(e,t,n,r){let i=typeof e==`function`?await e(t,n):e;return Me(i)?{target:r(i.to,t.path),replace:i.replace}:{target:r(i,t.path),replace:!0}}async function We(e){let{mode:t,target:n,from:r,nativeRouter:i,routeResolveCodec:a,namedRouteLookup:o,beforeEachGuards:s,beforeResolveGuards:c,maxRedirects:u,tabBarPathSet:d,resolveWithCodec:f}=e,p=n,m=t,h=0;for(;;){var g;let e=d.has(p.path);if(W(p,a.stringifyQuery)===W(r,a.stringifyQuery)&&p.hash!==r.hash)return Z(m,r,p,Ve(p,r));if(e?p.path===r.path:p.fullPath===r.fullPath)return Z(m,r,p,ze(p,r));if(e&&Ce(p.query))return Z(m,r,p,Be(p,r));let t=await Y(s,{mode:m,to:p,from:r,nativeRouter:i},f);if(t.status===`failure`)return Z(m,r,p,t.failure);if(t.status===`redirect`){let e=t.target,n=t.replace===!0?`replace`:t.replace===!1?`push`:m;if(e.fullPath!==p.fullPath||n!==m){if($(e,p),p=e,m=n,h+=1,h>u)return Z(m,r,p,Q(p,r,u));continue}}let n=ae(p,o),_=(g=n==null?void 0:n.matchedRecords)==null?[]:g,v=!1;for(let e of _){if(e.redirect===void 0)continue;let t;try{t=await Ue(e.redirect,p,r,f)}catch(e){return Z(m,r,p,q(G.aborted,p,r,e))}let n=t.replace===!1?`push`:`replace`,i=t.target;if(i.fullPath!==p.fullPath||n!==m){if($(i,p),p=i,m=n,h+=1,h>u)return Z(m,r,p,Q(p,r,u));v=!0;break}}if(v)continue;let y=!1;for(let e of _){if(e.beforeEnterGuards.length===0)continue;let t=await Y(new Set(e.beforeEnterGuards),{mode:m,to:p,from:r,nativeRouter:i},f);if(t.status===`failure`)return Z(m,r,p,t.failure);if(t.status===`redirect`){let e=t.target,n=t.replace===!0?`replace`:t.replace===!1?`push`:m;if(e.fullPath!==p.fullPath||n!==m){if($(e,p),p=e,m=n,h+=1,h>u)return Z(m,r,p,Q(p,r,u));y=!0;break}}}if(y)continue;let b=await Y(c,{mode:m,to:p,from:r,nativeRouter:i},f);if(b.status===`failure`)return Z(m,r,p,b.failure);if(b.status===`redirect`){let e=b.target,t=b.replace===!0?`replace`:b.replace===!1?`push`:m;if(e.fullPath!==p.fullPath||t!==m){if($(e,p),p=e,m=t,h+=1,h>u)return Z(m,r,p,Q(p,r,u));continue}}if(e){let e=await X(i.switchTab,{url:l(p.path)},p,r);return J(e)?Z(m,r,p,e):Z(m,r,p)}let x=await X(m===`push`?i.navigateTo:i.redirectTo,{url:W(p,a.stringifyQuery)},p,r);return J(x)?Z(m,r,p,x):Z(m,r,p)}}function Ge(e){let{nativeRouter:t,route:n,routeResolveCodec:r,namedRouteLookup:i,beforeEachGuards:a,beforeResolveGuards:o,maxRedirects:s,tabBarPathSet:c,resolveWithCodec:l,settleNavigationResult:u}=e;async function d(e){let d=U(n),f;try{f=l(e,d.path)}catch(e){return u(Z(`push`,d,void 0,q(G.unknown,void 0,d,e)))}return u(await We({mode:`push`,target:f,from:d,nativeRouter:t,routeResolveCodec:r,namedRouteLookup:i,beforeEachGuards:a,beforeResolveGuards:o,maxRedirects:s,tabBarPathSet:c,resolveWithCodec:l}))}async function f(e){let d=U(n),f;try{f=l(e,d.path)}catch(e){return u(Z(`replace`,d,void 0,q(G.unknown,void 0,d,e)))}return u(await We({mode:`replace`,target:f,from:d,nativeRouter:t,routeResolveCodec:r,namedRouteLookup:i,beforeEachGuards:a,beforeResolveGuards:o,maxRedirects:s,tabBarPathSet:c,resolveWithCodec:l}))}async function p(e=1){let r=U(n),i=await Y(a,{mode:`back`,from:r,nativeRouter:t},l);if(i.status===`failure`)return u(Z(`back`,r,void 0,i.failure));if(i.status===`redirect`)return u(Z(`back`,r,void 0,q(G.aborted,void 0,r,`Redirect is not supported in back navigation guards`)));let s=await Y(o,{mode:`back`,from:r,nativeRouter:t},l);if(s.status===`failure`)return u(Z(`back`,r,void 0,s.failure));if(s.status===`redirect`)return u(Z(`back`,r,void 0,q(G.aborted,void 0,r,`Redirect is not supported in back navigation guards`)));let c=await X(t.navigateBack,{delta:e},void 0,r);return u(J(c)?Z(`back`,r,void 0,c):Z(`back`,r))}async function m(e){if(e<0)return p(Math.abs(e));if(e===0)return;let t=U(n);return u(Z(`back`,t,void 0,He(t)))}async function h(){return m(1)}return{push:d,replace:f,back:p,go:m,forward:h}}const Ke={parseQuery:p,stringifyQuery:b};function qe(e,t=``,n=Ke){var r,i,a,o;if(typeof e==`string`){let r=f(e,n);return _(g(r.path,t),r.query,r.hash,void 0,{},n.stringifyQuery)}let s=typeof e.fullPath==`string`?f(e.fullPath,n):void 0;return _(g((r=(i=e.path)==null?s==null?void 0:s.path:i)==null?t:r,t),e.query?v(e.query):(a=s==null?void 0:s.query)==null?{}:a,h((o=e.hash)==null?s==null?void 0:s.hash:o),typeof e.name==`string`?e.name:void 0,e.params?c(e.params):{},n.stringifyQuery)}function Je(e){let t={name:e.name,path:e.path?`/${e.path}`:`/`};return e.meta!==void 0&&(t.meta=R(e.meta)),e.aliasPaths.length===1?t.alias=l(e.aliasPaths[0]):e.aliasPaths.length>1&&(t.alias=e.aliasPaths.map(e=>l(e))),e.beforeEnterGuards.length===1?t.beforeEnter=e.beforeEnterGuards[0]:e.beforeEnterGuards.length>1&&(t.beforeEnter=e.beforeEnterGuards.slice()),e.redirect!==void 0&&(t.redirect=e.redirect),t}function Ye(e){let t=t=>e.recordByName.has(t),n=()=>Array.from(e.recordByName.values(),Je),r=((t,n)=>{let r=typeof t==`string`?n:t;if(!r)throw Error(`Route record is required when adding a child route`);se(r);let i=typeof t==`string`?t:void 0,a=i?e.recordByName.get(i):void 0;if(i&&!a)throw Error(`Parent route "${i}" is not defined in createRouter({ routes | namedRoutes })`);let o=I([r],a==null?void 0:a.path,i,a==null?void 0:a.aliasPaths,void 0,`addRoute`);if(o.length===0)throw Error(`Route name and path are required when adding a named route`);let s=[];for(let t of o){let n=fe(t.route,t.parentName);if(!n)continue;let r=e.recordByName.get(n.name);if(r){let t=j(r.name,e.recordByName);for(let n of t)e.recordByName.delete(n);N(`addRoute() replaced existing route "${n.name}" (${l(r.path)} -> ${l(n.path)}) and removed ${t.size-1} nested route(s)`)}e.recordByName.set(n.name,n),s.push(n)}return e.nameByStaticPath=L(e.recordByName),()=>{let t=!1;for(let n of s)e.recordByName.get(n.name)===n&&(e.recordByName.delete(n.name),t=!0);t&&(e.nameByStaticPath=L(e.recordByName))}});function i(t){let n=j(t,e.recordByName);if(n.size===0)return;let r=!1;for(let t of n)r=e.recordByName.delete(t)||r;r&&(e.nameByStaticPath=L(e.recordByName))}function a(){e.recordByName.clear(),e.nameByStaticPath.clear()}return{hasRoute:t,getRoutes:n,addRoute:r,removeRoute:i,clearRoutes:a}}function Xe(e,t){e.path=t.path,e.fullPath=t.fullPath,e.query=B(t.query),e.hash=t.hash,e.params=V(t.params),t.name===void 0?delete e.name:e.name=t.name,t.meta===void 0?delete e.meta:e.meta=R(t.meta),t.href===void 0?delete e.href:e.href=t.href,t.matched===void 0?delete e.matched:e.matched=z(t.matched),t.redirectedFrom===void 0?delete e.redirectedFrom:e.redirectedFrom=H(t.redirectedFrom)}function Ze(c={}){var l;let u=s();if(!u)throw Error(`useRoute() 必须在 setup() 的同步阶段调用`);let d=u.instance,f=(l=c.resolveRoute)==null?(e=>{var t,n;return(t=(n=De())==null?void 0:n.resolve(e))==null?e:t}):l,p=f(o(void 0,d)),m=e({path:p.path,fullPath:p.fullPath,query:B(p.query),hash:p.hash,params:V(p.params)});Xe(m,p);function h(e){Xe(m,f(o(e,d)))}return n(e=>{h(e)}),r(()=>{h()}),i(()=>{h()}),t(()=>{h()}),a(m)}function Qe(){return m()}function $e(){return y()}function et(e={}){var t,n,r,i,a,o;let s=Qe(),c=new Set,l=new Set,u=new Set,d=new Set,f=(t=e.maxRedirects)==null?10:t,m=(n=e.paramsMode)==null?`loose`:n,h=(r=e.rejectOnError)==null?!0:r,_={parseQuery:(i=e.parseQuery)==null?p:i,stringifyQuery:(a=e.stringifyQuery)==null?b:a},v=Promise.resolve(),y=_e(e);ce(y);let x=ve(y),S=((o=e.tabBarEntries)==null?[]:o).map(e=>g(e,``)).filter(Boolean),C=new Set(S),w=Ye(x),T=be(S,w.getRoutes(),m,f,_,h);function E(e){let t={...e};t.href=t.fullPath;let n=ae(t,x);if(n){let e=n.record;t.name===void 0&&(t.name=e.name);let r=re(n.matchedRecords);r!==void 0&&(t.meta=R(r)),n.params&&Object.keys(t.params).length===0&&(t.params=V(n.params)),t.matched=n.matchedRecords.map((e,t,r)=>xe(e,t===r.length-1?n.matchedPath:void 0))}else t.matched=[];return t}function D(e,t){return E(qe(typeof e==`string`?e:te(e,x,m),t,_))}let O=Ze({resolveRoute:E});function ee(e){return D(e,O.path)}let k=Ge({nativeRouter:s,route:O,routeResolveCodec:_,namedRouteLookup:x,beforeEachGuards:c,beforeResolveGuards:l,maxRedirects:f,tabBarPathSet:C,resolveWithCodec:D,settleNavigationResult:Re({afterEachHooks:u,errorHandlers:d,nativeRouter:s,rejectOnError:h}).settleNavigationResult});function ne(e){return c.add(e),()=>{c.delete(e)}}function A(e){return l.add(e),()=>{l.delete(e)}}function j(e){return u.add(e),()=>{u.delete(e)}}function ie(e){return d.add(e),()=>{d.delete(e)}}let M={nativeRouter:s,options:T,currentRoute:O,install(e){var t;Ee(M);let n=e==null||(t=e.config)==null?void 0:t.globalProperties;n&&(n.$router=M)},resolve:ee,isReady(){return v},push:k.push,replace:k.replace,back:k.back,go:k.go,forward:k.forward,hasRoute:w.hasRoute,getRoutes:w.getRoutes,addRoute:w.addRoute,removeRoute:w.removeRoute,clearRoutes:w.clearRoutes,beforeEach:ne,beforeResolve:A,afterEach:j,onError:ie};return Ee(M),M}function tt(){let e=De();if(e)return e;throw Error(`useRouter() 未找到已创建的 router 实例。请先在 setup() 中调用 createRouter()。`)}export{G as NavigationFailureType,q as createNavigationFailure,et as createRouter,J as isNavigationFailure,p as parseQuery,qe as resolveRouteLocation,b as stringifyQuery,$e as useNativePageRouter,Qe as useNativeRouter,Ze as useRoute,tt as useRouter};
|