wevu 7.1.3 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +20 -6
  2. package/dist/dev/index.d.mts +3 -3
  3. package/dist/dev/index.mjs +3 -2
  4. package/dist/dev/package.mjs +1 -1
  5. package/dist/dev/reactivity/computed.d.mts +4 -0
  6. package/dist/dev/reactivity/computed.mjs +10 -1
  7. package/dist/dev/reactivity/computed.mjs.map +1 -1
  8. package/dist/dev/reactivity/reactive.mjs +27 -20
  9. package/dist/dev/reactivity/reactive.mjs.map +1 -1
  10. package/dist/dev/router/auto-routes.d.mts +8 -0
  11. package/dist/dev/router/auto-routes.mjs +11 -0
  12. package/dist/dev/router/auto-routes.mjs.map +1 -0
  13. package/dist/dev/router/createRouter.d.mts +2 -1
  14. package/dist/dev/router/createRouter.mjs +3 -4
  15. package/dist/dev/router/createRouter.mjs.map +1 -1
  16. package/dist/dev/router/navigationCore.d.mts +3 -2
  17. package/dist/dev/router/navigationCore.mjs +7 -7
  18. package/dist/dev/router/navigationCore.mjs.map +1 -1
  19. package/dist/dev/router/resolve.d.mts +3 -2
  20. package/dist/dev/router/resolve.mjs.map +1 -1
  21. package/dist/dev/router/routeSync.d.mts +1 -0
  22. package/dist/dev/router/types.d.mts +173 -78
  23. package/dist/dev/router/types.mjs.map +1 -1
  24. package/dist/dev/router/useRoute.d.mts +4 -3
  25. package/dist/dev/router/useRoute.mjs.map +1 -1
  26. package/dist/dev/router/useRouter.d.mts +2 -1
  27. package/dist/dev/router/useRouter.mjs.map +1 -1
  28. package/dist/dev/router.d.mts +19 -3
  29. package/dist/dev/routerInternal/location.d.mts +2 -0
  30. package/dist/dev/routerInternal/matching.d.mts +2 -0
  31. package/dist/dev/routerInternal/matching.mjs +1 -1
  32. package/dist/dev/routerInternal/matching.mjs.map +1 -1
  33. package/dist/dev/routerInternal/params.d.mts +2 -0
  34. package/dist/dev/routerInternal/params.mjs.map +1 -1
  35. package/dist/dev/routerInternal/records.d.mts +2 -0
  36. package/dist/dev/routerInternal/recordsWarnings.d.mts +2 -0
  37. package/dist/dev/routerInternal/shared.d.mts +9 -0
  38. package/dist/dev/routerInternal/snapshots.d.mts +2 -0
  39. package/dist/dev/runtime/hooks/base.mjs +5 -5
  40. package/dist/dev/runtime/hooks/base.mjs.map +1 -1
  41. package/dist/dev/runtime/platform.mjs +31 -24
  42. package/dist/dev/runtime/platform.mjs.map +1 -1
  43. package/dist/dev/runtime/register/component/alipay.mjs +72 -0
  44. package/dist/dev/runtime/register/component/alipay.mjs.map +1 -0
  45. package/dist/dev/runtime/register/component/registerNativeDefinition.mjs +5 -2
  46. package/dist/dev/runtime/register/component/registerNativeDefinition.mjs.map +1 -1
  47. package/dist/dev/store/actions.mjs +27 -29
  48. package/dist/dev/store/actions.mjs.map +1 -1
  49. package/dist/dev/store/base.mjs +152 -36
  50. package/dist/dev/store/base.mjs.map +1 -1
  51. package/dist/dev/store/define/create.mjs +92 -0
  52. package/dist/dev/store/define/create.mjs.map +1 -0
  53. package/dist/dev/store/define.d.mts +5 -16
  54. package/dist/dev/store/define.mjs +11 -15
  55. package/dist/dev/store/define.mjs.map +1 -1
  56. package/dist/dev/store/manager.d.mts +13 -5
  57. package/dist/dev/store/manager.mjs +55 -14
  58. package/dist/dev/store/manager.mjs.map +1 -1
  59. package/dist/dev/store/storeToRefs.d.mts +5 -7
  60. package/dist/dev/store/storeToRefs.mjs +10 -18
  61. package/dist/dev/store/storeToRefs.mjs.map +1 -1
  62. package/dist/dev/store/subscriptions.mjs +17 -0
  63. package/dist/dev/store/subscriptions.mjs.map +1 -0
  64. package/dist/dev/store/types.d.mts +85 -59
  65. package/dist/dev/store/types.mjs +11 -0
  66. package/dist/dev/store/types.mjs.map +1 -0
  67. package/dist/dev/store/utils.mjs +1 -37
  68. package/dist/dev/store/utils.mjs.map +1 -1
  69. package/dist/dev/store/view.mjs +56 -0
  70. package/dist/dev/store/view.mjs.map +1 -0
  71. package/dist/dev/store.d.mts +3 -3
  72. package/dist/dev/store.mjs +3 -2
  73. package/dist/dev/vue-demi.d.mts +3 -3
  74. package/dist/dev/vue-demi.mjs +3 -2
  75. package/dist/dev/vue-demi.mjs.map +1 -1
  76. package/dist/index.d.mts +3 -3
  77. package/dist/index.mjs +1 -1
  78. package/dist/package.mjs +1 -1
  79. package/dist/reactivity/computed.d.mts +4 -0
  80. package/dist/reactivity/computed.mjs +1 -1
  81. package/dist/reactivity/reactive.mjs +1 -1
  82. package/dist/router/auto-routes.d.mts +7 -0
  83. package/dist/router/auto-routes.mjs +1 -0
  84. package/dist/router/createRouter.d.mts +2 -1
  85. package/dist/router/createRouter.mjs +1 -1
  86. package/dist/router/navigationCore.d.mts +3 -2
  87. package/dist/router/navigationCore.mjs +1 -1
  88. package/dist/router/resolve.d.mts +3 -2
  89. package/dist/router/routeSync.d.mts +1 -0
  90. package/dist/router/types.d.mts +173 -78
  91. package/dist/router/useRoute.d.mts +4 -3
  92. package/dist/router/useRouter.d.mts +2 -1
  93. package/dist/router.d.mts +18 -3
  94. package/dist/routerInternal/location.d.mts +2 -0
  95. package/dist/routerInternal/matching.d.mts +2 -0
  96. package/dist/routerInternal/matching.mjs +1 -1
  97. package/dist/routerInternal/params.d.mts +2 -0
  98. package/dist/routerInternal/records.d.mts +2 -0
  99. package/dist/routerInternal/recordsWarnings.d.mts +2 -0
  100. package/dist/routerInternal/shared.d.mts +9 -0
  101. package/dist/routerInternal/snapshots.d.mts +2 -0
  102. package/dist/runtime/hooks/base.mjs +1 -1
  103. package/dist/runtime/platform.mjs +1 -1
  104. package/dist/runtime/register/component/alipay.mjs +1 -0
  105. package/dist/runtime/register/component/registerNativeDefinition.mjs +1 -1
  106. package/dist/store/actions.mjs +1 -1
  107. package/dist/store/base.mjs +1 -1
  108. package/dist/store/define/create.mjs +1 -0
  109. package/dist/store/define.d.mts +5 -16
  110. package/dist/store/define.mjs +1 -1
  111. package/dist/store/manager.d.mts +13 -5
  112. package/dist/store/manager.mjs +1 -1
  113. package/dist/store/storeToRefs.d.mts +5 -7
  114. package/dist/store/storeToRefs.mjs +1 -1
  115. package/dist/store/subscriptions.mjs +1 -0
  116. package/dist/store/types.d.mts +85 -59
  117. package/dist/store/types.mjs +1 -0
  118. package/dist/store/utils.mjs +1 -1
  119. package/dist/store/view.mjs +1 -0
  120. package/dist/store.d.mts +3 -3
  121. package/dist/store.mjs +1 -1
  122. package/dist/vue-demi.d.mts +3 -3
  123. package/dist/vue-demi.mjs +1 -1
  124. package/package.json +29 -9
  125. package/dist/dev/store/define/optionsStyle.mjs +0 -117
  126. package/dist/dev/store/define/optionsStyle.mjs.map +0 -1
  127. package/dist/dev/store/define/setupStyle.mjs +0 -137
  128. package/dist/dev/store/define/setupStyle.mjs.map +0 -1
  129. package/dist/dev/store/define/shared.mjs +0 -81
  130. package/dist/dev/store/define/shared.mjs.map +0 -1
  131. package/dist/store/define/optionsStyle.mjs +0 -1
  132. package/dist/store/define/setupStyle.mjs +0 -1
  133. package/dist/store/define/shared.mjs +0 -1
