@lumal/core 0.0.2-beta → 0.0.3-beta

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 (65) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +9 -0
  3. package/dist/auth.cjs +1 -1
  4. package/dist/auth.js +13 -29
  5. package/dist/{components-DVnNb4-n.js → components-DCp2KGvo.js} +1 -1
  6. package/dist/{components-CYwpPqgm.cjs → components-oqKxhgFp.cjs} +1 -1
  7. package/dist/components.cjs +1 -1
  8. package/dist/components.js +3 -3
  9. package/dist/{composables-DrGkFGvy.js → composables-BxZG0_RZ.js} +15 -9
  10. package/dist/composables-Dsl-todB.cjs +1 -0
  11. package/dist/composables.cjs +1 -1
  12. package/dist/composables.js +1 -1
  13. package/dist/context-Bdx-ZJbt.js +13 -0
  14. package/dist/context-CWQ1OO16.cjs +1 -0
  15. package/dist/core.css +1 -1
  16. package/dist/createLumalApp-BxQL77Qt.js +38 -0
  17. package/dist/createLumalApp-C5o7gAlu.cjs +1 -0
  18. package/dist/{dictionary-CKEqfCLG.js → dictionary-DnRiNaKi.js} +1 -1
  19. package/dist/{dictionary-BtPCmrLY.cjs → dictionary-Dt70z10M.cjs} +1 -1
  20. package/dist/dictionary.cjs +1 -1
  21. package/dist/dictionary.js +2 -2
  22. package/dist/index.cjs +1 -1
  23. package/dist/index.js +37 -80
  24. package/dist/{layout-CuuRkGBF.js → layout-B7yJhQXN.js} +450 -416
  25. package/dist/layout-BgyM9WJi.cjs +1 -0
  26. package/dist/layout.cjs +1 -1
  27. package/dist/layout.js +1 -1
  28. package/dist/minimal.cjs +1 -0
  29. package/dist/minimal.js +10 -0
  30. package/dist/{permission-CCkqvnWg.js → permission-CHw9eXd8.js} +24 -34
  31. package/dist/permission-CoqteYAi.cjs +1 -0
  32. package/dist/permission.cjs +1 -1
  33. package/dist/permission.js +4 -3
  34. package/dist/request.cjs +1 -1
  35. package/dist/request.js +98 -78
  36. package/dist/src/app/createLumalAdmin.d.ts +1 -1
  37. package/dist/src/app/createLumalAdmin.d.ts.map +1 -1
  38. package/dist/src/app/createLumalApp.d.ts +7 -0
  39. package/dist/src/app/createLumalApp.d.ts.map +1 -0
  40. package/dist/src/app/types.d.ts +5 -0
  41. package/dist/src/app/types.d.ts.map +1 -1
  42. package/dist/src/auth/createAuthSession.d.ts.map +1 -1
  43. package/dist/src/dictionary/store.d.ts.map +1 -1
  44. package/dist/src/layout/LumalGlobalSearch.vue.d.ts.map +1 -1
  45. package/dist/src/layout/LumalLayout.vue.d.ts +6 -2
  46. package/dist/src/layout/LumalLayout.vue.d.ts.map +1 -1
  47. package/dist/src/layout/LumalRouterView.vue.d.ts +2 -0
  48. package/dist/src/layout/LumalRouterView.vue.d.ts.map +1 -1
  49. package/dist/src/minimal/index.d.ts +5 -0
  50. package/dist/src/minimal/index.d.ts.map +1 -0
  51. package/dist/src/request/client.d.ts.map +1 -1
  52. package/dist/src/request/types.d.ts +8 -2
  53. package/dist/src/request/types.d.ts.map +1 -1
  54. package/dist/src/utils/index.d.ts +1 -1
  55. package/dist/src/utils/index.d.ts.map +1 -1
  56. package/dist/src/utils/storage.d.ts +2 -0
  57. package/dist/src/utils/storage.d.ts.map +1 -1
  58. package/dist/storage-CCBa7Qh8.cjs +1 -0
  59. package/dist/storage-CorgkMJU.js +41 -0
  60. package/dist/utils.cjs +1 -1
  61. package/dist/utils.js +32 -54
  62. package/package.json +9 -3
  63. package/dist/composables-edipbw70.cjs +0 -1
  64. package/dist/layout-7345ntRV.cjs +0 -1
  65. package/dist/permission-6sXtjGMS.cjs +0 -1
package/dist/request.js CHANGED
@@ -73,113 +73,132 @@ function d(e, n) {
73
73
  originalError: e
74
74
  });
75
75
  }
