wevu 7.1.4 → 7.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/README.md +20 -6
  2. package/dist/dev/index.mjs +3 -2
  3. package/dist/dev/package.mjs +1 -1
  4. package/dist/dev/reactivity/computed.mjs +10 -1
  5. package/dist/dev/reactivity/computed.mjs.map +1 -1
  6. package/dist/dev/reactivity/reactive.mjs +27 -20
  7. package/dist/dev/reactivity/reactive.mjs.map +1 -1
  8. package/dist/dev/router/auto-routes.mjs +11 -0
  9. package/dist/dev/router/auto-routes.mjs.map +1 -0
  10. package/dist/dev/router/createRouter.mjs +3 -4
  11. package/dist/dev/router/createRouter.mjs.map +1 -1
  12. package/dist/dev/router/navigationCore.mjs +7 -7
  13. package/dist/dev/router/navigationCore.mjs.map +1 -1
  14. package/dist/dev/router/resolve.mjs.map +1 -1
  15. package/dist/dev/router/types.mjs.map +1 -1
  16. package/dist/dev/router/useRoute.mjs.map +1 -1
  17. package/dist/dev/router/useRouter.mjs.map +1 -1
  18. package/dist/dev/routerInternal/matching.mjs +1 -1
  19. package/dist/dev/routerInternal/matching.mjs.map +1 -1
  20. package/dist/dev/routerInternal/params.mjs.map +1 -1
  21. package/dist/dev/runtime/hooks/base.mjs +5 -5
  22. package/dist/dev/runtime/hooks/base.mjs.map +1 -1
  23. package/dist/dev/runtime/platform.mjs +31 -24
  24. package/dist/dev/runtime/platform.mjs.map +1 -1
  25. package/dist/dev/runtime/register/component/alipay.mjs +72 -0
  26. package/dist/dev/runtime/register/component/alipay.mjs.map +1 -0
  27. package/dist/dev/runtime/register/component/registerNativeDefinition.mjs +5 -2
  28. package/dist/dev/runtime/register/component/registerNativeDefinition.mjs.map +1 -1
  29. package/dist/dev/store/actions.mjs +27 -29
  30. package/dist/dev/store/actions.mjs.map +1 -1
  31. package/dist/dev/store/base.mjs +152 -36
  32. package/dist/dev/store/base.mjs.map +1 -1
  33. package/dist/dev/store/define/create.mjs +92 -0
  34. package/dist/dev/store/define/create.mjs.map +1 -0
  35. package/dist/dev/store/define.mjs +11 -15
  36. package/dist/dev/store/define.mjs.map +1 -1
  37. package/dist/dev/store/manager.mjs +55 -14
  38. package/dist/dev/store/manager.mjs.map +1 -1
  39. package/dist/dev/store/storeToRefs.mjs +10 -18
  40. package/dist/dev/store/storeToRefs.mjs.map +1 -1
  41. package/dist/dev/store/subscriptions.mjs +17 -0
  42. package/dist/dev/store/subscriptions.mjs.map +1 -0
  43. package/dist/dev/store/types.mjs +11 -0
  44. package/dist/dev/store/types.mjs.map +1 -0
  45. package/dist/dev/store/utils.mjs +1 -37
  46. package/dist/dev/store/utils.mjs.map +1 -1
  47. package/dist/dev/store/view.mjs +56 -0
  48. package/dist/dev/store/view.mjs.map +1 -0
  49. package/dist/dev/store.mjs +3 -2
  50. package/dist/dev/vue-demi.mjs +3 -2
  51. package/dist/dev/vue-demi.mjs.map +1 -1
  52. package/dist/index.d.mts +3 -3
  53. package/dist/index.mjs +1 -1
  54. package/dist/package.mjs +1 -1
  55. package/dist/reactivity/computed.d.mts +4 -0
  56. package/dist/reactivity/computed.mjs +1 -1
  57. package/dist/reactivity/reactive.mjs +1 -1
  58. package/dist/router/auto-routes.d.mts +7 -0
  59. package/dist/router/auto-routes.mjs +1 -0
  60. package/dist/router/createRouter.d.mts +2 -1
  61. package/dist/router/createRouter.mjs +1 -1
  62. package/dist/router/navigationCore.d.mts +3 -2
  63. package/dist/router/navigationCore.mjs +1 -1
  64. package/dist/router/resolve.d.mts +3 -2
  65. package/dist/router/routeSync.d.mts +1 -0
  66. package/dist/router/types.d.mts +173 -78
  67. package/dist/router/useRoute.d.mts +4 -3
  68. package/dist/router/useRouter.d.mts +2 -1
  69. package/dist/router.d.mts +18 -3
  70. package/dist/routerInternal/location.d.mts +2 -0
  71. package/dist/routerInternal/matching.d.mts +2 -0
  72. package/dist/routerInternal/matching.mjs +1 -1
  73. package/dist/routerInternal/params.d.mts +2 -0
  74. package/dist/routerInternal/records.d.mts +2 -0
  75. package/dist/routerInternal/recordsWarnings.d.mts +2 -0
  76. package/dist/routerInternal/shared.d.mts +9 -0
  77. package/dist/routerInternal/snapshots.d.mts +2 -0
  78. package/dist/runtime/hooks/base.mjs +1 -1
  79. package/dist/runtime/platform.mjs +1 -1
  80. package/dist/runtime/register/component/alipay.mjs +1 -0
  81. package/dist/runtime/register/component/registerNativeDefinition.mjs +1 -1
  82. package/dist/store/actions.mjs +1 -1
  83. package/dist/store/base.mjs +1 -1
  84. package/dist/store/define/create.mjs +1 -0
  85. package/dist/store/define.d.mts +5 -16
  86. package/dist/store/define.mjs +1 -1
  87. package/dist/store/manager.d.mts +13 -5
  88. package/dist/store/manager.mjs +1 -1
  89. package/dist/store/storeToRefs.d.mts +5 -7
  90. package/dist/store/storeToRefs.mjs +1 -1
  91. package/dist/store/subscriptions.mjs +1 -0
  92. package/dist/store/types.d.mts +85 -59
  93. package/dist/store/types.mjs +1 -0
  94. package/dist/store/utils.mjs +1 -1
  95. package/dist/store/view.mjs +1 -0
  96. package/dist/store.d.mts +3 -3
  97. package/dist/store.mjs +1 -1
  98. package/dist/vue-demi.d.mts +3 -3
  99. package/dist/vue-demi.mjs +1 -1
  100. package/package.json +29 -9
  101. package/dist/dev/api/vitest/setup.d.mts +0 -1
  102. package/dist/dev/api/vitest.d.mts +0 -1
  103. package/dist/dev/api.d.mts +0 -1
  104. package/dist/dev/compiler.d.mts +0 -1
  105. package/dist/dev/fetch.d.mts +0 -9
  106. package/dist/dev/index.d.mts +0 -72
  107. package/dist/dev/internal-reactivity.d.mts +0 -18
  108. package/dist/dev/internal-runtime.d.mts +0 -44
  109. package/dist/dev/internal-template.d.mts +0 -2
  110. package/dist/dev/jsxTypes.d.mts +0 -9
  111. package/dist/dev/macros/shared.d.mts +0 -83
  112. package/dist/dev/macros.d.mts +0 -71
  113. package/dist/dev/reactivity/asyncDerivation.d.mts +0 -41
  114. package/dist/dev/reactivity/computed.d.mts +0 -21
  115. package/dist/dev/reactivity/core.d.mts +0 -35
  116. package/dist/dev/reactivity/index.d.mts +0 -16
  117. package/dist/dev/reactivity/reactive/mutation.d.mts +0 -21
  118. package/dist/dev/reactivity/reactive/patch.d.mts +0 -18
  119. package/dist/dev/reactivity/reactive/shallow.d.mts +0 -22
  120. package/dist/dev/reactivity/reactive/shared.d.mts +0 -4
  121. package/dist/dev/reactivity/reactive.d.mts +0 -42
  122. package/dist/dev/reactivity/readonly.d.mts +0 -27
  123. package/dist/dev/reactivity/ref.d.mts +0 -27
  124. package/dist/dev/reactivity/shallowRef.d.mts +0 -19
  125. package/dist/dev/reactivity/toRefs.d.mts +0 -43
  126. package/dist/dev/reactivity/traverse.d.mts +0 -8
  127. package/dist/dev/reactivity/watch/types.d.mts +0 -43
  128. package/dist/dev/reactivity/watch.d.mts +0 -22
  129. package/dist/dev/router/createRouter.d.mts +0 -8
  130. package/dist/dev/router/navigationCore.d.mts +0 -6
  131. package/dist/dev/router/resolve.d.mts +0 -6
  132. package/dist/dev/router/routeSync.d.mts +0 -1
  133. package/dist/dev/router/types.d.mts +0 -172
  134. package/dist/dev/router/useRoute.d.mts +0 -19
  135. package/dist/dev/router/useRouter.d.mts +0 -8
  136. package/dist/dev/router.d.mts +0 -10
  137. package/dist/dev/routerInternal/query.d.mts +0 -7
  138. package/dist/dev/routerInternal/types.d.mts +0 -9
  139. package/dist/dev/runtime/app/pending.d.mts +0 -10
  140. package/dist/dev/runtime/app/setData/commitTracker.d.mts +0 -13
  141. package/dist/dev/runtime/app/setData/scheduler.d.mts +0 -51
  142. package/dist/dev/runtime/app.d.mts +0 -8
  143. package/dist/dev/runtime/capabilities.d.mts +0 -75
  144. package/dist/dev/runtime/css.d.mts +0 -14
  145. package/dist/dev/runtime/defaults.d.mts +0 -12
  146. package/dist/dev/runtime/define.d.mts +0 -118
  147. package/dist/dev/runtime/disposables.d.mts +0 -31
  148. package/dist/dev/runtime/elementIntersectionObserver.d.mts +0 -26
  149. package/dist/dev/runtime/features/inlineEvents.d.mts +0 -7
  150. package/dist/dev/runtime/features/layout.d.mts +0 -7
  151. package/dist/dev/runtime/features/patchStrategy.d.mts +0 -7
  152. package/dist/dev/runtime/features/publicLayout.d.mts +0 -24
  153. package/dist/dev/runtime/features/scopedSlots.d.mts +0 -23
  154. package/dist/dev/runtime/features/setDataHighFrequencyWarning.d.mts +0 -7
  155. package/dist/dev/runtime/features/templateRefs.d.mts +0 -7
  156. package/dist/dev/runtime/hooks/base.d.mts +0 -27
  157. package/dist/dev/runtime/hooks/register.d.mts +0 -30
  158. package/dist/dev/runtime/hooks/vue.d.mts +0 -52
  159. package/dist/dev/runtime/hooks.d.mts +0 -4
  160. package/dist/dev/runtime/index.d.mts +0 -46
  161. package/dist/dev/runtime/intersectionObserver.d.mts +0 -14
  162. package/dist/dev/runtime/jsxIsland.d.mts +0 -37
  163. package/dist/dev/runtime/layoutBridge.d.mts +0 -55
  164. package/dist/dev/runtime/noSetData.d.mts +0 -5
  165. package/dist/dev/runtime/pageEnvironment.d.mts +0 -50
  166. package/dist/dev/runtime/pageLayout.d.mts +0 -25
  167. package/dist/dev/runtime/pageScroll.d.mts +0 -29
  168. package/dist/dev/runtime/provide.d.mts +0 -60
  169. package/dist/dev/runtime/provideStore.d.mts +0 -7
  170. package/dist/dev/runtime/publicRuntime.d.mts +0 -22
  171. package/dist/dev/runtime/pullDownRefresh.d.mts +0 -12
  172. package/dist/dev/runtime/register/app.d.mts +0 -14
  173. package/dist/dev/runtime/register/component.d.mts +0 -17
  174. package/dist/dev/runtime/register/inline.d.mts +0 -15
  175. package/dist/dev/runtime/register/runtimeInstance.d.mts +0 -26
  176. package/dist/dev/runtime/register/setup.d.mts +0 -11
  177. package/dist/dev/runtime/register/watch.d.mts +0 -12
  178. package/dist/dev/runtime/register.d.mts +0 -5
  179. package/dist/dev/runtime/selectorQuery.d.mts +0 -54
  180. package/dist/dev/runtime/template.d.mts +0 -6
  181. package/dist/dev/runtime/templateRefTypes.d.mts +0 -12
  182. package/dist/dev/runtime/types/core.d.mts +0 -35
  183. package/dist/dev/runtime/types/miniprogram.d.mts +0 -84
  184. package/dist/dev/runtime/types/miniprogramHost.d.mts +0 -45
  185. package/dist/dev/runtime/types/miniprogramHostSources.d.mts +0 -112
  186. package/dist/dev/runtime/types/options.d.mts +0 -138
  187. package/dist/dev/runtime/types/props/propTypes.d.mts +0 -79
  188. package/dist/dev/runtime/types/props/router.d.mts +0 -51
  189. package/dist/dev/runtime/types/props/setup.d.mts +0 -96
  190. package/dist/dev/runtime/types/props.d.mts +0 -4
  191. package/dist/dev/runtime/types/runtime.d.mts +0 -59
  192. package/dist/dev/runtime/types/setData.d.mts +0 -237
  193. package/dist/dev/runtime/types.d.mts +0 -29
  194. package/dist/dev/runtime/uniAppHost.d.mts +0 -8
  195. package/dist/dev/runtime/updatePerformance.d.mts +0 -13
  196. package/dist/dev/runtime/use.d.mts +0 -13
  197. package/dist/dev/runtime/vueCompat/context.d.mts +0 -8
  198. package/dist/dev/runtime/vueCompat/model.d.mts +0 -30
  199. package/dist/dev/runtime/vueCompat/router.d.mts +0 -29
  200. package/dist/dev/runtime/vueCompat/templateRef.d.mts +0 -9
  201. package/dist/dev/runtime/vueCompat.d.mts +0 -5
  202. package/dist/dev/scheduler.d.mts +0 -4
  203. package/dist/dev/store/define/optionsStyle.mjs +0 -117
  204. package/dist/dev/store/define/optionsStyle.mjs.map +0 -1
  205. package/dist/dev/store/define/setupStyle.mjs +0 -137
  206. package/dist/dev/store/define/setupStyle.mjs.map +0 -1
  207. package/dist/dev/store/define/shared.mjs +0 -81
  208. package/dist/dev/store/define/shared.mjs.map +0 -1
  209. package/dist/dev/store/define.d.mts +0 -19
  210. package/dist/dev/store/manager.d.mts +0 -8
  211. package/dist/dev/store/storeToRefs.d.mts +0 -13
  212. package/dist/dev/store/types.d.mts +0 -80
  213. package/dist/dev/store.d.mts +0 -5
  214. package/dist/dev/version.d.mts +0 -4
  215. package/dist/dev/vue-augment.d.mts +0 -8
  216. package/dist/dev/vue-demi.d.mts +0 -87
  217. package/dist/dev/vue-types.d.mts +0 -19
  218. package/dist/dev/web-apis.d.mts +0 -3
  219. package/dist/store/define/optionsStyle.mjs +0 -1
  220. package/dist/store/define/setupStyle.mjs +0 -1
  221. package/dist/store/define/shared.mjs +0 -1