@@ -1 +1 @@
1
- import{track as e,trigger as t}from"./core.mjs";import{addMutationRecorder as n,mutationRecorders as r,removeMutationRecorder as i}from"./reactive/mutation.mjs";import{adoptReactiveRoot as a,bumpAncestorVersions as o,bumpRawVersion as s,getRawVersion as c,rawMultiParentSet as l,rawParentsMap as u,rawPathMap as d,rawRootMap as f,rawVersionMap as p,recordParentLink as m,removeParentLink as h,resolvePathToTarget as g}from"./reactive/patchState.mjs";import{VERSION_KEY as _,getTargetType as v,hasOwn as y,isArrayIndexKey as b,isObject as x,toRaw as S}from"./reactive/shared.mjs";import{rawMap as C,reactiveMap as w}from"./reactive/state.mjs";import{clearPatchIndices as T,prelinkReactiveTree as E,touchReactive as D}from"./reactive/patch.mjs";import{isShallowReactive as O,shallowReactive as k}from"./reactive/shallow.mjs";function A(e){let t=S(e);return c(t)}function j(e,t,n){var i;if(!r.size||typeof t!=`string`||t.startsWith(`__r_`))return;let a=(i=f.get(e))==null?e:i,o=Array.isArray(e)&&(t===`length`||b(t))?`array`:`property`,s=g(a,e);if(!s){let i=/* @__PURE__ */ new Set,s=u.get(e);if(s)for(let[e,t]of s){var c;let n=d.get(e),r=n?n.split(`.`,1)[0]:void 0,o=r||(c=g(a,e))==null?void 0:c[0];for(let e of t){var l;typeof e==`string`&&i.add((l=r==null?o:r)==null?e:l)}}else i.add(t);for(let e of r)e({root:a,kind:o,op:n,path:void 0,fallbackTopKeys:i.size?[...i]:void 0});return}let p=s.findIndex(e=>b(e));if(p!==-1){let e=s.slice(0,p).join(`.`)||void 0;for(let t of r)t({root:a,kind:`array`,op:n,path:e});return}let m=s.length?s.join(`.`):``,h=o===`array`?m||void 0:m?`${m}.${t}`:t;for(let e of r)e({root:a,kind:o,op:n,path:h})}const M={get(t,n,i){if(n===`__r_isReactive`)return!0;if(n===`__r_raw`)return t;let o=Reflect.get(t,n,i);if(e(t,n),x(o)){var s;if(o.__r_skip)return o;let e=(s=o==null?void 0:o.__r_raw)==null?o:s;a(e,t),m(e,t,n);let i=d.get(t);if(r.size&&typeof n==`string`&&i!=null&&!l.has(e)){let t=i?`${i}.${n}`:n;d.set(e,t)}return N(o)}return o},set(e,n,i,c){let u=Array.isArray(e),p=u?e.length:0,g=Reflect.get(e,n,c),v=x(g)?S(g):g,y=x(i)?S(i):i;if(Object.is(v,y))return!0;let C=Reflect.set(e,n,i,c);if(C){let i=x(v)?v:void 0;if(i&&h(i,e,n),x(y)&&!y.__r_skip){let t=y;a(t,e),m(t,e,n);let i=d.get(e);if(r.size&&typeof n==`string`&&i!=null&&!l.has(t)){let e=i?`${i}.${n}`:n;d.set(t,e)}}t(e,n),u&&typeof n==`string`&&b(n)&&Number(n)>=p&&t(e,`length`),t(e,_),s(e),o(e);let c=f.get(e);c&&c!==e&&(t(c,_),s(c)),j(e,n,`set`)}return C},deleteProperty(e,n){let r=y(e,n),i=r?e[n]:void 0,a=Reflect.deleteProperty(e,n);if(r&&a){var c;let r=x(i)?(c=i==null?void 0:i.__r_raw)==null?i:c:void 0;r&&h(r,e,n),t(e,n),t(e,_),s(e),o(e);let a=f.get(e);a&&a!==e&&(t(a,_),s(a)),j(e,n,`delete`)}return a},ownKeys(t){return e(t,Symbol.iterator),e(t,_),Reflect.ownKeys(t)}};function N(e){if(!x(e)||e.__r_isReactive)return e;let t=w.get(e);if(t)return t;if(v(e)===0)return e;let n=new Proxy(e,M);return w.set(e,n),C.set(n,e),p.has(e)||p.set(e,0),f.has(e)||f.set(e,e),n}function P(e){return!!(e&&e.__r_isReactive)}function F(e){return x(e)?N(e):e}function I(e){return x(e)&&Object.defineProperty(e,"__r_skip",{value:!0,configurable:!0,enumerable:!1,writable:!0}),e}function L(e){return x(e)&&`__r_skip`in e}export{n as addMutationRecorder,T as clearPatchIndices,F as convertToReactive,A as getReactiveVersion,x as isObject,L as isRaw,P as isReactive,O as isShallowReactive,I as markRaw,E as prelinkReactiveTree,N as reactive,i as removeMutationRecorder,k as shallowReactive,S as toRaw,D as touchReactive};
1
+ import{batch as e,track as t,trigger as n}from"./core.mjs";import{addMutationRecorder as r,mutationRecorders as i,removeMutationRecorder as a}from"./reactive/mutation.mjs";import{adoptReactiveRoot as o,bumpAncestorVersions as s,bumpRawVersion as c,getRawVersion as l,rawMultiParentSet as u,rawParentsMap as d,rawPathMap as f,rawRootMap as p,rawVersionMap as m,recordParentLink as h,removeParentLink as g,resolvePathToTarget as _}from"./reactive/patchState.mjs";import{VERSION_KEY as v,getTargetType as y,hasOwn as b,isArrayIndexKey as x,isObject as S,toRaw as C}from"./reactive/shared.mjs";import{rawMap as w,reactiveMap as T}from"./reactive/state.mjs";import{clearPatchIndices as E,prelinkReactiveTree as D,touchReactive as O}from"./reactive/patch.mjs";import{isShallowReactive as k,shallowReactive as A}from"./reactive/shallow.mjs";function j(e){let t=C(e);return l(t)}function M(e,t,n){var r;if(!i.size||typeof t!=`string`||t.startsWith(`__r_`))return;let a=(r=p.get(e))==null?e:r,o=Array.isArray(e)&&(t===`length`||x(t))?`array`:`property`,s=_(a,e);if(!s){let r=/* @__PURE__ */ new Set,s=d.get(e);if(s)for(let[e,t]of s){var c;let n=f.get(e),i=n?n.split(`.`,1)[0]:void 0,o=i||(c=_(a,e))==null?void 0:c[0];for(let e of t){var l;typeof e==`string`&&r.add((l=i==null?o:i)==null?e:l)}}else r.add(t);for(let e of i)e({root:a,kind:o,op:n,path:void 0,fallbackTopKeys:r.size?[...r]:void 0});return}let u=s.findIndex(e=>x(e));if(u!==-1){let e=s.slice(0,u).join(`.`)||void 0;for(let t of i)t({root:a,kind:`array`,op:n,path:e});return}let m=s.length?s.join(`.`):``,h=o===`array`?m||void 0:m?`${m}.${t}`:t;for(let e of i)e({root:a,kind:o,op:n,path:h})}const N={get(e,n,r){if(n===`__r_isReactive`)return!0;if(n===`__r_raw`)return e;let a=Reflect.get(e,n,r);if(t(e,n),S(a)){var s;if(a.__r_skip)return a;let t=(s=a==null?void 0:a.__r_raw)==null?a:s;o(t,e),h(t,e,n);let r=f.get(e);if(i.size&&typeof n==`string`&&r!=null&&!u.has(t)){let e=r?`${r}.${n}`:n;f.set(t,e)}return P(a)}return a},set(t,r,a,l){let d=b(t,r),m=Array.isArray(t),_=m?t.length:0,y=Reflect.get(t,r,l),w=S(y)?C(y):y,T=S(a)?C(a):a;if(Object.is(w,T))return!0;let E=Reflect.set(t,r,a,l);if(E){let a=S(w)?w:void 0;if(a&&g(a,t,r),S(T)&&!T.__r_skip){let e=T;o(e,t),h(e,t,r);let n=f.get(t);if(i.size&&typeof r==`string`&&n!=null&&!u.has(e)){let t=n?`${n}.${r}`:r;f.set(e,t)}}e(()=>{n(t,r),m&&typeof r==`string`&&x(r)&&Number(r)>=_&&n(t,`length`),n(t,v),c(t),s(t);let e=p.get(t);e&&e!==t&&(n(e,v),c(e)),d||n(t,Symbol.iterator)}),M(t,r,`set`)}return E},deleteProperty(t,r){let i=b(t,r),a=i?t[r]:void 0,o=Reflect.deleteProperty(t,r);if(i&&o){var l;let i=S(a)?(l=a==null?void 0:a.__r_raw)==null?a:l:void 0;i&&g(i,t,r),e(()=>{n(t,r),n(t,v),c(t),s(t);let e=p.get(t);e&&e!==t&&(n(e,v),c(e)),n(t,Symbol.iterator)}),M(t,r,`delete`)}return o},ownKeys(e){return t(e,Symbol.iterator),t(e,v),Reflect.ownKeys(e)}};function P(e){if(!S(e)||e.__r_isReactive)return e;let t=T.get(e);if(t)return t;if(y(e)===0)return e;let n=new Proxy(e,N);return T.set(e,n),w.set(n,e),m.has(e)||m.set(e,0),p.has(e)||p.set(e,e),n}function F(e){return!!(e&&e.__r_isReactive)}function I(e){return S(e)?P(e):e}function L(e){return S(e)&&Object.defineProperty(e,"__r_skip",{value:!0,configurable:!0,enumerable:!1,writable:!0}),e}function R(e){return S(e)&&`__r_skip`in e}export{r as addMutationRecorder,E as clearPatchIndices,I as convertToReactive,j as getReactiveVersion,S as isObject,R as isRaw,F as isReactive,k as isShallowReactive,L as markRaw,D as prelinkReactiveTree,P as reactive,a as removeMutationRecorder,A as shallowReactive,C as toRaw,O as touchReactive};
@@ -0,0 +1,7 @@
1
+ import { WevuAutoRoute } from "./types.mjs";
2
+ import { WevuNamedRouteMap } from "../router.mjs";
3
+ //#region src/router/auto-routes.d.ts
4
+ export type WevuAutoRoutes<TRouteMap extends object = WevuNamedRouteMap> = readonly WevuAutoRoute<TRouteMap>[];
5
+ export declare const routes: WevuAutoRoutes;
6
+ //#endregion
7
+ export type { WevuAutoRoute };
@@ -0,0 +1 @@
1
+ import{WEVU_AUTO_ROUTES_MODULE_ID as e}from"@weapp-core/constants";function t(){throw Error(`${e} is generated by weapp-vite and is unavailable outside a weapp-vite build.`)}const n=t();export{n as routes};
@@ -1,7 +1,8 @@
1
1
  import { RouterNavigation, UseRouterOptions } from "./types.mjs";
2
+ import { WevuNamedRouteMap } from "../router.mjs";
2
3
  //#region src/router/createRouter.d.ts
3
4
  /**
4
5
  * @description 创建高阶路由导航器(对齐 Vue Router 的 createRouter 心智)
5
6
  */
6
- export declare function createRouter(options?: UseRouterOptions): RouterNavigation;
7
+ export declare function createRouter<TRouteMap extends object = WevuNamedRouteMap>(optionsInput?: UseRouterOptions<NoInfer<TRouteMap>>): RouterNavigation<TRouteMap>;
7
8
  //#endregion