76
- var f = 0;
77
- function p(e) {
76
+ var f = 0, p = 0;
77
+ function m(e) {
78
78
  if (e.requestId) return typeof e.requestId == "function" ? e.requestId() : (f += 1, `lumal-${f.toString(36)}-${f}`);
79
79
  }
80
- function m(n = {}) {
81
- let a = n.fetch ?? globalThis.fetch, l = /* @__PURE__ */ new Set(), f = n.cache ?? e(), m, h = !1;
82
- async function g(e, g = {}) {
83
- let _ = g.method ?? "GET", v = i(r(n.baseURL, e), g.query), y = p(n), b = g.cache, x = b?.enabled === !0, S = b?.cache ?? f, C = b?.key ?? `${_}:${v}`;
84
- if (x && S.has(C)) return S.get(C);
85
- let w;
80
+ function h(n = {}) {
81
+ let a = n.fetch ?? globalThis.fetch, l = /* @__PURE__ */ new Set(), f = n.cache ?? e(), h = globalThis.crypto?.randomUUID?.() ?? `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${++p}`, g = /* @__PURE__ */ new Map(), _ = 0, v = 0, y, b, x = !1;
82
+ function S() {
83
+ v += 1, C();
84
+ }
85
+ function C() {
86
+ _ += 1, g.forEach((e, t) => e.forEach((e) => t.delete(e))), g.clear();
87
+ }
88
+ async function w(e, p = {}) {
89
+ let w = v, T = p.method ?? "GET", E = i(r(n.baseURL, e), p.query), D = m(n), O = p.cache, k = O?.enabled === !0 && (T === "GET" || !!O.key), A = O?.cache ?? f, j;
86
90
  if (n.duplicateSubmit) {
87
- let e = new Headers(g.headers), n = o(_, g.body, e);
88
- if (w = `${_}:${v}:${typeof n == "string" ? n : ""}`, l.has(w)) throw new t("Duplicate request", {
91
+ let e = new Headers(p.headers), n = o(T, p.body, e);
92
+ if (j = `${T}:${E}:${typeof n == "string" ? n : ""}`, l.has(j)) throw new t("Duplicate request", {
89
93
  code: "DUPLICATE_REQUEST",
90
94
  kind: "duplicate"
91
95
  });
92
- l.add(w);
96
+ l.add(j);
93
97
  }
94
98
  try {
95
- return await T(0);
99
+ return await M(0);
96
100
  } finally {
97
- w && l.delete(w);
101
+ j && l.delete(j);
98
102
  }
99
- async function T(e) {
100
- let r = new Headers(g.headers), i = await c(r, n);
101
- y && r.set(n.requestIdHeader ?? "X-Request-Id", y);
103
+ async function M(e) {
104
+ let r = new Headers(p.headers), i = await c(r, n);
105
+ D && r.set(n.requestIdHeader ?? "X-Request-Id", D);
102
106
  let l = {
103
- body: o(_, g.body, r),
107
+ body: o(T, p.body, r),
104
108
  headers: r,
105
- method: _,
106
- signal: g.signal
109
+ method: T,
110
+ signal: p.signal
107
111
  };
108
112
  await n.onRequest?.({
109
113
  init: l,
110
- requestId: y,
111
- url: v
114
+ requestId: D,
115
+ url: E
112
116
  });
113
- let u;
117
+ let u = JSON.stringify([new Headers(l.headers).get("Authorization"), n.getCacheScope?.()]);
118
+ u !== y && (C(), y = u);
119
+ let f = _, m = JSON.stringify([
120
+ h,
121
+ f,
122
+ O?.scope,
123
+ O?.key ?? `${T}:${E}`
124
+ ]);
125
+ if (p.signal?.aborted) throw d(p.signal.reason, p.signal);
126
+ if (k && w === v && A.has(m)) return A.get(m);
127
+ let b;
114
128
  try {
115
- u = await a(v, l);
129
+ b = await a(E, l);
116
130
  } catch (e) {
117
- let t = d(e, g.signal);
131
+ let t = d(e, p.signal);
118
132
  throw await n.onRequestError?.({
119
133
  error: t,
120
134
  init: l,
121
- requestId: y,
122
- url: v
135
+ requestId: D,
136
+ url: E
123
137
  }), t;
124
138
  }
125
- let f;
139
+ let S;
126
140
  try {
127
- f = await s(u);
141
+ S = await s(b);
128
142
  } catch (e) {
129
143
  let n = new t("响应数据解析失败", {
130
144
  kind: "http",
131
145
  originalError: e,
132
- response: u,
133
- status: u.status
146
+ response: b,
147
+ status: b.status
134
148
  });
135
- throw await D(n, l, u), n;
149
+ throw await P(n, l, b), n;
136
150
  }
137
- let p = {
151
+ let j = {
138
152
  attempt: e,
139
- data: f,
153
+ data: S,
140
154
  init: l,
141
- requestId: y,
142
- response: u,
143
- url: v
155
+ requestId: D,
156
+ response: b,
157
+ url: E
144
158
  };
145
- if (u.status === 401) return E(new t(u.statusText || "会话已过期", {
146
- data: f,
159
+ if (b.status === 401) return N(new t(b.statusText || "会话已过期", {
160
+ data: S,
147
161
  kind: "session",
148
- response: u,
149
- status: u.status
150
- }), p, i, e);
151
- if (!u.ok) {
152
- let e = new t(u.statusText || `HTTP ${u.status}`, {
153
- data: f,
162
+ response: b,
163
+ status: b.status
164
+ }), j, i, e);
165
+ if (!b.ok) {
166
+ let e = new t(b.statusText || `HTTP ${b.status}`, {
167
+ data: S,
154
168
  kind: "http",
155
- response: u,
156
- status: u.status
169
+ response: b,
170
+ status: b.status
157
171
  });
158
- throw await D(e, l, u), e;
172
+ throw await P(e, l, b), e;
159
173
  }
160
174
  try {
161
- let e = n.onResponse ? await n.onResponse(p) : f;
162
- return h = !1, x && S.set(C, e), e;
175
+ let e = n.onResponse ? await n.onResponse(j) : S;
176
+ if (x = !1, k && f === _ && w === v) {
177
+ A.set(m, e);
178
+ let t = g.get(A) ?? /* @__PURE__ */ new Set();
179
+ t.add(m), g.set(A, t);
180
+ }
181
+ return e;
163
182
  } catch (n) {
164
- if (n instanceof t && n.kind === "session") return E(n, p, i, e);
183
+ if (n instanceof t && n.kind === "session") return N(n, j, i, e);
165
184
  let r = n instanceof t ? n : new t(n instanceof Error ? n.message : "业务响应处理失败", {
166
- data: f,
185
+ data: S,
167
186
  kind: "business",
168
187
  originalError: n,
169
- response: u,
170
- status: u.status
188
+ response: b,
189
+ status: b.status
171
190
  });
172
- throw await D(r, l, u), r;
191
+ throw await P(r, l, b), r;
173
192
  }
174
193
  }
175
- async function E(e, r, i, a) {
176
- if (a === 0 && u(_, g) && n.authRefresh) {
194
+ async function N(e, r, i, a) {
195
+ if (a === 0 && u(T, p) && n.authRefresh) {
177
196
  let o = await n.getToken?.();
178
- if (i && o && o !== i) return T(a + 1);
197
+ if (i && o && o !== i) return M(a + 1);
179
198
  try {
180
- return m ||= n.authRefresh.refresh(r).finally(() => {
181
- m = void 0;
182
- }), await m, h = !1, T(a + 1);
199
+ return b ||= n.authRefresh.refresh(r).finally(() => {
200
+ b = void 0;
201
+ }), await b, x = !1, M(a + 1);
183
202
  } catch (n) {
184
203
  e = new t(e.message, {
185
204
  code: e.code,
@@ -191,58 +210,59 @@ function m(n = {}) {
191
210
  });
192
211
  }
193
212
  }
194
- throw h || (h = !0, await n.onSessionExpired?.(r)), await D(e, r.init, r.response), e;
213
+ throw x || (x = !0, S(), await n.onSessionExpired?.(r)), await P(e, r.init, r.response), e;
195
214
  }
196
- async function D(e, t, r) {
215
+ async function P(e, t, r) {
197
216
  await n.onResponseError?.({
198
217
  error: e,
199
218
  init: t,
200
- requestId: y,
219
+ requestId: D,
201
220
  response: r,
202
- url: v
221
+ url: E
203
222
  });
204
223
  }
205
224
  }
206
- function _(e, t, n = {}) {
225
+ function T(e, t, n = {}) {
207
226
  let { data: r, fileField: i = "file", ...a } = n, o = new FormData();
208
227
  return (Array.isArray(t) ? t : [t]).forEach((e) => {
209
228
  o.append(i, e);
210
229
  }), r && Object.entries(r).forEach(([e, t]) => {
211
230
  t != null && o.append(e, String(t));
212
- }), g(e, {
231
+ }), w(e, {
213
232
  ...a,
214
233
  body: o,
215
234
  method: "POST"
216
235
  });
217
236
  }
218
237
  return {
219
- delete: (e, t) => g(e, {
238
+ clearCache: S,
239
+ delete: (e, t) => w(e, {
220
240
  ...t,
221
241
  method: "DELETE"
222
242
  }),
223
- get: (e, t) => g(e, {
243
+ get: (e, t) => w(e, {
224
244
  ...t,
225
245
  method: "GET"
226
246
  }),
227
- patch: (e, t) => g(e, {
247
+ patch: (e, t) => w(e, {
228
248
  ...t,
229
249
  method: "PATCH"
230
250
  }),
231
- post: (e, t) => g(e, {
251
+ post: (e, t) => w(e, {
232
252
  ...t,
233
253
  method: "POST"
234
254
  }),
235
- put: (e, t) => g(e, {
255
+ put: (e, t) => w(e, {
236
256
  ...t,
237
257
  method: "PUT"
238
258
  }),
239
- request: g,
240
- upload: _
259
+ request: w,
260
+ upload: T
241
261
  };
242
262
  }
243
263
  //#endregion
244
264
  //#region src/request/standard.ts
245
- function h(e, n = {}) {
265
+ function g(e, n = {}) {
246
266
  let r = n.fieldNames?.code ?? "code", i = n.fieldNames?.data ?? "data", a = n.fieldNames?.message ?? "message", o = n.successCodes ?? [0, 200], s = n.sessionExpiredCodes ?? [], c = e[r];
247
267
  if (c === void 0) return e;
248
268
  if (!o.includes(c)) {
@@ -257,10 +277,10 @@ function h(e, n = {}) {
257
277
  let l = e[i];
258
278
  return n.transform ? n.transform(l, e) : l;
259
279
  }
260
- function g(e = {}) {
261
- return (t) => h(t.data, e);
280
+ function _(e = {}) {
281
+ return (t) => g(t.data, e);
262
282
  }
263
- function _(e, n = {}) {
283
+ function v(e, n = {}) {
264
284
  let r = n.parseResponse ? n.parseResponse(e) : e;
265
285
  if (!r || typeof r != "object" || Array.isArray(r)) throw new t("分页响应格式不正确", {
266
286
  data: e,
@@ -277,4 +297,4 @@ function _(e, n = {}) {
277
297
  };
278
298
  }
279
299
  //#endregion
280
- export { t as RequestError, e as createRequestCache, m as createRequestClient, g as createStandardResponseParser, _ as parsePageResult, h as parseStandardResponse };
300
+ export { t as RequestError, e as createRequestCache, h as createRequestClient, _ as createStandardResponseParser, v as parsePageResult, g as parseStandardResponse };
@@ -1,4 +1,4 @@
1
1
  import type { CreateLumalAdminOptions, LumalAdminInstance } from './types';
2
- /***********************应用创建*********************/
2
+ /***********************便利型应用入口*********************/
3
3
  export declare function createLumalAdmin(options: CreateLumalAdminOptions): LumalAdminInstance;
4
4
  //# sourceMappingURL=createLumalAdmin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createLumalAdmin.d.ts","sourceRoot":"","sources":["../../../src/app/createLumalAdmin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAEnB,MAAM,SAAS,CAAA;AAiFhB,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,kBAAkB,CA4CrF"}
1
+ {"version":3,"file":"createLumalAdmin.d.ts","sourceRoot":"","sources":["../../../src/app/createLumalAdmin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAI1E,qDAAqD;AAErD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,kBAAkB,CAgBrF"}
@@ -0,0 +1,7 @@
1
+ import type { Component } from 'vue';
2
+ import type { CreateLumalAdminOptions, LumalAdminInstance } from './types';
3
+ /***********************应用创建*********************/
4
+ export declare function createLumalApp(resolvedOptions: Omit<CreateLumalAdminOptions, 'components'> & {
5
+ components?: false | Record<string, Component>;
6
+ }): LumalAdminInstance;
7
+ //# sourceMappingURL=createLumalApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLumalApp.d.ts","sourceRoot":"","sources":["../../../src/app/createLumalApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAEnB,MAAM,SAAS,CAAA;AAqChB,kDAAkD;AAClD,wBAAgB,cAAc,CAC5B,eAAe,EAAE,IAAI,CAAC,uBAAuB,EAAE,YAAY,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAAE,GAChH,kBAAkB,CA6CpB"}
@@ -38,4 +38,9 @@ export interface LumalAdminInstance extends LumalAdminContext {
38
38
  mount: (container: Element | string) => Promise<ReturnType<App['mount']>>;
39
39
  use: (plugin: Plugin, ...options: unknown[]) => LumalAdminInstance;
40
40
  }
41
+ /** 独立轻入口不引用默认 UI 注册表,只接受显式组件。 */
42
+ export type CreateLumalMinimalOptions = Omit<CreateLumalAdminOptions, 'components' | 'preset'> & {
43
+ components?: Record<string, Component>;
44
+ preset?: 'minimal';
45
+ };
41
46
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/app/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,SAAS,CAAA;AAE1D,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IACvC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9B,CAAA;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,uBAAuB,CAAA;AAEpE,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAEpF,qDAAqD;AACrD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,GAAG,CAAA;IACR,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,uBAAuB,CAAA;IACpC,UAAU,CAAC,EAAE,KAAK,GAAG,uBAAuB,CAAA;IAC5C,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;KAC5B,CAAA;IACD,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,aAAa,EAAE,SAAS,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7D;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACzE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,kBAAkB,CAAA;CACnE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/app/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,SAAS,CAAA;AAE1D,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IACvC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9B,CAAA;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,uBAAuB,CAAA;AAEpE,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAEpF,qDAAqD;AACrD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,GAAG,CAAA;IACR,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,uBAAuB,CAAA;IACpC,UAAU,CAAC,EAAE,KAAK,GAAG,uBAAuB,CAAA;IAC5C,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;KAC5B,CAAA;IACD,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,aAAa,EAAE,SAAS,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7D;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACzE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,kBAAkB,CAAA;CACnE;AAED,iCAAiC;AACjC,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,uBAAuB,EAAE,YAAY,GAAG,QAAQ,CAAC,GAAG;IAC/F,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACtC,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createAuthSession.d.ts","sourceRoot":"","sources":["../../../src/auth/createAuthSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAmB,kBAAkB,EAAgB,MAAM,SAAS,CAAA;AAwC7F,kDAAkD;AAClD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,WAAW,CAuE/E"}
1
+ {"version":3,"file":"createAuthSession.d.ts","sourceRoot":"","sources":["../../../src/auth/createAuthSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAmB,kBAAkB,EAAgB,MAAM,SAAS,CAAA;AAiB7F,kDAAkD;AAClD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,WAAW,CAuE/E"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/dictionary/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AASxF,kDAAkD;AAClD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CA6E3F"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/dictionary/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AASxF,kDAAkD;AAClD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CA8F3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"LumalGlobalSearch.vue.d.ts","sourceRoot":"","sources":["../../../src/layout/LumalGlobalSearch.vue"],"names":[],"mappings":"AAwbA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AASlD,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAC;AAkDF,iBAAS,UAAU,IAAI,IAAI,CAK1B;AAED,iBAAS,WAAW,CAAC,YAAY,UAAO,GAAG,IAAI,CAK9C;AA2UD,QAAA,MAAM,YAAY;;;;;;;;iBA3YF,MAAM;WADZ,mBAAmB,EAAE;gBADhB,MAAM;cAGR,OAAO;6EA+YlB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"LumalGlobalSearch.vue.d.ts","sourceRoot":"","sources":["../../../src/layout/LumalGlobalSearch.vue"],"names":[],"mappings":"AAqeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AASlD,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAC;AAoDF,iBAAS,UAAU,IAAI,IAAI,CAQ1B;AAED,iBAAS,WAAW,CAAC,YAAY,UAAO,GAAG,IAAI,CAS9C;AAiXD,QAAA,MAAM,YAAY;;;;;;;;iBA1bF,MAAM;WADZ,mBAAmB,EAAE;gBADhB,MAAM;cAGR,OAAO;6EA8blB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -21,14 +21,16 @@ type __VLS_Props = {
21
21
  tabStorageKey?: string;
22
22
  /** 解析当前路由是否应保留为可恢复标签(路由驱动模式下用于持久化恢复过滤)。 */
23
23
  isValidTabPath?: (path: string) => boolean;
24
- /** 标签在新窗口打开时生成的地址,默认为路由 fullPath。 */
24
+ /** 标签在新窗口打开时生成的地址,默认使用包含 history/base 的路由 href。 */
25
25
  resolveTabUrl?: (path: string) => string;
26
26
  };
27
27
  type __VLS_ModelProps = {
28
28
  'activeTabPath'?: string;
29
29
  };
30
30
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
31
- declare var __VLS_18: {}, __VLS_44: {}, __VLS_110: {};
31
+ declare var __VLS_18: {}, __VLS_44: {}, __VLS_110: {
32
+ tabs: LumalLayoutTabItem[];
33
+ };
32
34
  type __VLS_Slots = {} & {
33
35
  logo?: (props: typeof __VLS_18) => any;
34
36
  } & {
@@ -58,6 +60,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
58
60
  tabReorder: (from: string, to: string) => any;
59
61
  tabMaximize: (maximized: boolean) => any;
60
62
  tabNewWindow: (path: string) => any;
63
+ tabsChange: (tabs: LumalLayoutTabItem[]) => any;
61
64
  "update:activeTabPath": (value: string | undefined) => any;
62
65
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
63
66
  onMenuSelect?: ((path: string) => any) | undefined;
@@ -74,6 +77,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
74
77
  onTabReorder?: ((from: string, to: string) => any) | undefined;
75
78
  onTabMaximize?: ((maximized: boolean) => any) | undefined;
76
79
  onTabNewWindow?: ((path: string) => any) | undefined;
80
+ onTabsChange?: ((tabs: LumalLayoutTabItem[]) => any) | undefined;
77
81
  "onUpdate:activeTabPath"?: ((value: string | undefined) => any) | undefined;
78
82
  }>, {
79
83
  showHeader: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"LumalLayout.vue.d.ts","sourceRoot":"","sources":["../../../src/layout/LumalLayout.vue"],"names":[],"mappings":"AAw7BA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,KAAK,CAAA;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAwChB,kDAAkD;AAClD,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B,WAAW,EAAE,gBAAgB,CAAA;IAC7B,IAAI,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,yBAAyB,CAAA;IAC1C,gBAAgB,CAAC,EAAE,2BAA2B,CAAA;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAChC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IAC1C,qCAAqC;IACrC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CACzC,CAAC;AAqmBF,KAAK,gBAAgB,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAiBF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AA+hBxD,QAAA,IAAuB,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAyB,SAAS,IAAa,CAAE;AAChH,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC1C;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACnD;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,SAAS,KAAK,GAAG,CAAA;CAAE,CAAC;AAQjD,QAAA,MAAM,UAAU;4BA/kBkC,WAAW,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA1lB1D,OAAO;oBAVH,MAAM;WAHf,mBAAmB,EAAE;UAEtB,kBAAkB,EAAE;mBAEX,MAAM;iBACR,OAAO;qBAGH,MAAM;eAEZ,kBAAkB,EAAE;kBACjB,MAAM;mBAGL,MAAM;6EA6qCtB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"LumalLayout.vue.d.ts","sourceRoot":"","sources":["../../../src/layout/LumalLayout.vue"],"names":[],"mappings":"AA67BA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,KAAK,CAAA;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAwChB,kDAAkD;AAClD,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B,WAAW,EAAE,gBAAgB,CAAA;IAC7B,IAAI,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,yBAAyB,CAAA;IAC1C,gBAAgB,CAAC,EAAE,2BAA2B,CAAA;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAChC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IAC1C,mDAAmD;IACnD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CACzC,CAAC;AA0mBF,KAAK,gBAAgB,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAiBF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAgiBxD,QAAA,IAAuB,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAyB,SAAS;;CAAa,CAAE;AAChH,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC1C;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACnD;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,SAAS,KAAK,GAAG,CAAA;CAAE,CAAC;AAQjD,QAAA,MAAM,UAAU;4BAhlBkC,WAAW,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA/lB1D,OAAO;oBAVH,MAAM;WAHf,mBAAmB,EAAE;UAEtB,kBAAkB,EAAE;mBAEX,MAAM;iBACR,OAAO;qBAGH,MAAM;eAEZ,kBAAkB,EAAE;kBACjB,MAAM;mBAGL,MAAM;6EAmrCtB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -7,6 +7,8 @@ type __VLS_Props = {
7
7
  loading?: boolean;
8
8
  cache?: boolean;
9
9
  cacheMax?: number;
10
+ /** 当前允许保留的视图 key。移除 key 会销毁对应实例;刷新时替换该标签的 key。 */
11
+ cacheKeys?: (number | string)[];
10
12
  };
11
13
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
12
14
  getRouterViewElement: () => HTMLElement | null;
@@ -1 +1 @@
1
- {"version":3,"file":"LumalRouterView.vue.d.ts","sourceRoot":"","sources":["../../../src/layout/LumalRouterView.vue"],"names":[],"mappings":"AAuQA,kDAAkD;AAClD,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAC;AAyQF,QAAA,MAAM,YAAY;;;aA5QN,OAAO;cADN,OAAO;gBAFL,OAAO;aADV,MAAM,GAAG,MAAM;oBAER,MAAM;WAGf,OAAO;cACJ,MAAM;6EA8QjB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"LumalRouterView.vue.d.ts","sourceRoot":"","sources":["../../../src/layout/LumalRouterView.vue"],"names":[],"mappings":"AAuRA,kDAAkD;AAClD,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kDAAkD;IAClD,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAChC,CAAC;AA8QF,QAAA,MAAM,YAAY;;;aAnRN,OAAO;cADN,OAAO;gBAFL,OAAO;aADV,MAAM,GAAG,MAAM;oBAER,MAAM;WAGf,OAAO;cACJ,MAAM;6EAqRjB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,5 @@
1
+ import type { CreateLumalMinimalOptions, LumalAdminInstance } from '../app/types';
2
+ /***********************无默认 UI 的启动入口*********************/
3
+ export declare function createLumalAdmin(options: CreateLumalMinimalOptions): LumalAdminInstance;
4
+ export type { CreateLumalMinimalOptions, LumalAdminContext, LumalAdminInstance } from '../app/types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/minimal/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGjF,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CAEvF;AAED,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/request/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,oBAAoB,EAMrB,MAAM,SAAS,CAAA;AA+JhB,mDAAmD;AACnD,wBAAgB,mBAAmB,CAAC,aAAa,GAAE,oBAAyB,GAAG,aAAa,CAwP3F"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/request/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,oBAAoB,EAMrB,MAAM,SAAS,CAAA;AAgKhB,mDAAmD;AACnD,wBAAgB,mBAAmB,CAAC,aAAa,GAAE,oBAAyB,GAAG,aAAa,CAiS3F"}
@@ -41,10 +41,12 @@ export interface RequestCache {
41
41
  export interface RequestCacheOptions {
42
42
  /** 缓存存储,默认内存 Map 实现。 */
43
43
  cache?: RequestCache;
44
- /** 是否对该请求启用缓存,默认仅 GET 且显式开启。 */
44
+ /** 是否对该请求启用缓存,默认关闭;非 GET 必须同时指定 key。 */
45
45
  enabled?: boolean;
46
- /** 自定义缓存 key,默认 `method:url`。 */
46
+ /** 自定义缓存 key,默认 `method:url`;调用方负责区分非 GET 请求体。 */
47
47
  key?: string;
48
+ /** 请求级租户/业务作用域,与客户端作用域和认证身份共同隔离缓存。 */
49
+ scope?: string;
48
50
  }
49
51
  /***********************客户端选项*********************/
50
52
  export interface RequestClientOptions<TData = unknown> {
@@ -61,6 +63,8 @@ export interface RequestClientOptions<TData = unknown> {
61
63
  requestIdHeader?: string;
62
64
  /** 默认缓存存储,供开启缓存的请求复用。 */
63
65
  cache?: RequestCache;
66
+ /** 当前会话/租户的非敏感标识;变化时自动失效,不能使用明文 Token。 */
67
+ getCacheScope?: () => string | undefined;
64
68
  onRequest?: (context: RequestBeforeContext) => Promise<void> | void;
65
69
  onRequestError?: (context: RequestErrorContext) => Promise<void> | void;
66
70
  onResponse?: <TResult = unknown>(context: RequestContext<TData>) => Promise<TResult> | TResult;
@@ -90,6 +94,8 @@ export interface RequestUploadOptions extends Omit<RequestOptions, 'body' | 'met
90
94
  fileField?: string;
91
95
  }
92
96
  export interface RequestClient {
97
+ /** 清除本客户端使用的缓存,并阻止在途请求重新填充。退出/切换账号时调用。 */
98
+ clearCache: () => void;
93
99
  delete: <TResult = unknown>(url: string, options?: Omit<RequestOptions, 'method'>) => Promise<TResult>;
94
100
  get: <TResult = unknown>(url: string, options?: Omit<RequestOptions, 'body' | 'method'>) => Promise<TResult>;
95
101
  patch: <TResult = unknown>(url: string, options?: Omit<RequestOptions, 'method'>) => Promise<TResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/request/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/request/types.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export { downloadBlob, downloadFile, } from './download';
5
5
  export { omitUndefined, } from './object';
6
6
  export { joinPath, } from './path';
7
7
  export { serializeQuery, } from './query';
8
- export { createStorage, } from './storage';
8
+ export { createMemoryStorage, createStorage, } from './storage';
9
9
  export type { JsonPrimitive, JsonValue, StorageAccessor, } from './types';
10
10
  export { withInstall, } from './with-install';
11
11
  export type { WithInstall, } from './with-install';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,GACV,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,SAAS,GACV,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,cAAc,EACd,SAAS,GACV,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,aAAa,GACd,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,QAAQ,GACT,MAAM,QAAQ,CAAA;AACf,OAAO,EACL,cAAc,GACf,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,WAAW,GACZ,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,WAAW,GACZ,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,GACV,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,SAAS,GACV,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,cAAc,EACd,SAAS,GACV,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,aAAa,GACd,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,QAAQ,GACT,MAAM,QAAQ,CAAA;AACf,OAAO,EACL,cAAc,GACf,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,mBAAmB,EACnB,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,WAAW,GACZ,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,WAAW,GACZ,MAAM,gBAAgB,CAAA"}
@@ -1,4 +1,6 @@
1
1
  import type { StorageAccessor } from './types';
2
+ /***********************内存存储兜底*********************/
3
+ export declare function createMemoryStorage(): Storage;
2
4
  /**
3
5
  * 基于 Web Storage 创建带命名空间前缀的 JSON 存储访问器。
4
6
  * 读取失败(非法 JSON)时抛出明确错误,便于定位脏数据。
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/utils/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,eAAe,EAAE,MAAM,SAAS,CAAA;AAOzD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAK,GAAG,eAAe,CAuB5E"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/utils/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzD,oDAAoD;AACpD,wBAAgB,mBAAmB,IAAI,OAAO,CAU7C;AAOD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAK,GAAG,eAAe,CAuB5E"}
@@ -0,0 +1 @@
1
+ function e(){let e=new Map;return{get length(){return e.size},clear:()=>e.clear(),getItem:t=>e.get(String(t))??null,key:t=>[...e.keys()][t]??null,removeItem:t=>{e.delete(String(t))},setItem:(t,n)=>{e.set(String(t),String(n))}}}function t(e,t){return e?`${e}:${t}`:t}function n(e,n=``){return{get(r){let i=e.getItem(t(n,r));if(i!==null)try{return JSON.parse(i)}catch{throw Error(`无法解析存储键 "${t(n,r)}" 的值`)}},set(r,i){e.setItem(t(n,r),JSON.stringify(i))},remove(r){e.removeItem(t(n,r))}}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return e}});
@@ -0,0 +1,41 @@
1
+ //#region src/utils/storage.ts
2
+ function e() {
3
+ let e = /* @__PURE__ */ new Map();
4
+ return {
5
+ get length() {
6
+ return e.size;
7
+ },
8
+ clear: () => e.clear(),
9
+ getItem: (t) => e.get(String(t)) ?? null,
10
+ key: (t) => [...e.keys()][t] ?? null,
11
+ removeItem: (t) => {
12
+ e.delete(String(t));
13
+ },
14
+ setItem: (t, n) => {
15
+ e.set(String(t), String(n));
16
+ }
17
+ };
18
+ }
19
+ function t(e, t) {
20
+ return e ? `${e}:${t}` : t;
21
+ }
22
+ function n(e, n = "") {
23
+ return {
24
+ get(r) {
25
+ let i = e.getItem(t(n, r));
26
+ if (i !== null) try {
27
+ return JSON.parse(i);
28
+ } catch {
29
+ throw Error(`无法解析存储键 "${t(n, r)}" 的值`);
30
+ }
31
+ },
32
+ set(r, i) {
33
+ e.setItem(t(n, r), JSON.stringify(i));
34
+ },
35
+ remove(r) {
36
+ e.removeItem(t(n, r));
37
+ }
38
+ };
39
+ }
40
+ //#endregion
41
+ export { n, e as t };
package/dist/utils.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("vue");function t(t){return(0,e.isProxy)(t)?(0,e.toRaw)(t):t}function n(e,r=new WeakMap){let i=t(e);if(typeof i!=`object`||!i)return i;if(i instanceof Date)return new Date(i.getTime());if(i instanceof RegExp)return new RegExp(i);if(r.has(i))return r.get(i);if(Array.isArray(i)){let e=[];return r.set(i,e),i.forEach((t,i)=>{e[i]=n(t,r)}),e}let a={};return r.set(i,a),Object.entries(i).forEach(([e,t])=>{a[e]=n(t,r)}),a}function r(e){let r=t(e);if(typeof structuredClone==`function`)try{return structuredClone(r)}catch(e){if(!(e instanceof DOMException)||e.name!==`DataCloneError`)throw e}return n(r)}function i(e){return e.map(e=>({...e,children:e.children?.length?i(e.children):void 0}))}function a(e,t){let n=e.trim().replace(/^#/,``);return/^[\da-f]{6}$/i.test(n)?`rgba(${Number.parseInt(n.slice(0,2),16)}, ${Number.parseInt(n.slice(2,4),16)}, ${Number.parseInt(n.slice(4,6),16)}, ${Math.min(1,Math.max(0,t))})`:e}async function o(e){try{return JSON.parse(await e.text()),!1}catch{return!0}}function s(e){return!e||e.length<=7?e:`${e.slice(0,3)}${`*`.repeat(Math.min(4,e.length-7))}${e.slice(-4)}`}function c(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function l(e,t,n=`application/octet-stream`){c(new Blob([e],{type:`${n};charset=utf-8`}),t)}function u(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function d(...e){return`/${e.filter(Boolean).map(e=>String(e).replace(/^\/+|\/+$/g,``)).filter(Boolean).join(`/`)}`}function f(e){let t=[];return Object.entries(e).forEach(([e,n])=>{if(n!=null){if(Array.isArray(n)){n.forEach(n=>{n!=null&&t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`)});return}if(typeof n==`object`){Object.entries(n).forEach(([n,r])=>{r!=null&&t.push(`${encodeURIComponent(`${e}[${n}]`)}=${encodeURIComponent(String(r))}`)});return}t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`)}}),t.join(`&`)}function p(e,t){return e?`${e}:${t}`:t}function m(e,t=``){return{get(n){let r=e.getItem(p(t,n));if(r!==null)try{return JSON.parse(r)}catch{throw Error(`无法解析存储键 "${p(t,n)}" 的值`)}},set(n,r){e.setItem(p(t,n),JSON.stringify(r))},remove(n){e.removeItem(p(t,n))}}}function h(e,t){let n=e;return n.install=function(n){let r=t??e.name??e.__name;r&&n.component(r,e)},n}exports.cloneDeep=r,exports.cloneTree=i,exports.createStorage=m,exports.downloadBlob=c,exports.downloadFile=l,exports.isBlobResponse=o,exports.joinPath=d,exports.maskPhone=s,exports.omitUndefined=u,exports.serializeQuery=f,exports.withAlpha=a,exports.withInstall=h;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./storage-CCBa7Qh8.cjs");let t=require("vue");function n(e){return(0,t.isProxy)(e)?(0,t.toRaw)(e):e}function r(e,t=new WeakMap){let i=n(e);if(typeof i!=`object`||!i)return i;if(i instanceof Date)return new Date(i.getTime());if(i instanceof RegExp)return new RegExp(i);if(t.has(i))return t.get(i);if(Array.isArray(i)){let e=[];return t.set(i,e),i.forEach((n,i)=>{e[i]=r(n,t)}),e}let a={};return t.set(i,a),Object.entries(i).forEach(([e,n])=>{a[e]=r(n,t)}),a}function i(e){let t=n(e);if(typeof structuredClone==`function`)try{return structuredClone(t)}catch(e){if(!(e instanceof DOMException)||e.name!==`DataCloneError`)throw e}return r(t)}function a(e){return e.map(e=>({...e,children:e.children?.length?a(e.children):void 0}))}function o(e,t){let n=e.trim().replace(/^#/,``);return/^[\da-f]{6}$/i.test(n)?`rgba(${Number.parseInt(n.slice(0,2),16)}, ${Number.parseInt(n.slice(2,4),16)}, ${Number.parseInt(n.slice(4,6),16)}, ${Math.min(1,Math.max(0,t))})`:e}async function s(e){try{return JSON.parse(await e.text()),!1}catch{return!0}}function c(e){return!e||e.length<=7?e:`${e.slice(0,3)}${`*`.repeat(Math.min(4,e.length-7))}${e.slice(-4)}`}function l(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function u(e,t,n=`application/octet-stream`){l(new Blob([e],{type:`${n};charset=utf-8`}),t)}function d(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function f(...e){return`/${e.filter(Boolean).map(e=>String(e).replace(/^\/+|\/+$/g,``)).filter(Boolean).join(`/`)}`}function p(e){let t=[];return Object.entries(e).forEach(([e,n])=>{if(n!=null){if(Array.isArray(n)){n.forEach(n=>{n!=null&&t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`)});return}if(typeof n==`object`){Object.entries(n).forEach(([n,r])=>{r!=null&&t.push(`${encodeURIComponent(`${e}[${n}]`)}=${encodeURIComponent(String(r))}`)});return}t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`)}}),t.join(`&`)}function m(e,t){let n=e;return n.install=function(n){let r=t??e.name??e.__name;r&&n.component(r,e)},n}exports.cloneDeep=i,exports.cloneTree=a,exports.createMemoryStorage=e.t,exports.createStorage=e.n,exports.downloadBlob=l,exports.downloadFile=u,exports.isBlobResponse=s,exports.joinPath=f,exports.maskPhone=c,exports.omitUndefined=d,exports.serializeQuery=p,exports.withAlpha=o,exports.withInstall=m;