@@ -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};
@@ -1 +1 @@
1
- import{getMiniProgramPlatformByRuntimeGlobalKey as e,getMiniProgramRuntimeCapabilities as t,getMiniProgramRuntimeGlobalKey as n,getMiniProgramRuntimeGlobalKeys as r,getMiniProgramRuntimeHostConfigKey as i,resolveMiniProgramPlatform as a,supportsMiniProgramRuntimeCapability as o}from"@weapp-core/shared/platforms";const s=[`switchTab`,`reLaunch`,`redirectTo`,`navigateTo`,`navigateBack`];function c(){if(typeof globalThis<`u`)return globalThis}function l(){if(typeof my<`u`)return my}function u(){var t;let n=c(),i=(t=import.meta.env)==null?void 0:t.PLATFORM,o=a(i);if(o)return o;for(let t of r())if(n!=null&&n[t])return e(t)}function d(){return t(u())}function f(e){return o(u(),e)}function p(){var e,t,r,i;if(!f(`globalPageStack`))return[];let a=c(),o=u(),s=o?n(o):void 0,d=(e=(t=s?a==null||(r=a[s])==null?void 0:r.getCurrentPages:void 0)==null?(i=l())==null?void 0:i.getCurrentPages:t)==null?a==null?void 0:a.getCurrentPages:e;if(typeof d!=`function`)return[];try{let e=d();return Array.isArray(e)?e:[]}catch(e){return[]}}function m(){let e=c(),t=i(u()),n=e==null?void 0:e[t];return n&&typeof n==`object`?n:void 0}function h(e){var t;let i=c(),o=e==null?(t=import.meta.env)==null?void 0:t.PLATFORM:e,s=a(o);if(s){var u;let e=n(s);return(u=i==null?void 0:i[e])==null?s===`alipay`?l():void 0:u}for(let e of r()){let t=i==null?void 0:i[e];if(t)return t}}function g(){var e;return(e=h())==null?c():e}function _(){var e;return(e=g())==null||(e=e.console)==null?void 0:e.warn}function v(){if(!f(`globalRouterApi`))return;let e=h();if(!e)return;let t=Object.create(null);for(let n of s){let r=e[n];if(typeof r!=`function`)return;t[n]=(...t)=>r.apply(e,t)}return t}function y(){let e=m(),t=e==null?void 0:e.tabBar;if(!t||typeof t!=`object`||!(`list`in t)||!Array.isArray(t.list))return[];let n=[];for(let e of t.list){if(!e||typeof e!=`object`||!(`pagePath`in e))continue;let t=e.pagePath;typeof t==`string`&&t&&n.push(t.replace(/\.html$/,``))}return n}function b(){var e;return(e=h())==null?c():e}export{v as getCurrentMiniProgramGlobalRouter,m as getCurrentMiniProgramHostConfig,p as getCurrentMiniProgramPages,d as getCurrentMiniProgramRuntimeCapabilities,y as getCurrentMiniProgramTabBarPagePaths,h as getMiniProgramGlobalObject,_ as getMiniProgramRuntimeConsoleWarn,g as getMiniProgramRuntimeGlobalObject,b as getScopedSlotHostGlobalObject,u as resolveCurrentMiniProgramPlatform,f as supportsCurrentMiniProgramRuntimeCapability};
1
+ import{getMiniProgramPlatformByRuntimeGlobalKey as e,getMiniProgramRuntimeCapabilities as t,getMiniProgramRuntimeGlobalKey as n,getMiniProgramRuntimeGlobalKeys as r,getMiniProgramRuntimeHostConfigKey as i,resolveMiniProgramPlatform as a,supportsMiniProgramRuntimeCapability as o}from"@weapp-core/shared/platforms";const s=[`switchTab`,`reLaunch`,`redirectTo`,`navigateTo`,`navigateBack`];function c(){if(typeof globalThis<`u`)return globalThis}function l(e){switch(e){case`wx`:return typeof wx<`u`?wx:void 0;case`my`:return typeof my<`u`?my:void 0;case`tt`:return typeof tt<`u`?tt:void 0;case`swan`:return typeof swan<`u`?swan:void 0;case`jd`:return typeof jd<`u`?jd:void 0;case`xhs`:return typeof xhs<`u`?xhs:void 0}}function u(e){var t,n;return(t=(n=c())==null?void 0:n[e])==null?l(e):t}function d(){var t;let n=(t=import.meta.env)==null?void 0:t.PLATFORM,i=a(n);if(i)return i;for(let t of r())if(u(t))return e(t)}function f(){return t(d())}function p(e){return o(d(),e)}function m(e){var t;let i=e==null?(t=import.meta.env)==null?void 0:t.PLATFORM:e,o=a(i);if(o){var s;return(s=u(n(o)))==null?o===`tt`?u(`wx`):void 0:s}for(let e of r()){let t=u(e);if(t)return t}}function h(){var e,t;if(!p(`globalPageStack`))return[];let n=c(),r=m(),i=(e=(t=r==null?void 0:r.getCurrentPages)==null?n==null?void 0:n.getCurrentPages:t)==null?typeof getCurrentPages<`u`?getCurrentPages:void 0:e;if(typeof i!=`function`)return[];try{let e=i.call(r);return Array.isArray(e)?e:[]}catch(e){return[]}}function g(){let e=c(),t=i(d()),n=e==null?void 0:e[t];return n&&typeof n==`object`?n:void 0}function _(){var e;return(e=m())==null?c():e}function v(){var e;return(e=_())==null||(e=e.console)==null?void 0:e.warn}function y(){if(!p(`globalRouterApi`))return;let e=m();if(!e)return;let t=Object.create(null);for(let n of s){let r=e[n];if(typeof r!=`function`)return;t[n]=(...t)=>r.apply(e,t)}return t}function b(){let e=g(),t=e==null?void 0:e.tabBar;if(!t||typeof t!=`object`||!(`list`in t)||!Array.isArray(t.list))return[];let n=[];for(let e of t.list){if(!e||typeof e!=`object`||!(`pagePath`in e))continue;let t=e.pagePath;typeof t==`string`&&t&&n.push(t.replace(/\.html$/,``))}return n}function x(){var e;return(e=m())==null?c():e}export{y as getCurrentMiniProgramGlobalRouter,g as getCurrentMiniProgramHostConfig,h as getCurrentMiniProgramPages,f as getCurrentMiniProgramRuntimeCapabilities,b as getCurrentMiniProgramTabBarPagePaths,m as getMiniProgramGlobalObject,v as getMiniProgramRuntimeConsoleWarn,_ as getMiniProgramRuntimeGlobalObject,x as getScopedSlotHostGlobalObject,d as resolveCurrentMiniProgramPlatform,p as supportsCurrentMiniProgramRuntimeCapability};
@@ -0,0 +1 @@
1
+ function e(e,t){let n=`on${e.replace(/(^|-)([a-z0-9])/g,(e,t,n)=>n.toUpperCase())}`,r=this.props[n];if(typeof r!=`function`)return;let i={};for(let[e,t]of Object.entries(this.props))e.startsWith(`data-`)&&(i[e.slice(5)]=t);let a={id:this.props.id,dataset:i};return r({type:e,detail:t,target:a,currentTarget:a})}function t(t){let{lifetimes:n={},properties:r={},observers:i={},pageLifetimes:a={},...o}=t,s={};for(let[e,t]of Object.entries(r))s[e]=t&&typeof t==`object`&&`value`in t?t.value:null;return{...o,props:s,methods:{triggerEvent:e,...o.methods},onInit(){var e;this.properties=this.props,(e=n.created)==null||e.call(this)},didMount(){var e,t;this.properties=this.props,(e=n.attached)==null||e.call(this),(t=n.ready)==null||t.call(this)},deriveDataFromProps(e){var t,n;let a=(t=this.properties)==null?this.props:t;this.properties=e;for(let t of Object.keys(r))if(!Object.is(a==null?void 0:a[t],e[t])){var o;(o=i[t])==null||o.call(this,e[t],a==null?void 0:a[t])}(n=i[`**`])==null||n.call(this,e)},didUnmount(){var e;(e=n.detached)==null||e.call(this)},pageEvents:{onShow(){var e;(e=a.show)==null||e.call(this)},onHide(){var e;(e=a.hide)==null||e.call(this)}}}}export{t as createAlipayComponentDefinition};
@@ -1 +1 @@
1
- import{getMiniProgramRuntimeGlobalObject as e,resolveCurrentMiniProgramPlatform as t}from"../../platform.mjs";import{WEAPP_VITE_STATEFUL_HMR_BRIDGE_KEY as n}from"@weapp-core/constants";function r(e){let{lifetimes:t={},methods:n={},observers:r,options:i,pageLifetimes:a={},properties:o,...s}=e,c=s.onLoad;return{...s,...n,onLoad(...e){var n,r;(n=t.created)==null||n.apply(this,e);let i=c==null?void 0:c.apply(this,e);return(r=t.attached)==null||r.apply(this,e),i},onShow(...e){var t;return(t=a.show)==null?void 0:t.apply(this,e)},onReady(...e){var n;return(n=t.ready)==null?void 0:n.apply(this,e)},onHide(...e){var t;return(t=a.hide)==null?void 0:t.apply(this,e)},onResize(...e){var t;return(t=a.resize)==null?void 0:t.apply(this,e)},onUnload(...e){var n;return(n=t.detached)==null?void 0:n.apply(this,e)},onError(...e){var n;return(n=t.error)==null?void 0:n.apply(this,e)}}}function i(i,a){var o;let s=(o=e())==null?void 0:o[n];if(a&&t()===`alipay`){let e=r(i);if(typeof(s==null?void 0:s.Page)==`function`){s.Page(e);return}Page(e);return}if(typeof(s==null?void 0:s.Component)==`function`){s.Component(i);return}Component(i)}export{i as registerNativeComponentDefinition};
1
+ import{getMiniProgramRuntimeGlobalObject as e,resolveCurrentMiniProgramPlatform as t}from"../../platform.mjs";import{createAlipayComponentDefinition as n}from"./alipay.mjs";import{WEAPP_VITE_STATEFUL_HMR_BRIDGE_KEY as r}from"@weapp-core/constants";function i(e){let{lifetimes:t={},methods:n={},observers:r,options:i,pageLifetimes:a={},properties:o,...s}=e,c=s.onLoad;return{...s,...n,onLoad(...e){var n,r;this.options=e[0]&&typeof e[0]==`object`?e[0]:{},(n=t.created)==null||n.apply(this,e);let i=c==null?void 0:c.apply(this,e);return(r=t.attached)==null||r.apply(this,e),i},onShow(...e){var t;return(t=a.show)==null?void 0:t.apply(this,e)},onReady(...e){var n;return(n=t.ready)==null?void 0:n.apply(this,e)},onHide(...e){var t;return(t=a.hide)==null?void 0:t.apply(this,e)},onResize(...e){var t;return(t=a.resize)==null?void 0:t.apply(this,e)},onUnload(...e){var n;return(n=t.detached)==null?void 0:n.apply(this,e)},onError(...e){var n;return(n=t.error)==null?void 0:n.apply(this,e)}}}function a(a,o){var s;let c=(s=e())==null?void 0:s[r];if(o&&t()===`alipay`){let e=i(a);if(typeof(c==null?void 0:c.Page)==`function`){c.Page(e);return}Page(e);return}let l=t()===`alipay`?n(a):a;if(typeof(c==null?void 0:c.Component)==`function`){c.Component(l);return}Component(l)}export{a as registerNativeComponentDefinition};
@@ -1 +1 @@
1
- function e(e,t,n,r){return function(...i){let a=[],o=[],s=e=>a.push(e),c=e=>o.push(e);r.forEach(n=>{try{n({name:t,store:e,args:i,after:s,onError:c})}catch(e){}});let l;try{l=n.apply(e,i)}catch(e){throw o.forEach(t=>t(e)),e}let u=e=>(a.forEach(t=>t(e)),e);return l&&typeof l.then==`function`?l.then(e=>u(e),e=>(o.forEach(t=>t(e)),Promise.reject(e))):u(l)}}export{e as wrapAction};
1
+ import{setActivePinia as e}from"./manager.mjs";function t(t,n,r,i,a){return function(...o){e(a);let s=/* @__PURE__ */ new Set,c=/* @__PURE__ */ new Set;i.forEach(e=>e({name:n,store:t,args:o,after:e=>s.add(e),onError:e=>c.add(e)}));let l;try{l=r.apply(this&&this.$id===t.$id?this:t,o)}catch(e){throw c.forEach(t=>t(e)),e}return l instanceof Promise?l.then(e=>(s.forEach(t=>t(e)),e)).catch(e=>(c.forEach(t=>t(e)),Promise.reject(e))):(s.forEach(e=>e(l)),l)}}export{t as wrapAction};
@@ -1 +1 @@
1
- import{batch as e}from"../reactivity/core.mjs";import{isObject as t,mergeShallow as n}from"./utils.mjs";function r(r,i,a,o){let s={$id:r};Object.defineProperty(s,"$state",{get(){return i},set(e){i&&t(e)&&(n(i,e),a(`patch object`))}}),s.$patch=t=>{let r=typeof t==`function`?`patch function`:`patch object`;e(()=>{let e=i==null?s:i;typeof t==`function`?t(e):n(e,t)}),a(r)},o&&(s.$reset=()=>{e(o),a(`patch object`)});let c=/* @__PURE__ */ new Set;s.$subscribe=(e,t)=>(c.add(e),()=>c.delete(e));let l=/* @__PURE__ */ new Set;return s.$onAction=e=>(l.add(e),()=>l.delete(e)),{api:s,subs:c,actionSubs:l}}export{r as createBaseApi};
1
+ import{nextTick as e,queueJob as t}from"../scheduler.mjs";import{onScopeDispose as n,queueBatchCallback as r,track as i}from"../reactivity/core.mjs";import{toRaw as a}from"../reactivity/reactive/shared.mjs";import{isRef as o}from"../reactivity/ref.mjs";import{watch as s}from"../reactivity/watch.mjs";import{mergeState as c}from"./view.mjs";import{addSubscription as l,noop as u}from"./subscriptions.mjs";import{MutationType as d}from"./types.mjs";function f(e,t,n=/* @__PURE__ */ new Map){var r;if(!e||typeof e!=`object`||t<=0||((r=n.get(e))==null?0:r)>=t)return;if(n.set(e,t),o(e)){f(e.value,t,n);return}if(e.__r_skip)return;let s=a(e);i(s,Symbol.iterator),Array.isArray(e)&&i(s,`length`);for(let r of Object.keys(s))f(e[r],t-1,n)}function p(i,a,o,p){let m=/* @__PURE__ */ new Set,h=/* @__PURE__ */ new Set,g=/* @__PURE__ */ new Set,_=/* @__PURE__ */ new Set,v=!1,y=!1,b=!1,x=!1,S=0,C=!1;o.run(()=>n(()=>{m.clear(),h.clear(),g.clear(),_.clear()}));function w(){v&&(y=!0,g.forEach(e=>e.pause()))}function T(e){let t=!1,n;if(g.forEach(r=>{if(_.has(r)===e)try{r.resume()}catch(e){t||(n=e),t=!0}}),t)throw n}let E=()=>T(!1);function D(){try{T(!0)}finally{y=!1,t(E);let n=++S;x=!0;let r=()=>{S===n&&(b=!0)};e().then(r,r)}}let O={$id:i,$patch(e){b=x=!1,w();try{typeof e==`function`?e(a.state.value[i]):c(a.state.value[i],e)}finally{w(),r(D)}let t=typeof e==`function`?{type:d.patchFunction,storeId:i}:{type:d.patchObject,storeId:i,payload:e};m.forEach(e=>e(t,a.state.value[i]))},$subscribe(e,t={}){if(m.has(e))return u;let n=u,r,c=l(m,e,t.detached,()=>{r&&(g.delete(r),_.delete(r)),n()});return r=o.run(()=>s(()=>{let e=a.state.value[i];return t.deep===!1?e:(f(e,typeof t.deep==`number`?t.deep:1/0),{state:e})},n=>{(t.flush===`sync`?x:b)&&e({type:d.direct,storeId:i},t.deep===!1?n:n.state)},{...t,deep:!1})),r&&(n=r,g.add(r),(t.flush===`sync`||t.scheduler)&&_.add(r),y&&r.pause()),c},$onAction(e,t){return l(h,e,t)},$dispose(){if(!C){C=!0;try{o.stop()}finally{m.clear(),h.clear(),a._s.get(i)===p()&&a._s.delete(i)}}}};return Object.defineProperty(O,"$state",{configurable:!0,get:()=>a.state.value[i],set:e=>O.$patch(t=>Object.assign(t,e))}),{api:O,actionSubscriptions:h,activateSubscriptions(){v=!0,b=x=!0}}}export{p as createBaseApi};
@@ -0,0 +1 @@
1
+ import{effectScope as e}from"../../reactivity/core.mjs";import{isReactive as t}from"../../reactivity/reactive.mjs";import{isRef as n}from"../../reactivity/ref.mjs";import{computed as r,isComputedRef as i}from"../../reactivity/computed.mjs";import{toRef as a}from"../../reactivity/toRefs.mjs";import{mergeState as o,storeView as s}from"../view.mjs";import{setActivePinia as c}from"../manager.mjs";import{wrapAction as l}from"../actions.mjs";import{createBaseApi as u}from"../base.mjs";function d(d,f,p,m){let h=p._e.run(()=>e());if(!h)throw Error(`不能在已释放的 Pinia 上创建 Store`);let g=Object.prototype.hasOwnProperty.call(p.state.value,d),_=typeof f==`function`,v={},y=s(v),b=u(d,p,h,()=>y);Object.defineProperties(v,Object.getOwnPropertyDescriptors(b.api)),p._s.set(d,y);try{return h.run(()=>{var e;if(!g){var u,h;p.state.value[d]=s(_||(u=(h=f.state)==null?void 0:h.call(f))==null?{}:u)}let x=p.state.value[d],S=_?f():{},C=_?{...m,actions:{}}:{...f},w=_?C.actions:(e=f.actions)==null?{}:e;if(!_){var T;for(let e of Object.keys(x))S[e]=a(x,e);for(let[e,t]of Object.entries((T=f.getters)==null?{}:T))S[e]=r(()=>(c(p),t.call(y,y)));Object.assign(S,w)}v.$reset=_?()=>{}:()=>y.$patch(e=>{var t,n;return Object.assign(e,(t=(n=f.state)==null?void 0:n.call(f))==null?{}:t)});for(let e of Object.keys(S)){let r=S[e];typeof r==`function`?(w[e]=r,v[e]=l(y,e,r,b.actionSubscriptions,p)):(_&&(n(r)&&!i(r)||t(r))&&(g&&(n(r)?r.value=x[e]:o(s(r),x[e])),x[e]=r),v[e]=r)}for(let e of p._p){var E;Object.assign(y,(E=e({store:y,pinia:p,app:p._a,options:C}))==null?{}:E)}}),b.activateSubscriptions(),y}catch(e){try{h.stop()}catch(e){}throw p._s.get(d)===y&&p._s.delete(d),g||delete p.state.value[d],e}}export{d as createStoreInstance};
@@ -1,18 +1,7 @@
1
- import { ActionSubscriber, DefineStoreOptions, OptionsStore, StoreSubscribeOptions, SubscriptionCallback } from "./types.mjs";
1
+ import { DefineStoreOptions, OptionsStore, SetupStore, StoreDefinition, StoreSetupOptions } from "./types.mjs";
2
2
  //#region src/store/define.d.ts