@@ -1 +1 @@
1
- import{getCurrentMiniProgramTabBarPagePaths as e,getMiniProgramGlobalObject as t}from"../runtime/platform.mjs";import{setActiveRouter as n}from"./instance.mjs";import{DEFAULT_INITIAL_NAVIGATION_TIMEOUT as r,registerInitialNavigationRunner as i}from"./initialNavigation.mjs";import{installRouteStateSyncOnNativeRouter as a,notifyRouteStateSync as o}from"./routeSync.mjs";import{resolvePath as ee}from"../routerInternal/path.mjs";import{parseQuery as te,stringifyQuery as ne}from"../routerInternal/query.mjs";import{resolveCurrentRoute as re}from"../routerInternal/location.mjs";import{resolveNamedRouteLocation as s}from"../routerInternal/params.mjs";import{mergeMatchedRouteMeta as ie,resolveMatchedRouteRecord as ae}from"../routerInternal/matching.mjs";import{warnDuplicateRouteEntries as oe}from"../routerInternal/recordsWarnings.mjs";import{createNamedRouteLookup as se,resolveRouteOptionEntries as ce}from"../routerInternal/records.mjs";import{cloneRouteMeta as le,cloneRouteParams as ue,createNativeRouteUrl as de,createRouterOptionsSnapshot as fe,normalizeRouteRecordMatched as pe,snapshotRouteLocation as c}from"../routerInternal/snapshots.mjs";import{NavigationFailureType as me}from"./types.mjs";import{createNavigationFailure as l,executeNavigationMethod as u}from"./navigationCore.mjs";import{createNavigationResultController as d}from"./navigationResult.mjs";import{resolveBackNavigationTarget as f,runBackNavigationGuards as he}from"./backNavigation.mjs";import{navigateWithTarget as ge}from"./navigationTarget.mjs";import{createNavigationApi as _e}from"./navigationApi.mjs";import{resolveRouteLocation as ve}from"./resolve.mjs";import{createRouteRegistry as ye}from"./routeRegistry.mjs";import{createRouteStateController as p,useNativeRouter as m}from"./useRoute.mjs";function h(h={}){var g,_,v,y,b,x,S;let C=m();a(t());let w=/* @__PURE__ */ new Set,T=/* @__PURE__ */ new Set,E=/* @__PURE__ */ new Set,D=/* @__PURE__ */ new Set,O=(g=h.maxRedirects)==null?10:g,k=h.initialNavigationMode===`blocking`?`blocking`:`eager`,A=Number.isFinite(h.initialNavigationTimeout)&&((_=h.initialNavigationTimeout)==null?0:_)>0?Math.max(1,Math.trunc(h.initialNavigationTimeout)):r,j=(v=h.paramsMode)==null?`loose`:v,M=(y=h.rejectOnError)==null||y,N={parseQuery:(b=h.parseQuery)==null?te:b,stringifyQuery:(x=h.stringifyQuery)==null?ne:x},P=Promise.resolve(),F=ce(h);oe(F);let I=se(F),L=((S=h.tabBarEntries)==null?e():S).map(e=>ee(e,``)).filter(Boolean),R=new Set(L),z=ye(I),B=0,V,H,U,be=fe(L,z.getRoutes(),j,O,k,A,N,M);function W(e){let t={...e};t.href=t.fullPath;let n=ae(t,I);if(n){let e=n.record;t.name===void 0&&(t.name=e.name);let r=ie(n.matchedRecords);r!==void 0&&(t.meta=le(r)),n.params&&Object.keys(t.params).length===0&&(t.params=ue(n.params)),t.matched=n.matchedRecords.map((e,t,r)=>{let i=t===r.length-1?n.matchedPath:void 0;return pe(e,i)})}else t.matched=[];return t}function G(e,t){let n=typeof e==`string`?e:s(e,I,j);return W(ve(n,t,N))}let K,q;function xe(e){return e.source===`page`||e.source===`native`&&e.method===`navigateBack`}function J(e,t){if(B>0||!xe(t)||U!==void 0)return;if(H!==void 0){let t=H;if(H=void 0,e.fullPath===t)return}if(e.fullPath===K.fullPath)return;U=e.fullPath;let n=c(K);he({target:e,from:n,nativeRouter:C,beforeEachGuards:w,beforeResolveGuards:T,resolveWithCodec:G}).then(e=>q==null?void 0:q(e)).finally(()=>{U=void 0})}K=p({beforeRouteStateSync:J,resolveRoute:W}).route;function Se(e){return G(e,K.path)}let Y=d({afterEachHooks:E,errorHandlers:D,nativeRouter:C,rejectOnError:M});q=Y.emitNavigationAfterEach;let X=_e({nativeRouter:C,route:K,routeResolveCodec:N,namedRouteLookup:I,beforeEachGuards:w,beforeResolveGuards:T,maxRedirects:O,tabBarPathSet:R,resolveWithCodec:G,settleNavigationResult:Y.settleNavigationResult});async function Z(e,t){let n=K.fullPath;t&&(V=t),B+=1;try{let t=await e();return K.fullPath!==n&&(H=K.fullPath),t}finally{--B,B<=0&&(V=void 0)}}function Q(e){try{return G(e,K.path).fullPath}catch(e){return}}async function Ce(e,t,n=()=>!0){return Z(async()=>{let r=c(K),i=W(re(t,e));if(!i.path)return;if(V===i.fullPath){o({route:i,source:`router`});return}let a=await ge({mode:`push`,target:i,from:r,nativeRouter:C,routeResolveCodec:N,namedRouteLookup:I,beforeEachGuards:w,beforeResolveGuards:T,maxRedirects:O,tabBarPathSet:R,resolveWithCodec:G,executeNative:!1,allowSameLocation:!0});if(n()){if(k===`blocking`&&a.to&&a.to.fullPath!==i.fullPath){let e=a.to,t=R.has(e.path)?C.switchTab:C.redirectTo;return await u(t,{url:de(e,N.stringifyQuery)},e,r)||(o({route:e,source:`router`}),l(me.cancelled,e,r))}return Y.settleNavigationResult(a)}})}function we(e){return w.add(e),()=>{w.delete(e)}}function Te(e){return T.add(e),()=>{T.delete(e)}}function Ee(e){return E.add(e),()=>{E.delete(e)}}function De(e){return D.add(e),()=>{D.delete(e)}}let $={nativeRouter:C,options:be,currentRoute:K,install(e){var t;n($);let r=e==null||(t=e.config)==null?void 0:t.globalProperties;r&&(r.$router=$)},resolve:Se,isReady(){return P},push:e=>Z(()=>X.push(e),Q(e)),replace:e=>Z(()=>X.replace(e),Q(e)),back:e=>{var t;return Z(()=>X.back(e),(t=f(e==null?1:e,K,G))==null?void 0:t.fullPath)},go:e=>{var t;return Z(()=>X.go(e),e<0?(t=f(Math.abs(e),K,G))==null?void 0:t.fullPath:void 0)},forward:()=>Z(()=>X.forward()),hasRoute:z.hasRoute,getRoutes:z.getRoutes,addRoute:z.addRoute,removeRoute:z.removeRoute,clearRoutes:z.clearRoutes,beforeEach:we,beforeResolve:Te,afterEach:Ee,onError:De};return n($),i($,Ce,A,k),$}export{h as createRouter};
1
+ import{getCurrentMiniProgramTabBarPagePaths as e,getMiniProgramGlobalObject as t}from"../runtime/platform.mjs";import{setActiveRouter as n}from"./instance.mjs";import{DEFAULT_INITIAL_NAVIGATION_TIMEOUT as r,registerInitialNavigationRunner as i}from"./initialNavigation.mjs";import{installRouteStateSyncOnNativeRouter as a,notifyRouteStateSync as o}from"./routeSync.mjs";import{resolvePath as ee}from"../routerInternal/path.mjs";import{parseQuery as te,stringifyQuery as ne}from"../routerInternal/query.mjs";import{resolveCurrentRoute as re}from"../routerInternal/location.mjs";import{resolveNamedRouteLocation as s}from"../routerInternal/params.mjs";import{mergeMatchedRouteMeta as ie,resolveMatchedRouteRecord as ae}from"../routerInternal/matching.mjs";import{warnDuplicateRouteEntries as oe}from"../routerInternal/recordsWarnings.mjs";import{createNamedRouteLookup as se,resolveRouteOptionEntries as ce}from"../routerInternal/records.mjs";import{cloneRouteMeta as le,cloneRouteParams as ue,createNativeRouteUrl as de,createRouterOptionsSnapshot as fe,normalizeRouteRecordMatched as pe,snapshotRouteLocation as c}from"../routerInternal/snapshots.mjs";import{NavigationFailureType as l}from"./types.mjs";import{createNavigationFailure as u,executeNavigationMethod as d}from"./navigationCore.mjs";import{createNavigationResultController as f}from"./navigationResult.mjs";import{resolveBackNavigationTarget as p,runBackNavigationGuards as me}from"./backNavigation.mjs";import{navigateWithTarget as he}from"./navigationTarget.mjs";import{createNavigationApi as ge}from"./navigationApi.mjs";import{resolveRouteLocation as _e}from"./resolve.mjs";import{createRouteRegistry as ve}from"./routeRegistry.mjs";import{createRouteStateController as ye,useNativeRouter as m}from"./useRoute.mjs";function h(h={}){var g,_,v,y,b,x,S;let C=h,w=m();a(t());let T=/* @__PURE__ */ new Set,E=/* @__PURE__ */ new Set,D=/* @__PURE__ */ new Set,O=/* @__PURE__ */ new Set,k=(g=C.maxRedirects)==null?10:g,A=C.initialNavigationMode===`blocking`?`blocking`:`eager`,j=Number.isFinite(C.initialNavigationTimeout)&&((_=C.initialNavigationTimeout)==null?0:_)>0?Math.max(1,Math.trunc(C.initialNavigationTimeout)):r,M=(v=C.paramsMode)==null?`loose`:v,N=(y=C.rejectOnError)==null||y,P={parseQuery:(b=C.parseQuery)==null?te:b,stringifyQuery:(x=C.stringifyQuery)==null?ne:x},be=Promise.resolve(),F=ce(C);oe(F);let I=se(F),L=((S=C.tabBarEntries)==null?e():S).map(e=>ee(e,``)).filter(Boolean),R=new Set(L),z=ve(I),B=0,V,H,U,xe=fe(L,z.getRoutes(),M,k,A,j,P,N);function W(e){let t={...e};t.href=t.fullPath;let n=ae(t,I);if(n){let e=n.record;t.name===void 0&&(t.name=e.name);let r=ie(n.matchedRecords);r!==void 0&&(t.meta=le(r)),n.params&&Object.keys(t.params).length===0&&(t.params=ue(n.params)),t.matched=n.matchedRecords.map((e,t,r)=>{let i=t===r.length-1?n.matchedPath:void 0;return pe(e,i)})}else t.matched=[];return t}function G(e,t){let n=typeof e==`string`?e:s(e,I,M);return W(_e(n,t,P))}let K,q;function J(e){return e.source===`page`||e.source===`native`&&e.method===`navigateBack`}function Se(e,t){if(B>0||!J(t)||U!==void 0)return;if(H!==void 0){let t=H;if(H=void 0,e.fullPath===t)return}if(e.fullPath===K.fullPath)return;U=e.fullPath;let n=c(K);me({target:e,from:n,nativeRouter:w,beforeEachGuards:T,beforeResolveGuards:E,resolveWithCodec:G}).then(e=>q==null?void 0:q(e)).finally(()=>{U=void 0})}K=ye({beforeRouteStateSync:Se,resolveRoute:W}).route;let Ce=e=>G(e,K.path),Y=f({afterEachHooks:D,errorHandlers:O,nativeRouter:w,rejectOnError:N});q=Y.emitNavigationAfterEach;let X=ge({nativeRouter:w,route:K,routeResolveCodec:P,namedRouteLookup:I,beforeEachGuards:T,beforeResolveGuards:E,maxRedirects:k,tabBarPathSet:R,resolveWithCodec:G,settleNavigationResult:Y.settleNavigationResult});async function Z(e,t){let n=K.fullPath;t&&(V=t),B+=1;try{let t=await e();return K.fullPath!==n&&(H=K.fullPath),t}finally{--B,B<=0&&(V=void 0)}}function Q(e){try{return G(e,K.path).fullPath}catch(e){return}}async function we(e,t,n=()=>!0){return Z(async()=>{let r=c(K),i=W(re(t,e));if(!i.path)return;if(V===i.fullPath){o({route:i,source:`router`});return}let a=await he({mode:`push`,target:i,from:r,nativeRouter:w,routeResolveCodec:P,namedRouteLookup:I,beforeEachGuards:T,beforeResolveGuards:E,maxRedirects:k,tabBarPathSet:R,resolveWithCodec:G,executeNative:!1,allowSameLocation:!0});if(n()){if(A===`blocking`&&a.to&&a.to.fullPath!==i.fullPath){let e=a.to,t=R.has(e.path)?w.switchTab:w.redirectTo;return await d(t,{url:de(e,P.stringifyQuery)},e,r)||(o({route:e,source:`router`}),u(l.cancelled,e,r))}return Y.settleNavigationResult(a)}})}function Te(e){return T.add(e),()=>{T.delete(e)}}function Ee(e){return E.add(e),()=>{E.delete(e)}}function De(e){return D.add(e),()=>{D.delete(e)}}function Oe(e){return O.add(e),()=>{O.delete(e)}}let $={nativeRouter:w,options:xe,currentRoute:K,install(e){var t;n($);let r=e==null||(t=e.config)==null?void 0:t.globalProperties;r&&(r.$router=$)},resolve:Ce,isReady(){return be},push:e=>Z(()=>X.push(e),Q(e)),replace:e=>Z(()=>X.replace(e),Q(e)),back:e=>{var t;return Z(()=>X.back(e),(t=p(e==null?1:e,K,G))==null?void 0:t.fullPath)},go:e=>{var t;return Z(()=>X.go(e),e<0?(t=p(Math.abs(e),K,G))==null?void 0:t.fullPath:void 0)},forward:()=>Z(()=>X.forward()),hasRoute:z.hasRoute,getRoutes:z.getRoutes,addRoute:z.addRoute,removeRoute:z.removeRoute,clearRoutes:z.clearRoutes,beforeEach:Te,beforeResolve:Ee,afterEach:De,onError:Oe};return n($),i($,we,j,A),$}export{h as createRouter};
@@ -1,5 +1,6 @@
1
1
  import { NavigationFailure, NavigationFailureTypeValue, RouteLocationNormalizedLoaded } from "./types.mjs";