3
- type SetupDefinition<T> = () => T;
4
- /**
5
- * @description 定义一个 setup 风格的 store
6
- */
7
- export declare function defineStore<T extends Record<string, any>>(id: string, setup: SetupDefinition<T>): () => T & {
8
- $id: string;
9
- $patch: (patch: Record<string, any> | ((state: any) => void)) => void;
10
- $reset: () => void;
11
- $subscribe: (cb: SubscriptionCallback<any>, opts?: StoreSubscribeOptions) => () => void;
12
- $onAction: (cb: ActionSubscriber<any>) => () => void;
13
- };
14
- /**
15
- * @description 定义一个 options 风格的 store
16
- */
17
- export declare function defineStore<S extends Record<string, any>, G extends Record<string, any>, A extends Record<string, any>>(id: string, options: DefineStoreOptions<S, G, A>): () => OptionsStore<S, G, A>;
3
+ /** 定义 Setup Store,返回值在实例上自动解包 ref。 */
4
+ export declare function defineStore<Id extends string, T extends Record<string, any>>(id: Id, setup: () => T, options?: StoreSetupOptions): StoreDefinition<Id, SetupStore<Id, T>>;
5
+ /** 定义 Options Store,共享 state/getters/actions 的 this 类型。 */
6
+ export declare function defineStore<Id extends string, S extends Record<string, any> = Record<never, never>, G extends Record<string, any> = Record<never, never>, A extends Record<string, any> = Record<never, never>>(id: Id, options: DefineStoreOptions<S, G, A>): StoreDefinition<Id, OptionsStore<S, G, A, Id>>;
18
7
  //#endregion
@@ -1 +1 @@
1
- import{effectScope as e}from"../reactivity/core.mjs";import{createOptionsStyleStore as t}from"./define/optionsStyle.mjs";import{createSetupStyleStore as n}from"./define/setupStyle.mjs";import{createStore as r}from"./manager.mjs";function i(i,a){let o,s=!1,c=r._instance;return function(){return s&&o?o:(s=!0,o=e(!0).run(()=>typeof a==`function`?n(i,a,c):t(i,a,c)),o)}}export{i as defineStore};
1
+ import{getActivePinia as e,setActivePinia as t}from"./manager.mjs";import{createStoreInstance as n}from"./define/create.mjs";function r(r,i,a){let o=o=>{let s=o==null?e():o;if(!s)throw Error(`没有活动的 Pinia,请先调用 app.use(createPinia()) 或显式传入 Pinia`);return t(s),s._s.has(r)||n(r,i,s,a),s._s.get(r)};return o.$id=r,o}export{r as defineStore};
@@ -1,7 +1,15 @@
1
- import { StoreManager } from "./types.mjs";
1
+ import { Pinia } from "./types.mjs";
2
2
  //#region src/store/manager.d.ts
3
- /**
4
- * @description 创建 store 管理器(插件与共享实例入口)
5
- */
6
- export declare function createStore(): StoreManager;
3
+ /** 设置组件外使用的活动 Store 管理器。 */
4
+ export declare function setActivePinia(pinia: Pinia): Pinia;
5
+ export declare function setActivePinia(pinia: undefined): undefined;
6
+ export declare function setActivePinia(pinia: Pinia | undefined): Pinia | undefined;
7
+ /** 优先读取当前应用的注入上下文,再读取活动管理器。 */
8
+ export declare function getActivePinia(): Pinia | undefined;
9
+ /** 创建独立的状态树与作用域;安装或显式激活后再使用 Store。 */
10
+ export declare function createPinia(): Pinia;
11
+ /** 保留原有创建名称,与推荐的 createPinia 是同一个函数。 */
12
+ export declare const createStore: typeof createPinia;
13
+ /** 释放整个管理器;与单个 Store 的 $dispose 不同,此操作也清除状态。 */
14
+ export declare function disposePinia(pinia: Pinia): void;
7
15
  //#endregion