2
+ import { WevuNamedRouteMap } from "../router.mjs";
2
3
  //#region src/router/navigationCore.d.ts
3
- export declare function createNavigationFailure(type: NavigationFailureTypeValue, to?: RouteLocationNormalizedLoaded, from?: RouteLocationNormalizedLoaded, cause?: unknown): NavigationFailure;
4
- export declare function isNavigationFailure(error: unknown, type?: NavigationFailureTypeValue): error is NavigationFailure;
4
+ export declare function createNavigationFailure<TRouteMap extends object = WevuNamedRouteMap>(type: NavigationFailureTypeValue, to?: RouteLocationNormalizedLoaded<NoInfer<TRouteMap>>, from?: RouteLocationNormalizedLoaded<NoInfer<TRouteMap>>, cause?: unknown): NavigationFailure<TRouteMap>;
5
+ export declare function isNavigationFailure<TRouteMap extends object = WevuNamedRouteMap>(error: unknown, type?: NavigationFailureTypeValue): error is NavigationFailure<TRouteMap>;
5
6
  //#endregion
@@ -1 +1 @@
1
- import{NavigationFailureType as e}from"./types.mjs";const t=/already|same|duplicat|重复/,n=/cancel|取消/,r=/abort|interrupt|中断/;function i(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 a(a){let o=i(a).toLowerCase();return t.test(o)?e.duplicated:n.test(o)?e.cancelled:r.test(o)?e.aborted:e.unknown}function o(e,t,n,r){let a=i(r)||`Navigation failed`,o=Error(a);return o.__wevuNavigationFailure=!0,o.type=e,o.to=t,o.from=n,o.cause=r,o}function s(e,t){if(!e||typeof e!=`object`)return!1;let n=e;return n.__wevuNavigationFailure===!0?t===void 0||n.type===t:!1}function c(e){return!e||typeof e!=`object`?!1:`to`in e}function l(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 u(t,n,r){for(let i of t)try{let t=await i(n.to,n.from,n);if(s(t))return{status:`failure`,failure:t};if(t===!1)return{status:`failure`,failure:o(e.aborted,n.to,n.from,`Navigation aborted by guard`)};if(c(t))return n.to?{status:`redirect`,target:r(t.to,n.to.path),replace:t.replace}:{status:`failure`,failure:o(e.aborted,n.to,n.from,`Redirect is not supported in back navigation guards`)};if(l(t))return n.to?{status:`redirect`,target:r(t,n.to.path)}:{status:`failure`,failure:o(e.aborted,n.to,n.from,`Redirect is not supported in back navigation guards`)}}catch(t){return{status:`failure`,failure:o(e.aborted,n.to,n.from,t)}}return{status:`continue`}}function d(e,t,n,r){return new Promise(i=>{let s=!1,c=e=>{s||(s=!0,i(e))};try{let i=e({...t,success:()=>c(),fail:e=>{c(o(a(e),n,r,e))}});i&&typeof i.then==`function`&&i.then(()=>c(),e=>c(o(a(e),n,r,e)))}catch(e){c(o(a(e),n,r,e))}})}async function f(e,t){for(let n of e)try{await n(t.to,t.from,t.failure,t)}catch(e){}}async function p(e,t,n){for(let r of e)try{await r(t,n)}catch(e){}}function m(e){return!e||typeof e!=`object`?!1:typeof e.errMsg==`string`}function h(t){return t.type===e.unknown||t.cause instanceof Error||t.type===e.aborted&&t.cause!==void 0&&!(typeof t.cause==`string`||m(t.cause))}export{o as createNavigationFailure,d as executeNavigationMethod,s as isNavigationFailure,c as isNavigationRedirectCandidate,f as runAfterEachHooks,p as runNavigationErrorHooks,u as runNavigationGuards,h as shouldEmitNavigationError};
1
+ import{NavigationFailureType as e}from"./types.mjs";const t=/already|same|duplicat|重复/,n=/cancel|取消/,r=/abort|interrupt|中断/;function i(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 a(a){let o=i(a).toLowerCase();return t.test(o)?e.duplicated:n.test(o)?e.cancelled:r.test(o)?e.aborted:e.unknown}function o(e,t,n,r){let a=i(r)||`Navigation failed`;return Object.assign(Error(a),{__wevuNavigationFailure:!0,type:e,to:t,from:n,cause:r})}function s(e,t){if(!e||typeof e!=`object`)return!1;let n=e;return n.__wevuNavigationFailure===!0?t===void 0||n.type===t:!1}function c(e){return!e||typeof e!=`object`?!1:`to`in e}function l(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 u(t,n,r){for(let i of t)try{let t=await i(n.to,n.from,n);if(s(t))return{status:`failure`,failure:t};if(t===!1)return{status:`failure`,failure:o(e.aborted,n.to,n.from,`Navigation aborted by guard`)};if(c(t))return n.to?{status:`redirect`,target:r(t.to,n.to.path),replace:t.replace}:{status:`failure`,failure:o(e.aborted,n.to,n.from,`Redirect is not supported in back navigation guards`)};if(l(t))return n.to?{status:`redirect`,target:r(t,n.to.path)}:{status:`failure`,failure:o(e.aborted,n.to,n.from,`Redirect is not supported in back navigation guards`)}}catch(t){return{status:`failure`,failure:o(e.aborted,n.to,n.from,t)}}return{status:`continue`}}function d(e,t,n,r){return new Promise(i=>{let s=!1,c=e=>{s||(s=!0,i(e))};try{let i=e({...t,success:()=>c(),fail:e=>{c(o(a(e),n,r,e))}});i&&typeof i.then==`function`&&i.then(()=>c(),e=>c(o(a(e),n,r,e)))}catch(e){c(o(a(e),n,r,e))}})}async function f(e,t){for(let n of e)try{await n(t.to,t.from,t.failure,t)}catch(e){}}async function p(e,t,n){for(let r of e)try{await r(t,n)}catch(e){}}function m(e){return!e||typeof e!=`object`?!1:typeof e.errMsg==`string`}function h(t){return t.type===e.unknown||t.cause instanceof Error||t.type===e.aborted&&t.cause!==void 0&&!(typeof t.cause==`string`||m(t.cause))}export{o as createNavigationFailure,d as executeNavigationMethod,s as isNavigationFailure,c as isNavigationRedirectCandidate,f as runAfterEachHooks,p as runNavigationErrorHooks,u as runNavigationGuards,h as shouldEmitNavigationError};
@@ -1,5 +1,6 @@
1
1
  import { RouteResolveCodec } from "../routerInternal/types.mjs";
2
- import { RouteLocationNormalizedLoaded, RouteLocationRaw } from "./types.mjs";
2
+ import "../routerInternal/shared.mjs";
3
+ import { RouteLocationNormalizedLoaded, RouteLocationRaw, WevuBroadRouteMap } from "./types.mjs";
3
4
  //#region src/router/resolve.d.ts
4
- export declare function resolveRouteLocation(to: RouteLocationRaw, currentPath?: string, codec?: RouteResolveCodec): RouteLocationNormalizedLoaded;
5
+ export declare function resolveRouteLocation(to: RouteLocationRaw<WevuBroadRouteMap>, currentPath?: string, codec?: RouteResolveCodec): RouteLocationNormalizedLoaded<WevuBroadRouteMap>;
5
6
  //#endregion
@@ -1 +1,2 @@
1
+ import "../routerInternal/shared.mjs";
1
2
  import "./types.mjs";
@@ -1,5 +1,6 @@
1
1
  import { SetupContextRouter, TypedRouterTabBarUrl } from "../runtime/types/props/router.mjs";
2
2
  import "../runtime/types/props.mjs";
3
+ import { WevuNamedRouteMap } from "../router.mjs";
3
4
  //#region src/router/types.d.ts
4
5
  export type LocationQueryValue = string | null;
5
6
  export type LocationQueryValueRaw = LocationQueryValue | number | boolean | undefined;
@@ -13,40 +14,94 @@ export type RouteParamsMode = 'loose' | 'strict';
13
14
  export type RouteQueryParser = (search: string) => LocationQueryRaw | LocationQuery;
14
15
  export type RouteQueryStringifier = (query: LocationQueryRaw | LocationQuery) => string;
15
16
  export type RouteMeta = Record<string, unknown>;
16
- export interface NamedRouteRecord {
17
- name: string;
18
- path: string;
17
+ export interface WevuNamedRouteDefinition {
18
+ readonly path: string;
19
+ readonly meta: RouteMeta;
19
20
  }
20
- export interface RouteRecordInput {
21
- name?: string;
22
- path: string;
23
- meta?: RouteMeta;
24
- alias?: string | readonly string[];
25
- children?: readonly RouteRecordInput[];
26
- beforeEnter?: NavigationGuard | readonly NavigationGuard[];
27
- redirect?: RouteRecordRedirect;
21
+ /**
22
+ * 显式选择不收窄名称和元信息的兼容路由模式。
23
+ */
24
+ export type WevuBroadRouteMap = Record<string, WevuNamedRouteDefinition>;
25
+ type DeclaredRouteName<TRouteMap extends object> = Extract<keyof TRouteMap, string>;
26
+ type IsBroadRouteMap<TRouteMap extends object> = [DeclaredRouteName<TRouteMap>] extends [never] ? true : string extends DeclaredRouteName<TRouteMap> ? true : false;
27
+ export type WevuRouteName<TRouteMap extends object = WevuNamedRouteMap> = IsBroadRouteMap<TRouteMap> extends true ? string : DeclaredRouteName<TRouteMap>;
28
+ export type WevuNamedRoutePath<TRouteMap extends object, TName extends WevuRouteName<TRouteMap>> = IsBroadRouteMap<TRouteMap> extends true ? string : TName extends keyof TRouteMap ? TRouteMap[TName] extends {
29
+ readonly path: infer TPath extends string;
30
+ } ? TPath : never : never;
31
+ export type WevuNamedRouteMeta<TRouteMap extends object, TName extends WevuRouteName<TRouteMap>> = IsBroadRouteMap<TRouteMap> extends true ? RouteMeta : TName extends keyof TRouteMap ? TRouteMap[TName] extends {
32
+ readonly meta: infer TMeta extends RouteMeta;
33
+ } ? TMeta : never : never;
34
+ type StrictRouteRecordMeta<TRouteMap extends object, TName extends WevuRouteName<TRouteMap>> = keyof WevuNamedRouteMeta<TRouteMap, TName> extends never ? Record<string, never> : WevuNamedRouteMeta<TRouteMap, TName>;
35
+ interface RouteLocationRawCommon {
36
+ query?: LocationQueryRaw;
37
+ hash?: string;
38
+ params?: RouteParamsRaw;
28
39
  }
29
- export type NamedRoutes = Readonly<Record<string, string>> | readonly RouteRecordRaw[];
30
- export type RouteLocationRaw = string | {
40
+ export type RouteLocationNamedRaw<TRouteMap extends object = WevuNamedRouteMap, TName extends WevuRouteName<TRouteMap> = WevuRouteName<TRouteMap>> = RouteLocationRawCommon & {
41
+ name: TName;
42
+ path?: never;
43
+ fullPath?: never;
44
+ };
45
+ type RouteLocationPathRaw = RouteLocationRawCommon & {
46
+ name?: never;
47
+ path?: string;
48
+ fullPath?: string;
49
+ };
50
+ type BroadRouteLocationRaw = string | RouteLocationRawCommon & {
31
51
  path?: string;
32
52
  fullPath?: string;
33
- query?: LocationQueryRaw;
34
- hash?: string;
35
53
  name?: string;
36
- params?: RouteParamsRaw;
37
54
  };
38
- export interface RouteLocationNormalizedLoaded {
55
+ export type RouteLocationRaw<TRouteMap extends object = WevuNamedRouteMap> = IsBroadRouteMap<TRouteMap> extends true ? BroadRouteLocationRaw : string | RouteLocationPathRaw | { [TName in WevuRouteName<TRouteMap>]: RouteLocationNamedRaw<TRouteMap, TName>; }[WevuRouteName<TRouteMap>];
56
+ interface RouteLocationNormalizedBase<TRouteMap extends object> {
39
57
  path: string;
40
58
  fullPath: string;
41
59
  query: LocationQuery;
42
60
  hash: string;
61
+ href?: string;
62
+ matched?: readonly RouteRecordMatched<TRouteMap>[];
63
+ redirectedFrom?: RouteLocationRedirectedFrom<TRouteMap>;
64
+ params: RouteParams;
65
+ }
66
+ type RouteLocationNormalizedUnnamed<TRouteMap extends object> = RouteLocationNormalizedBase<TRouteMap> & {
67
+ name?: undefined;
68
+ meta?: RouteMeta;
69
+ };
70
+ type BroadRouteLocationNormalizedLoaded<TRouteMap extends object> = RouteLocationNormalizedBase<TRouteMap> & {
43
71
  name?: string;
44
72
  meta?: RouteMeta;
73
+ };
74
+ export type RouteLocationNormalizedByName<TRouteMap extends object, TName extends WevuRouteName<TRouteMap>> = TName extends WevuRouteName<TRouteMap> ? IsBroadRouteMap<TRouteMap> extends true ? (RouteLocationNormalizedBase<TRouteMap> & {
75
+ name: TName;
76
+ meta?: RouteMeta;
77
+ }) : (RouteLocationNormalizedBase<TRouteMap> & {
78
+ name: TName;
79
+ meta: WevuNamedRouteMeta<TRouteMap, TName>;
80
+ }) : never;
81
+ export type RouteLocationNormalizedLoaded<TRouteMap extends object = WevuNamedRouteMap> = IsBroadRouteMap<TRouteMap> extends true ? BroadRouteLocationNormalizedLoaded<WevuBroadRouteMap> : RouteLocationNormalizedUnnamed<TRouteMap> | { [TName in WevuRouteName<TRouteMap>]: RouteLocationNormalizedByName<TRouteMap, TName>; }[WevuRouteName<TRouteMap>];
82
+ interface RouteLocationRedirectedFromBase<TRouteMap extends object> {
83
+ path: string;
84
+ fullPath: string;
85
+ query: LocationQuery;
86
+ hash: string;
45
87
  href?: string;
46
- matched?: readonly RouteRecordMatched[];
47
- redirectedFrom?: RouteLocationRedirectedFrom;
88
+ matched?: readonly RouteRecordMatched<TRouteMap>[];
48
89
  params: RouteParams;
49
90
  }
91
+ type RouteLocationRedirectedFromByName<TRouteMap extends object, TName extends WevuRouteName<TRouteMap>> = IsBroadRouteMap<TRouteMap> extends true ? (RouteLocationRedirectedFromBase<TRouteMap> & {
92
+ name: TName;
93
+ meta?: RouteMeta;
94
+ }) : (RouteLocationRedirectedFromBase<TRouteMap> & {
95
+ name: TName;
96
+ meta: WevuNamedRouteMeta<TRouteMap, TName>;
97
+ });
98
+ export type RouteLocationRedirectedFrom<TRouteMap extends object = WevuNamedRouteMap> = IsBroadRouteMap<TRouteMap> extends true ? (RouteLocationRedirectedFromBase<WevuBroadRouteMap> & {
99
+ name?: string;
100
+ meta?: RouteMeta;
101
+ }) : (RouteLocationRedirectedFromBase<TRouteMap> & {
102
+ name?: undefined;
103
+ meta?: RouteMeta;
104
+ } | { [TName in WevuRouteName<TRouteMap>]: RouteLocationRedirectedFromByName<TRouteMap, TName>; }[WevuRouteName<TRouteMap>]);
50
105
  export declare const NavigationFailureType: {
51
106
  readonly unknown: 1;
52
107
  readonly aborted: 4;
@@ -54,74 +109,101 @@ export declare const NavigationFailureType: {
54
109
  readonly duplicated: 16;
55
110
  };
56
111
  export type NavigationFailureTypeValue = (typeof NavigationFailureType)[keyof typeof NavigationFailureType];
57
- export interface NavigationFailure extends Error {
112
+ export interface NavigationFailure<TRouteMap extends object = WevuNamedRouteMap> extends Error {
58
113
  readonly __wevuNavigationFailure: true;
59
114
  readonly type: NavigationFailureTypeValue;
60
- readonly to?: RouteLocationNormalizedLoaded;
61
- readonly from?: RouteLocationNormalizedLoaded;
115
+ readonly to?: RouteLocationNormalizedLoaded<TRouteMap>;
116
+ readonly from?: RouteLocationNormalizedLoaded<TRouteMap>;
62
117
  readonly cause?: unknown;
63
118
  }
64
119
  export type NavigationMode = 'push' | 'replace' | 'back';
65
120
  export type InitialNavigationMode = 'eager' | 'blocking';
66
- export interface NavigationRedirect {
67
- to: RouteLocationRaw;
121
+ export interface NavigationRedirect<TRouteMap extends object = WevuNamedRouteMap> {
122
+ to: RouteLocationRaw<TRouteMap>;
68
123
  replace?: boolean;
69
124
  }
70
- export type RouteRecordRedirect = RouteLocationRaw | NavigationRedirect | ((to: RouteLocationNormalizedLoaded, from: RouteLocationNormalizedLoaded) => RouteLocationRaw | NavigationRedirect | Promise<RouteLocationRaw | NavigationRedirect>);
71
- export interface RouteRecordRaw extends Omit<RouteRecordInput, 'name' | 'children'>, NamedRouteRecord {
72
- children?: readonly RouteRecordRaw[];
125
+ export type RouteRecordRedirect<TRouteMap extends object = WevuNamedRouteMap> = RouteLocationRaw<TRouteMap> | NavigationRedirect<TRouteMap> | ((to: RouteLocationNormalizedLoaded<TRouteMap>, from: RouteLocationNormalizedLoaded<TRouteMap>) => RouteLocationRaw<TRouteMap> | NavigationRedirect<TRouteMap> | Promise<RouteLocationRaw<TRouteMap> | NavigationRedirect<TRouteMap>>);
126
+ interface RouteRecordCommon<TRouteMap extends object> {
127
+ alias?: string | readonly string[];
128
+ beforeEnter?: NavigationGuard<TRouteMap> | readonly NavigationGuard<TRouteMap>[];
129
+ redirect?: RouteRecordRedirect<TRouteMap>;
73
130
  }
74
- export interface RouteRecordMatched {
131
+ type BroadRouteRecordInput<TRouteMap extends object> = RouteRecordCommon<TRouteMap> & {
132
+ name?: string;
133
+ path: string;
134
+ meta?: RouteMeta;
135
+ children?: readonly RouteRecordInput<TRouteMap>[];
136
+ };
137
+ type StrictRouteRecordInputByName<TRouteMap extends object, TName extends WevuRouteName<TRouteMap>> = RouteRecordCommon<TRouteMap> & {
138
+ name: TName;
139
+ path: WevuNamedRoutePath<TRouteMap, TName>;
140
+ meta: StrictRouteRecordMeta<TRouteMap, TName>;
141
+ children?: readonly RouteRecordInput<TRouteMap>[];
142
+ };
143
+ export type RouteRecordInput<TRouteMap extends object = WevuNamedRouteMap> = IsBroadRouteMap<TRouteMap> extends true ? BroadRouteRecordInput<TRouteMap> : { [TName in WevuRouteName<TRouteMap>]: StrictRouteRecordInputByName<TRouteMap, TName>; }[WevuRouteName<TRouteMap>];
144
+ type BroadRouteRecordRaw<TRouteMap extends object> = RouteRecordCommon<TRouteMap> & {
75
145
  name: string;
76
146
  path: string;
77
- aliasPath?: string;
78
147
  meta?: RouteMeta;
79
- }
80
- export interface RouteLocationRedirectedFrom {
148
+ children?: readonly RouteRecordRaw<TRouteMap>[];
149
+ };
150
+ type StrictRouteRecordRawByName<TRouteMap extends object, TName extends WevuRouteName<TRouteMap>> = RouteRecordCommon<TRouteMap> & {
151
+ name: TName;
152
+ path: WevuNamedRoutePath<TRouteMap, TName>;
153
+ meta: StrictRouteRecordMeta<TRouteMap, TName>;
154
+ children?: readonly RouteRecordRaw<TRouteMap>[];
155
+ };
156
+ export type RouteRecordRaw<TRouteMap extends object = WevuNamedRouteMap> = IsBroadRouteMap<TRouteMap> extends true ? BroadRouteRecordRaw<TRouteMap> : { [TName in WevuRouteName<TRouteMap>]: StrictRouteRecordRawByName<TRouteMap, TName>; }[WevuRouteName<TRouteMap>];
157
+ export type NamedRouteRecord<TRouteMap extends object = WevuNamedRouteMap> = RouteRecordRaw<TRouteMap> extends (infer TRoute) ? TRoute extends {
158
+ name: string;
81
159
  path: string;
82
- fullPath: string;
83
- query: LocationQuery;
84
- hash: string;
85
- name?: string;
160
+ } ? Pick<TRoute, 'name' | 'path'> : never : never;
161
+ export type NamedRoutes<TRouteMap extends object = WevuNamedRouteMap> = IsBroadRouteMap<TRouteMap> extends true ? Readonly<Record<string, string>> | readonly RouteRecordRaw<TRouteMap>[] : readonly RouteRecordRaw<TRouteMap>[];
162
+ export type RouteRecordMatched<TRouteMap extends object = WevuNamedRouteMap> = IsBroadRouteMap<TRouteMap> extends true ? {
163
+ name: string;
164
+ path: string;
165
+ aliasPath?: string;
86
166
  meta?: RouteMeta;
87
- href?: string;
88
- matched?: readonly RouteRecordMatched[];
89
- params: RouteParams;
90
- }
91
- export type NavigationGuardResult = void | boolean | NavigationFailure | RouteLocationRaw | NavigationRedirect;
92
- export type NavigationGuard = (to: RouteLocationNormalizedLoaded | undefined, from: RouteLocationNormalizedLoaded, context?: NavigationGuardContext) => NavigationGuardResult | Promise<NavigationGuardResult>;
93
- export type NavigationAfterEach = (to: RouteLocationNormalizedLoaded | undefined, from: RouteLocationNormalizedLoaded, failure?: NavigationFailure, context?: NavigationAfterEachContext) => void | Promise<void>;
94
- export interface NavigationGuardContext {
167
+ } : { [TName in WevuRouteName<TRouteMap>]: {
168
+ name: TName;
169
+ path: string;
170
+ aliasPath?: string;
171
+ meta: WevuNamedRouteMeta<TRouteMap, TName>;
172
+ }; }[WevuRouteName<TRouteMap>];
173
+ export type NavigationGuardResult<TRouteMap extends object = WevuNamedRouteMap> = void | boolean | NavigationFailure<TRouteMap> | RouteLocationRaw<TRouteMap> | NavigationRedirect<TRouteMap>;
174
+ export type NavigationGuard<TRouteMap extends object = WevuNamedRouteMap> = (to: RouteLocationNormalizedLoaded<TRouteMap> | undefined, from: RouteLocationNormalizedLoaded<TRouteMap>, context?: NavigationGuardContext<TRouteMap>) => NavigationGuardResult<TRouteMap> | Promise<NavigationGuardResult<TRouteMap>>;
175
+ export type NavigationAfterEach<TRouteMap extends object = WevuNamedRouteMap> = (to: RouteLocationNormalizedLoaded<TRouteMap> | undefined, from: RouteLocationNormalizedLoaded<TRouteMap>, failure?: NavigationFailure<TRouteMap>, context?: NavigationAfterEachContext<TRouteMap>) => void | Promise<void>;
176
+ export interface NavigationGuardContext<TRouteMap extends object = WevuNamedRouteMap> {
95
177
  readonly mode: NavigationMode;
96
- readonly to?: RouteLocationNormalizedLoaded;
97
- readonly from: RouteLocationNormalizedLoaded;
178
+ readonly to?: RouteLocationNormalizedLoaded<TRouteMap>;
179
+ readonly from: RouteLocationNormalizedLoaded<TRouteMap>;
98
180
  readonly nativeRouter: SetupContextRouter;
99
181
  }
100
- export interface NavigationAfterEachContext {
182
+ export interface NavigationAfterEachContext<TRouteMap extends object = WevuNamedRouteMap> {
101
183
  readonly mode: NavigationMode;
102
- readonly to?: RouteLocationNormalizedLoaded;
103
- readonly from: RouteLocationNormalizedLoaded;
184
+ readonly to?: RouteLocationNormalizedLoaded<TRouteMap>;
185
+ readonly from: RouteLocationNormalizedLoaded<TRouteMap>;
104
186
  readonly nativeRouter: SetupContextRouter;
105
- readonly failure?: NavigationFailure;
187
+ readonly failure?: NavigationFailure<TRouteMap>;
106
188
  }
107
- export interface NavigationErrorContext {
189
+ export interface NavigationErrorContext<TRouteMap extends object = WevuNamedRouteMap> {
108
190
  readonly mode: NavigationMode;
109
- readonly to?: RouteLocationNormalizedLoaded;
110
- readonly from: RouteLocationNormalizedLoaded;
191
+ readonly to?: RouteLocationNormalizedLoaded<TRouteMap>;
192
+ readonly from: RouteLocationNormalizedLoaded<TRouteMap>;
111
193
  readonly nativeRouter: SetupContextRouter;
112
- readonly failure: NavigationFailure;
194
+ readonly failure: NavigationFailure<TRouteMap>;
113
195
  }
114
- export type NavigationErrorHandler = (error: unknown, context: NavigationErrorContext) => void | Promise<void>;
115
- export interface UseRouterOptions {
196
+ export type NavigationErrorHandler<TRouteMap extends object = WevuNamedRouteMap> = (error: unknown, context: NavigationErrorContext<TRouteMap>) => void | Promise<void>;
197
+ export interface UseRouterOptions<TRouteMap extends object = WevuNamedRouteMap> {
116
198
  tabBarEntries?: readonly (TypedRouterTabBarUrl | string)[];
117
199
  /**
118
200
  * Vue Router 对齐入口:推荐使用 `routes`
119
201
  */
120
- routes?: readonly RouteRecordInput[];
202
+ routes?: readonly RouteRecordInput<TRouteMap>[];
121
203
  /**
122
204
  * 兼容入口:支持对象 map 或路由记录数组
123
205
  */
124
- namedRoutes?: NamedRoutes;
206
+ namedRoutes?: NamedRoutes<TRouteMap>;
125
207
  paramsMode?: RouteParamsMode;
126
208
  maxRedirects?: number;
127
209
  /**
@@ -142,30 +224,43 @@ export interface UseRouterOptions {
142
224
  */
143
225
  rejectOnError?: boolean;
144
226
  }
145
- export interface RouterNavigation {
227
+ export type RouterResolve<TRouteMap extends object = WevuNamedRouteMap> = IsBroadRouteMap<TRouteMap> extends true ? (to: RouteLocationRaw<TRouteMap>) => RouteLocationNormalizedLoaded<TRouteMap> : {
228
+ <TName extends WevuRouteName<TRouteMap>>(to: RouteLocationNamedRaw<TRouteMap, TName>): RouteLocationNormalizedByName<TRouteMap, TName>;
229
+ (to: RouteLocationRaw<TRouteMap>): RouteLocationNormalizedLoaded<TRouteMap>;
230
+ };
231
+ export interface AddRoute<TRouteMap extends object = WevuNamedRouteMap> {
232
+ (route: RouteRecordRaw<TRouteMap>): () => void;
233
+ (parentName: WevuRouteName<TRouteMap>, route: RouteRecordRaw<TRouteMap>): () => void;
234
+ }
235
+ export interface RouterNavigation<TRouteMap extends object = WevuNamedRouteMap> {
146
236
  readonly nativeRouter: SetupContextRouter;
147
- readonly options: Readonly<UseRouterOptions>;
148
- readonly currentRoute: Readonly<RouteLocationNormalizedLoaded>;
237
+ readonly options: Readonly<UseRouterOptions<TRouteMap>>;
238
+ readonly currentRoute: Readonly<RouteLocationNormalizedLoaded<TRouteMap>>;
149
239
  install: (app?: unknown) => void;
150
- resolve: (to: RouteLocationRaw) => RouteLocationNormalizedLoaded;
240
+ resolve: RouterResolve<TRouteMap>;
151
241
  isReady: () => Promise<void>;
152
- push: (to: RouteLocationRaw) => Promise<void | NavigationFailure>;
153
- replace: (to: RouteLocationRaw) => Promise<void | NavigationFailure>;
154
- back: (delta?: number) => Promise<void | NavigationFailure>;
155
- go: (delta: number) => Promise<void | NavigationFailure>;
156
- forward: () => Promise<void | NavigationFailure>;
157
- hasRoute: (name: string) => boolean;
158
- getRoutes: () => readonly RouteRecordRaw[];
159
- addRoute: AddRoute;
160
- removeRoute: (name: string) => void;
242
+ push: (to: RouteLocationRaw<TRouteMap>) => Promise<void | NavigationFailure<TRouteMap>>;
243
+ replace: (to: RouteLocationRaw<TRouteMap>) => Promise<void | NavigationFailure<TRouteMap>>;
244
+ back: (delta?: number) => Promise<void | NavigationFailure<TRouteMap>>;
245
+ go: (delta: number) => Promise<void | NavigationFailure<TRouteMap>>;
246
+ forward: () => Promise<void | NavigationFailure<TRouteMap>>;
247
+ hasRoute: (name: WevuRouteName<TRouteMap>) => boolean;
248
+ getRoutes: () => readonly RouteRecordRaw<TRouteMap>[];
249
+ addRoute: AddRoute<TRouteMap>;
250
+ removeRoute: (name: WevuRouteName<TRouteMap>) => void;
161
251
  clearRoutes: () => void;
162
- beforeEach: (guard: NavigationGuard) => () => void;
163
- beforeResolve: (guard: NavigationGuard) => () => void;
164
- afterEach: (hook: NavigationAfterEach) => () => void;
165
- onError: (handler: NavigationErrorHandler) => () => void;
166
- }
167
- export interface AddRoute {
168
- (route: RouteRecordRaw): () => void;
169
- (parentName: string, route: RouteRecordRaw): () => void;
252
+ beforeEach: (guard: NavigationGuard<TRouteMap>) => () => void;
253
+ beforeResolve: (guard: NavigationGuard<TRouteMap>) => () => void;
254
+ afterEach: (hook: NavigationAfterEach<TRouteMap>) => () => void;
255
+ onError: (handler: NavigationErrorHandler<TRouteMap>) => () => void;
170
256
  }
257
+ export type WevuAutoRoute<TRouteMap extends object = WevuNamedRouteMap> = IsBroadRouteMap<TRouteMap> extends true ? {
258
+ readonly name: string;
259
+ readonly path: string;
260
+ readonly meta: RouteMeta;
261
+ } : { [TName in WevuRouteName<TRouteMap>]: {
262
+ readonly name: TName;
263
+ readonly path: WevuNamedRoutePath<TRouteMap, TName>;
264
+ readonly meta: StrictRouteRecordMeta<TRouteMap, TName>;
265
+ }; }[WevuRouteName<TRouteMap>];
171
266
  //#endregion
@@ -2,11 +2,12 @@ import { SetupContextRouter } from "../runtime/types/props/router.mjs";
2
2
  import "../runtime/types/props.mjs";
3
3
  import { RouteLocationNormalizedLoaded } from "./types.mjs";
4
4
  import "./routeSync.mjs";
5
+ import { WevuNamedRouteMap } from "../router.mjs";
5
6
  //#region src/router/useRoute.d.ts
6
- export interface UseRouteOptions {
7
- resolveRoute?: (route: RouteLocationNormalizedLoaded) => RouteLocationNormalizedLoaded;
7
+ export interface UseRouteOptions<TRouteMap extends object = WevuNamedRouteMap> {
8
+ resolveRoute?: (route: RouteLocationNormalizedLoaded<TRouteMap>) => RouteLocationNormalizedLoaded<TRouteMap>;
8
9
  }
9
- export declare function useRoute(options?: UseRouteOptions): Readonly<RouteLocationNormalizedLoaded>;
10
+ export declare function useRoute<TRouteMap extends object = WevuNamedRouteMap>(options?: UseRouteOptions<NoInfer<TRouteMap>>): Readonly<RouteLocationNormalizedLoaded<TRouteMap>>;
10
11
  /**
11
12
  * @description 获取当前组件路径语义的原生 Router
12
13
  */
@@ -1,7 +1,8 @@
1
1
  import { RouterNavigation } from "./types.mjs";
2
+ import { WevuNamedRouteMap } from "../router.mjs";
2
3
  //#region src/router/useRouter.d.ts
3
4
  /**
4
5
  * @description 获取当前已创建的路由实例。
5
6
  */
6
- export declare function useRouter(): RouterNavigation;
7
+ export declare function useRouter<TRouteMap extends object = WevuNamedRouteMap>(): RouterNavigation<TRouteMap>;
7
8
  //#endregion
package/dist/router.d.mts CHANGED
@@ -1,10 +1,25 @@
1
1
  import { RouterNavigateToOption, RouterReLaunchOption, RouterRedirectToOption, RouterSwitchTabOption, SetupContextRouter, TypedRouterTabBarUrl, TypedRouterUrl, WevuTypedRouterRouteMap } from "./runtime/types/props/router.mjs";
2
2
  import "./runtime/types/props.mjs";
3
3
  import { parseQuery, stringifyQuery } from "./routerInternal/query.mjs";
4
- import { AddRoute, InitialNavigationMode, LocationQuery, LocationQueryRaw, LocationQueryValue, LocationQueryValueRaw, NamedRouteRecord, NamedRoutes, NavigationAfterEach, NavigationAfterEachContext, NavigationErrorContext, NavigationErrorHandler, NavigationFailure, NavigationFailureType, NavigationFailureTypeValue, NavigationGuard, NavigationGuardContext, NavigationGuardResult, NavigationMode, NavigationRedirect, RouteLocationNormalizedLoaded, RouteLocationRaw, RouteLocationRedirectedFrom, RouteMeta, RouteParamValue, RouteParamValueRaw, RouteParams, RouteParamsMode, RouteParamsRaw, RouteQueryParser, RouteQueryStringifier, RouteRecordInput, RouteRecordMatched, RouteRecordRaw, RouteRecordRedirect, RouterNavigation, UseRouterOptions } from "./router/types.mjs";
4
+ import "./routerInternal/shared.mjs";
5
+ import { AddRoute, InitialNavigationMode, LocationQuery, LocationQueryRaw, LocationQueryValue, LocationQueryValueRaw, NamedRouteRecord, NamedRoutes, NavigationAfterEach, NavigationAfterEachContext, NavigationErrorContext, NavigationErrorHandler, NavigationFailure, NavigationFailureType, NavigationFailureTypeValue, NavigationGuard, NavigationGuardContext, NavigationGuardResult, NavigationMode, NavigationRedirect, RouteLocationNamedRaw, RouteLocationNormalizedByName, RouteLocationNormalizedLoaded, RouteLocationRaw, RouteLocationRedirectedFrom, RouteMeta, RouteParamValue, RouteParamValueRaw, RouteParams, RouteParamsMode, RouteParamsRaw, RouteQueryParser, RouteQueryStringifier, RouteRecordInput, RouteRecordMatched, RouteRecordRaw, RouteRecordRedirect, RouterNavigation, RouterResolve, UseRouterOptions, WevuAutoRoute, WevuBroadRouteMap, WevuNamedRouteDefinition, WevuNamedRouteMeta, WevuNamedRoutePath, WevuRouteName } from "./router/types.mjs";
5
6
  import { createRouter } from "./router/createRouter.mjs";
6
7
  import { createNavigationFailure, isNavigationFailure } from "./router/navigationCore.mjs";
7
8
  import { resolveRouteLocation } from "./router/resolve.mjs";
8
- import { useNativePageRouter, useNativeRouter, useRoute } from "./router/useRoute.mjs";
9
+ import { UseRouteOptions, useNativePageRouter, useNativeRouter, useRoute } from "./router/useRoute.mjs";
9
10
  import { useRouter } from "./router/useRouter.mjs";
10
- export { type AddRoute, type InitialNavigationMode, type LocationQuery, type LocationQueryRaw, type LocationQueryValue, type LocationQueryValueRaw, type NamedRouteRecord, type NamedRoutes, type NavigationAfterEach, type NavigationAfterEachContext, type NavigationErrorContext, type NavigationErrorHandler, type NavigationFailure, NavigationFailureType, type NavigationFailureTypeValue, type NavigationGuard, type NavigationGuardContext, type NavigationGuardResult, type NavigationMode, type NavigationRedirect, type RouteLocationNormalizedLoaded, type RouteLocationRaw, type RouteLocationRedirectedFrom, type RouteMeta, type RouteParamValue, type RouteParamValueRaw, type RouteParams, type RouteParamsMode, type RouteParamsRaw, type RouteQueryParser, type RouteQueryStringifier, type RouteRecordInput, type RouteRecordMatched, type RouteRecordRaw, type RouteRecordRedirect, type RouterNavigateToOption, type RouterNavigation, type RouterReLaunchOption, type RouterRedirectToOption, type RouterSwitchTabOption, type SetupContextRouter, type TypedRouterTabBarUrl, type TypedRouterUrl, type UseRouterOptions, type WevuTypedRouterRouteMap, createNavigationFailure, createRouter, isNavigationFailure, parseQuery, resolveRouteLocation, stringifyQuery, useNativePageRouter, useNativeRouter, useRoute, useRouter };
11
+ import { StaticPageDeclaration, StaticPageDeclaration as StaticPageDeclaration$1, StaticRouteValue } from "@wevu/compiler/page-route";
12
+ //#region src/router.d.ts
13
+ /**
14
+ * 由 weapp-vite 生成的项目级命名路由声明会扩展此接口。
15
+ */
16
+ export interface WevuNamedRouteMap {}
17
+ /**
18
+ * definePage 声明页面命名路由(仅编译期宏,无运行时实现)。
19
+ *
20
+ * `name` 必须是应用内唯一的非空静态字符串,`meta` 仅支持有限 JSON 对象。
21
+ * 参数只接受 `name` 与 `meta`;页面布局继续使用 `definePageMeta`,页面路径由构建工具推导。
22
+ */
23
+ export declare function definePage(route: StaticPageDeclaration$1): void;
24
+ //#endregion
25
+ export { type AddRoute, type InitialNavigationMode, type LocationQuery, type LocationQueryRaw, type LocationQueryValue, type LocationQueryValueRaw, type NamedRouteRecord, type NamedRoutes, type NavigationAfterEach, type NavigationAfterEachContext, type NavigationErrorContext, type NavigationErrorHandler, type NavigationFailure, NavigationFailureType, type NavigationFailureTypeValue, type NavigationGuard, type NavigationGuardContext, type NavigationGuardResult, type NavigationMode, type NavigationRedirect, type RouteLocationNamedRaw, type RouteLocationNormalizedByName, type RouteLocationNormalizedLoaded, type RouteLocationRaw, type RouteLocationRedirectedFrom, type RouteMeta, type RouteParamValue, type RouteParamValueRaw, type RouteParams, type RouteParamsMode, type RouteParamsRaw, type RouteQueryParser, type RouteQueryStringifier, type RouteRecordInput, type RouteRecordMatched, type RouteRecordRaw, type RouteRecordRedirect, type RouterNavigateToOption, type RouterNavigation, type RouterReLaunchOption, type RouterRedirectToOption, type RouterResolve, type RouterSwitchTabOption, type SetupContextRouter, type StaticPageDeclaration, type StaticRouteValue, type TypedRouterTabBarUrl, type TypedRouterUrl, type UseRouteOptions, type UseRouterOptions, type WevuAutoRoute, type WevuBroadRouteMap, type WevuNamedRouteDefinition, type WevuNamedRouteMeta, type WevuNamedRoutePath, type WevuRouteName, type WevuTypedRouterRouteMap, createNavigationFailure, createRouter, isNavigationFailure, parseQuery, resolveRouteLocation, stringifyQuery, useNativePageRouter, useNativeRouter, useRoute, useRouter };
@@ -0,0 +1,2 @@
1
+ import "./types.mjs";
2
+ import "../router.mjs";
@@ -0,0 +1,2 @@
1
+ import "./types.mjs";
2
+ import "../router.mjs";
@@ -1 +1 @@
1
- import{isDynamicRoutePath as e}from"./path.mjs";import{decodeRouteParamSegment as t,parsePathParamToken as n}from"./params.mjs";function r(e){return e.split(`/`).filter(Boolean)}function i(e){return[e.path,...e.aliasPaths]}function a(e,t){let n=[],r=/* @__PURE__ */ 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 o(e){let t;for(let n of e)n.meta&&(t||(t={}),Object.assign(t,n.meta));return t}function s(e,t){let n=/* @__PURE__ */ 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 c(e){let t={};for(let[n,r]of e.entries())r.length!==0&&(t[n]=r.length===1?r[0]:r);return t}function l(e,i){let a=r(e),o=r(i),s=/* @__PURE__ */ new Map,l=(e,t)=>{let n=s.get(e);if(n){n.push(t);return}s.set(e,[t])},u=e=>{let t=s.get(e);t&&t.length!==0&&(t.pop(),t.length===0&&s.delete(e))},d=(e,n,r)=>{for(let i=0;i<r;i+=1)l(e,t(o[n+i]));return()=>{for(let t=0;t<r;t+=1)u(e)}},f=(e,r)=>{if(e>=a.length)return r>=o.length;let i=a[e],s=n(i);if(!s)return r>=o.length||i!==o[r]?!1:f(e+1,r+1);if(s.modifier===``){if(r>=o.length)return!1;l(s.key,t(o[r]));let n=f(e+1,r+1);return n||u(s.key),n}if(s.modifier===`?`){if(r<o.length){if(l(s.key,t(o[r])),f(e+1,r+1))return!0;u(s.key)}return f(e+1,r)}let c=+(s.modifier===`+`),p=o.length-r;for(let t=p;t>=c;--t){let n=d(s.key,r,t);if(f(e+1,r+t))return!0;n()}return!1};if(f(0,0))return c(s)}function u(t,n){if(t.name){let e=n.recordByName.get(t.name);if(e)return{record:e,matchedRecords:a(e,n)}}let r=n.nameByStaticPath.get(t.path);if(r){let e=n.recordByName.get(r);if(e)return{record:e,matchedRecords:a(e,n),matchedPath:t.path}}for(let r of n.recordByName.values())for(let o of i(r)){if(!e(o))continue;let i=l(o,t.path);if(i)return{record:r,matchedRecords:a(r,n),matchedPath:o,params:i}}}export{s as collectRouteNamesForRemoval,o as mergeMatchedRouteMeta,u as resolveMatchedRouteRecord};
1
+ import{isDynamicRoutePath as e}from"./path.mjs";import{decodeRouteParamSegment as t,parsePathParamToken as n}from"./params.mjs";function r(e){return e.split(`/`).filter(Boolean)}function i(e){return[e.path,...e.aliasPaths]}function a(e,t){let n=[],r=/* @__PURE__ */ 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 o(e){let t;for(let n of e)n.meta&&(t||(t=Object.create(null)),Object.assign(t,n.meta));return t}function s(e,t){let n=/* @__PURE__ */ 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 c(e){let t={};for(let[n,r]of e.entries())r.length!==0&&(t[n]=r.length===1?r[0]:r);return t}function l(e,i){let a=r(e),o=r(i),s=/* @__PURE__ */ new Map,l=(e,t)=>{let n=s.get(e);if(n){n.push(t);return}s.set(e,[t])},u=e=>{let t=s.get(e);t&&t.length!==0&&(t.pop(),t.length===0&&s.delete(e))},d=(e,n,r)=>{for(let i=0;i<r;i+=1)l(e,t(o[n+i]));return()=>{for(let t=0;t<r;t+=1)u(e)}},f=(e,r)=>{if(e>=a.length)return r>=o.length;let i=a[e],s=n(i);if(!s)return r>=o.length||i!==o[r]?!1:f(e+1,r+1);if(s.modifier===``){if(r>=o.length)return!1;l(s.key,t(o[r]));let n=f(e+1,r+1);return n||u(s.key),n}if(s.modifier===`?`){if(r<o.length){if(l(s.key,t(o[r])),f(e+1,r+1))return!0;u(s.key)}return f(e+1,r)}let c=+(s.modifier===`+`),p=o.length-r;for(let t=p;t>=c;--t){let n=d(s.key,r,t);if(f(e+1,r+t))return!0;n()}return!1};if(f(0,0))return c(s)}function u(t,n){if(t.name){let e=n.recordByName.get(t.name);if(e)return{record:e,matchedRecords:a(e,n)}}let r=n.nameByStaticPath.get(t.path);if(r){let e=n.recordByName.get(r);if(e)return{record:e,matchedRecords:a(e,n),matchedPath:t.path}}for(let r of n.recordByName.values())for(let o of i(r)){if(!e(o))continue;let i=l(o,t.path);if(i)return{record:r,matchedRecords:a(r,n),matchedPath:o,params:i}}}export{s as collectRouteNamesForRemoval,o as mergeMatchedRouteMeta,u as resolveMatchedRouteRecord};
@@ -0,0 +1,2 @@
1
+ import "./types.mjs";
2
+ import "../router.mjs";
@@ -0,0 +1,2 @@
1
+ import "./types.mjs";
2
+ import "../router.mjs";
@@ -0,0 +1,2 @@
1
+ import "./types.mjs";
2
+ import "../router.mjs";
@@ -0,0 +1,9 @@
1
+ import { RouteResolveCodec } from "./types.mjs";
2
+ import "./location.mjs";
3
+ import "./matching.mjs";
4
+ import "./params.mjs";
5
+ import { parseQuery, stringifyQuery } from "./query.mjs";
6
+ import "./records.mjs";
7
+ import "./recordsWarnings.mjs";
8
+ import "./snapshots.mjs";
9
+ export { type RouteResolveCodec, parseQuery, stringifyQuery };
@@ -0,0 +1,2 @@
1
+ import "./types.mjs";
2
+ import "../router.mjs";
@@ -1 +1 @@
1
- import{getCurrentMiniProgramRuntimeCapabilities as e,getMiniProgramGlobalObject as t,supportsCurrentMiniProgramRuntimeCapability as n}from"../platform.mjs";import{WEVU_HOOKS_KEY as r}from"@weapp-core/constants";const i=(()=>{var e;let t=globalThis;return(e=t.__wevuCurrentSetupState__)==null?t.__wevuCurrentSetupState__={}:e})();function a(){return i.instance}function o(e){i.instance=e}function s(){return i.context}function c(e){i.context=e}function l(e){if(!i.instance)throw Error(`${e}() 必须在 setup() 的同步阶段调用`);return i.instance}function u(e){return e[r]||(e[r]=Object.create(null)),e[r]}function d(t,n){let r=e().shareTimelineRequiresShareAppMessage?t||n:t,i=[];return r&&i.push(`shareAppMessage`),n&&i.push(`shareTimeline`),i}function f(e,t){let n=[{withShareTicket:!0,menus:t},{menus:t},t.includes(`shareTimeline`)?{withShareTicket:!0}:void 0,t.includes(`shareTimeline`)?{}:void 0,void 0];for(let t of n)try{t===void 0?e():e(t);return}catch(e){}}function p(e,t,n,{single:r=!1}={}){let i=u(e);if(r)i[t]=n;else{var a;((a=i[t])==null?i[t]=[]:a).push(n)}}function m(e,t){var n,i;let a=(i=(n=e).__wevuShareHookBridges)==null?n.__wevuShareHookBridges=Object.create(null):i;if(typeof a[t]==`function`)return;let o=e[t],s=function(...e){var n;let i=this[r],a=i==null?void 0:i[t],s=this.__wevu,c=(n=s==null?void 0:s.proxy)==null?this:n,l;if(typeof a==`function`)try{l=a.apply(c,e)}catch(e){l=void 0}else if(Array.isArray(a))for(let t of a)try{l=t.apply(c,e)}catch(e){}if(l!==void 0)return l;if(typeof o==`function`)return o.apply(this,e)};a[t]=s,e[t]=s}function h(e){var i;if(!n(`pageShareMenu`))return;let a=t();if(!a||typeof a.showShareMenu!=`function`)return;let o=(i=e[r])==null?{}:i,s=typeof o.onShareAppMessage==`function`,c=typeof o.onShareTimeline==`function`;if(!s&&!c)return;let l=d(s,c);l.length&&f(a.showShareMenu.bind(a),l)}function g(e,t,n=[]){var i;let a=e[r];if(!a)return;let o=a[t];if(!o)return;let s=e.__wevu,c=(i=s==null?void 0:s.proxy)==null?e:i;if(Array.isArray(o))for(let e of o)try{e.apply(c,n)}catch(e){}else if(typeof o==`function`)try{o.apply(c,n)}catch(e){}}function _(e,t){var n,r;let i=(r=(n=e).__wevuPageHookBridges)==null?n.__wevuPageHookBridges=Object.create(null):r;if(typeof i[t]==`function`)return;let a=e[t],o=function(...e){if(g(this,t,e),typeof a==`function`)return a.apply(this,e)};i[t]=o,e[t]=o}function v(e,t,n=[]){var i;let a=e[r];if(!a)return;let o=a[t];if(!o)return;let s=e.__wevu,c=(i=s==null?void 0:s.proxy)==null?e:i;if(typeof o==`function`)try{return o.apply(c,n)}catch(e){return}if(Array.isArray(o)){let e;for(let t of o)try{e=t.apply(c,n)}catch(e){}return e}}export{l as assertInSetup,g as callHookList,v as callHookReturn,_ as ensurePageHookOnInstance,h as ensurePageShareMenusOnSetup,m as ensureSinglePageHookOnInstance,a as getCurrentInstance,s as getCurrentSetupContext,p as pushHook,o as setCurrentInstance,c as setCurrentSetupContext};
1
+ import{getCurrentMiniProgramRuntimeCapabilities as e,getMiniProgramGlobalObject as t,getMiniProgramRuntimeGlobalObject as n,supportsCurrentMiniProgramRuntimeCapability as r}from"../platform.mjs";import{WEVU_CURRENT_SETUP_STATE_KEY as i,WEVU_HOOKS_KEY as a}from"@weapp-core/constants";const o=(()=>{var e;let t=typeof globalThis<`u`?globalThis:n();return t?(e=t[i])==null?t[i]={}:e:{}})();function s(){return o.instance}function c(e){o.instance=e}function l(){return o.context}function u(e){o.context=e}function d(e){if(!o.instance)throw Error(`${e}() 必须在 setup() 的同步阶段调用`);return o.instance}function f(e){return e[a]||(e[a]=Object.create(null)),e[a]}function p(t,n){let r=e().shareTimelineRequiresShareAppMessage?t||n:t,i=[];return r&&i.push(`shareAppMessage`),n&&i.push(`shareTimeline`),i}function m(e,t){let n=[{withShareTicket:!0,menus:t},{menus:t},t.includes(`shareTimeline`)?{withShareTicket:!0}:void 0,t.includes(`shareTimeline`)?{}:void 0,void 0];for(let t of n)try{t===void 0?e():e(t);return}catch(e){}}function h(e,t,n,{single:r=!1}={}){let i=f(e);if(r)i[t]=n;else{var a;((a=i[t])==null?i[t]=[]:a).push(n)}}function g(e,t){var n,r;let i=(r=(n=e).__wevuShareHookBridges)==null?n.__wevuShareHookBridges=Object.create(null):r;if(typeof i[t]==`function`)return;let o=e[t],s=function(...e){var n;let r=this[a],i=r==null?void 0:r[t],s=this.__wevu,c=(n=s==null?void 0:s.proxy)==null?this:n,l;if(typeof i==`function`)try{l=i.apply(c,e)}catch(e){l=void 0}else if(Array.isArray(i))for(let t of i)try{l=t.apply(c,e)}catch(e){}if(l!==void 0)return l;if(typeof o==`function`)return o.apply(this,e)};i[t]=s,e[t]=s}function _(e){var n;if(!r(`pageShareMenu`))return;let i=t();if(!i||typeof i.showShareMenu!=`function`)return;let o=(n=e[a])==null?{}:n,s=typeof o.onShareAppMessage==`function`,c=typeof o.onShareTimeline==`function`;if(!s&&!c)return;let l=p(s,c);l.length&&m(i.showShareMenu.bind(i),l)}function v(e,t,n=[]){var r;let i=e[a];if(!i)return;let o=i[t];if(!o)return;let s=e.__wevu,c=(r=s==null?void 0:s.proxy)==null?e:r;if(Array.isArray(o))for(let e of o)try{e.apply(c,n)}catch(e){}else if(typeof o==`function`)try{o.apply(c,n)}catch(e){}}function y(e,t){var n,r;let i=(r=(n=e).__wevuPageHookBridges)==null?n.__wevuPageHookBridges=Object.create(null):r;if(typeof i[t]==`function`)return;let a=e[t],o=function(...e){if(v(this,t,e),typeof a==`function`)return a.apply(this,e)};i[t]=o,e[t]=o}function b(e,t,n=[]){var r;let i=e[a];if(!i)return;let o=i[t];if(!o)return;let s=e.__wevu,c=(r=s==null?void 0:s.proxy)==null?e:r;if(typeof o==`function`)try{return o.apply(c,n)}catch(e){return}if(Array.isArray(o)){let e;for(let t of o)try{e=t.apply(c,n)}catch(e){}return e}}export{d as assertInSetup,v as callHookList,b as callHookReturn,y as ensurePageHookOnInstance,_ as ensurePageShareMenusOnSetup,g as ensureSinglePageHookOnInstance,s as getCurrentInstance,l as getCurrentSetupContext,h as pushHook,c as setCurrentInstance,u as setCurrentSetupContext};