@@ -1 +1 @@
1
- function e(){let t={_stores:/* @__PURE__ */ new Map,_plugins:[],install(e){},use(e){return typeof e==`function`&&t._plugins.push(e),t}};return e._instance=t,t}export{e as createStore};
1
+ import{effectScope as e}from"../reactivity/core.mjs";import{markRaw as t}from"../reactivity/reactive.mjs";import{ref as n}from"../reactivity/ref.mjs";import{hasInjectionContext as r,inject as i}from"../runtime/provide.mjs";import{storeView as a}from"./view.mjs";const o=Symbol(`wevu.pinia`);let s;function c(e){return s=e,e}function l(){return r()&&i(o,void 0)||s}function u(){let r=e(!0),i=[],s=[],l=/* @__PURE__ */ new Map,u=t({state:r.run(()=>n(a({}))),_e:r,_s:l,_p:i,_a:null,_stores:l,_plugins:i,install(e){c(u),u._a=e,e.provide(o,u),e.config.globalProperties.$pinia=u,i.push(...s.splice(0))},use(e){return(u._a?i:s).push(e),u}});return u}const d=u;function f(e){try{e._e.stop()}finally{e._s.clear(),e._p.splice(0),e.state.value={},e._a=null}}export{u as createPinia,d as createStore,f as disposePinia,l as getActivePinia,c as setActivePinia};
@@ -1,12 +1,10 @@
1
1
  import { Ref } from "../reactivity/ref.mjs";
2
+ import { ComputedRef } from "../reactivity/computed.mjs";
2
3
  import "../reactivity/index.mjs";
4
+ import { StoreApi } from "./types.mjs";
3
5
  //#region src/store/storeToRefs.d.ts
4
- /**
5
- * @description storeToRefs 返回类型推导
6
- */
7
- export type StoreToRefsResult<T extends Record<string, any>> = { [K in keyof T]: T[K] extends ((...args: any[]) => any) ? T[K] : T[K] extends Ref<infer V> ? Ref<V> : Ref<T[K]>; };
8
- /**
9
- * @description 将 store 状态转换为 Ref
10
- */
6
+ type IfEquals<X, Y, Yes, No> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? Yes : No;
7
+ /** 仅提取状态与 getter,保留 getter 的只读类型。 */
8
+ export type StoreToRefsResult<T extends Record<string, any>> = { [K in keyof T as K extends keyof StoreApi<any, any, any, any> ? never : T[K] extends ((...args: any[]) => any) ? never : K]: IfEquals<{ [P in K]: T[P]; }, { -readonly [P in K]: T[P]; }, Ref<T[K]>, ComputedRef<T[K]>>; };
11
9
  export declare function storeToRefs<T extends Record<string, any>>(store: T): StoreToRefsResult<T>;
12
10
  //#endregion