@kevisual/cli 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assistant-opencode.js +41645 -34484
- package/dist/assistant-server.js +32525 -25025
- package/dist/assistant.js +9926 -2852
- package/dist/envision.js +1048 -928
- package/package.json +7 -8
package/dist/envision.js
CHANGED
|
@@ -21754,7 +21754,8 @@ var {
|
|
|
21754
21754
|
// src/program.ts
|
|
21755
21755
|
import fs from "fs";
|
|
21756
21756
|
|
|
21757
|
-
// node_modules/.pnpm/@kevisual+context@0.0.
|
|
21757
|
+
// node_modules/.pnpm/@kevisual+context@0.0.8/node_modules/@kevisual/context/dist/app.js
|
|
21758
|
+
var isBrowser2 = typeof window !== "undefined" && typeof window.document !== "undefined";
|
|
21758
21759
|
function getDefaultExportFromCjs(x) {
|
|
21759
21760
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
21760
21761
|
}
|
|
@@ -22218,7 +22219,7 @@ var useEnv = (initEnv, initKey = "config", isOverwrite) => {
|
|
|
22218
22219
|
}
|
|
22219
22220
|
return gt[initKey];
|
|
22220
22221
|
};
|
|
22221
|
-
var useEnvKey = (key, init, initKey = "config") => {
|
|
22222
|
+
var useEnvKey = (key, init, initKey = "config", opts = {}) => {
|
|
22222
22223
|
const _env = useEnv({}, initKey);
|
|
22223
22224
|
if (key && typeof _env[key] !== "undefined") {
|
|
22224
22225
|
return _env[key];
|
|
@@ -22244,12 +22245,13 @@ var useEnvKey = (key, init, initKey = "config") => {
|
|
|
22244
22245
|
const voidFn = async () => {
|
|
22245
22246
|
return _env[key];
|
|
22246
22247
|
};
|
|
22248
|
+
const timeout = opts.timeout || 5 * 60 * 1000;
|
|
22247
22249
|
const checkFn = async () => {
|
|
22248
22250
|
const loadRes = await baseLoad.load(voidFn, {
|
|
22249
22251
|
key,
|
|
22250
22252
|
isReRun: true,
|
|
22251
22253
|
checkSuccess: () => _env[key],
|
|
22252
|
-
timeout
|
|
22254
|
+
timeout,
|
|
22253
22255
|
interval: 1000
|
|
22254
22256
|
});
|
|
22255
22257
|
if (loadRes.code !== 200) {
|
|
@@ -22265,27 +22267,28 @@ var useEnvKey = (key, init, initKey = "config") => {
|
|
|
22265
22267
|
};
|
|
22266
22268
|
var useEnvKeyNew = (key, initKey = "config", opts) => {
|
|
22267
22269
|
const _env = useEnv({}, initKey);
|
|
22270
|
+
const timeout = opts?.timeout;
|
|
22268
22271
|
if (key) {
|
|
22269
22272
|
delete _env[key];
|
|
22270
22273
|
}
|
|
22271
22274
|
if (opts?.getNew && opts.init) {
|
|
22272
|
-
return useEnvKey(key, opts.init, initKey);
|
|
22275
|
+
return useEnvKey(key, opts.init, initKey, { timeout });
|
|
22273
22276
|
} else if (opts?.getNew) {
|
|
22274
|
-
return useEnvKey(key, null, initKey);
|
|
22277
|
+
return useEnvKey(key, null, initKey, { timeout });
|
|
22275
22278
|
}
|
|
22276
22279
|
};
|
|
22277
|
-
var useContextKey = (key, init,
|
|
22278
|
-
if (isNew) {
|
|
22279
|
-
return useEnvKeyNew(key, "context", { getNew: true, init });
|
|
22280
|
+
var useContextKey = (key, init, opts) => {
|
|
22281
|
+
if (opts?.isNew) {
|
|
22282
|
+
return useEnvKeyNew(key, "context", { getNew: true, init, ...opts });
|
|
22280
22283
|
}
|
|
22281
|
-
return useEnvKey(key, init, "context");
|
|
22284
|
+
return useEnvKey(key, init, "context", opts);
|
|
22282
22285
|
};
|
|
22283
22286
|
var use = useContextKey;
|
|
22284
|
-
var useConfigKey = (key, init,
|
|
22285
|
-
if (isNew) {
|
|
22286
|
-
return useEnvKeyNew(key, "config", { getNew: true, init });
|
|
22287
|
+
var useConfigKey = (key, init, opts) => {
|
|
22288
|
+
if (opts?.isNew) {
|
|
22289
|
+
return useEnvKeyNew(key, "config", { getNew: true, init, ...opts });
|
|
22287
22290
|
}
|
|
22288
|
-
return useEnvKey(key, init, "config");
|
|
22291
|
+
return useEnvKey(key, init, "config", opts);
|
|
22289
22292
|
};
|
|
22290
22293
|
|
|
22291
22294
|
class InitEnv {
|
|
@@ -22309,8 +22312,8 @@ InitEnv.init();
|
|
|
22309
22312
|
var version = useContextKey("version", () => {
|
|
22310
22313
|
let version2 = "0.0.64";
|
|
22311
22314
|
try {
|
|
22312
|
-
if ("0.1.
|
|
22313
|
-
version2 = "0.1.
|
|
22315
|
+
if ("0.1.6")
|
|
22316
|
+
version2 = "0.1.6";
|
|
22314
22317
|
} catch (e) {}
|
|
22315
22318
|
return version2;
|
|
22316
22319
|
});
|
|
@@ -25123,23 +25126,17 @@ var dist_default6 = createPrompt((config, done) => {
|
|
|
25123
25126
|
var import_md5 = __toESM(require_md5(), 1);
|
|
25124
25127
|
var import_jsonwebtoken = __toESM(require_jsonwebtoken(), 1);
|
|
25125
25128
|
|
|
25126
|
-
// node_modules/.pnpm/@kevisual+query@0.0.
|
|
25129
|
+
// node_modules/.pnpm/@kevisual+query@0.0.49/node_modules/@kevisual/query/dist/query.js
|
|
25127
25130
|
var isTextForContentType = (contentType) => {
|
|
25128
25131
|
if (!contentType)
|
|
25129
25132
|
return false;
|
|
25130
|
-
const textTypes = ["text/", "xml", "html", "javascript", "css", "csv", "plain", "x-www-form-urlencoded", "md"];
|
|
25133
|
+
const textTypes = ["text/", "xml", "html", "javascript", "css", "csv", "plain", "x-www-form-urlencoded", "md", "json"];
|
|
25131
25134
|
return textTypes.some((type) => contentType.includes(type));
|
|
25132
25135
|
};
|
|
25133
25136
|
var adapter = async (opts = {}, overloadOpts) => {
|
|
25134
25137
|
const controller = new AbortController;
|
|
25135
25138
|
const signal = controller.signal;
|
|
25136
25139
|
const isPostFile = opts.isPostFile || false;
|
|
25137
|
-
let responseType = opts.responseType || "json";
|
|
25138
|
-
if (opts.isBlob) {
|
|
25139
|
-
responseType = "blob";
|
|
25140
|
-
} else if (opts.isText) {
|
|
25141
|
-
responseType = "text";
|
|
25142
|
-
}
|
|
25143
25140
|
const timeout = opts.timeout || 60000 * 3;
|
|
25144
25141
|
const timer = setTimeout(() => {
|
|
25145
25142
|
controller.abort();
|
|
@@ -25151,7 +25148,7 @@ var adapter = async (opts = {}, overloadOpts) => {
|
|
|
25151
25148
|
if (opts?.url?.startsWith("http")) {
|
|
25152
25149
|
url = new URL(opts.url);
|
|
25153
25150
|
} else {
|
|
25154
|
-
origin =
|
|
25151
|
+
origin = globalThis?.location?.origin || "http://localhost:51515";
|
|
25155
25152
|
url = new URL(opts?.url || "", origin);
|
|
25156
25153
|
}
|
|
25157
25154
|
const isGet = method === "GET";
|
|
@@ -25198,21 +25195,31 @@ var adapter = async (opts = {}, overloadOpts) => {
|
|
|
25198
25195
|
headers
|
|
25199
25196
|
}).then(async (response) => {
|
|
25200
25197
|
const contentType = response.headers.get("Content-Type");
|
|
25201
|
-
if (responseType === "blob") {
|
|
25202
|
-
return await response.blob();
|
|
25203
|
-
}
|
|
25204
|
-
const isText = responseType === "text";
|
|
25205
25198
|
const isJson = contentType && contentType.includes("application/json");
|
|
25206
|
-
|
|
25207
|
-
|
|
25199
|
+
const isSuccess = response.ok;
|
|
25200
|
+
if (isJson) {
|
|
25201
|
+
const json = await response.json();
|
|
25202
|
+
if (json?.code) {
|
|
25203
|
+
return json;
|
|
25204
|
+
}
|
|
25205
|
+
return {
|
|
25206
|
+
code: isSuccess ? 200 : response.status,
|
|
25207
|
+
status: response.status,
|
|
25208
|
+
data: json
|
|
25209
|
+
};
|
|
25208
25210
|
} else if (isTextForContentType(contentType)) {
|
|
25209
25211
|
return {
|
|
25210
|
-
code: response.status,
|
|
25212
|
+
code: isSuccess ? 200 : response.status,
|
|
25211
25213
|
status: response.status,
|
|
25212
25214
|
data: await response.text()
|
|
25213
25215
|
};
|
|
25214
25216
|
} else {
|
|
25215
|
-
return
|
|
25217
|
+
return {
|
|
25218
|
+
code: isSuccess ? 200 : response.status,
|
|
25219
|
+
status: response.status,
|
|
25220
|
+
data: "非文本非JSON响应, 请手动处理response。",
|
|
25221
|
+
response
|
|
25222
|
+
};
|
|
25216
25223
|
}
|
|
25217
25224
|
}).catch((err) => {
|
|
25218
25225
|
if (err.name === "AbortError") {
|
|
@@ -25229,28 +25236,17 @@ var adapter = async (opts = {}, overloadOpts) => {
|
|
|
25229
25236
|
clearTimeout(timer);
|
|
25230
25237
|
});
|
|
25231
25238
|
};
|
|
25232
|
-
var setBaseResponse = (res) => {
|
|
25233
|
-
res.success = res.code === 200;
|
|
25234
|
-
res.showError = (fn) => {
|
|
25235
|
-
if (!res.success && !res.noMsg) {
|
|
25236
|
-
fn?.();
|
|
25237
|
-
}
|
|
25238
|
-
};
|
|
25239
|
-
return res;
|
|
25240
|
-
};
|
|
25241
25239
|
var wrapperError = ({ code, message }) => {
|
|
25242
25240
|
const result = {
|
|
25243
25241
|
code: code || 500,
|
|
25244
|
-
|
|
25245
|
-
message: message || "api request error",
|
|
25246
|
-
showError: (fn) => {},
|
|
25247
|
-
noMsg: true
|
|
25242
|
+
message: message || "请求错误"
|
|
25248
25243
|
};
|
|
25249
25244
|
return result;
|
|
25250
25245
|
};
|
|
25251
25246
|
|
|
25252
25247
|
class Query {
|
|
25253
25248
|
adapter;
|
|
25249
|
+
baseURL;
|
|
25254
25250
|
url;
|
|
25255
25251
|
beforeRequest;
|
|
25256
25252
|
afterResponse;
|
|
@@ -25258,11 +25254,20 @@ class Query {
|
|
|
25258
25254
|
timeout;
|
|
25259
25255
|
stop;
|
|
25260
25256
|
qws;
|
|
25261
|
-
|
|
25257
|
+
tokenName;
|
|
25258
|
+
storage;
|
|
25259
|
+
token;
|
|
25262
25260
|
constructor(opts) {
|
|
25263
25261
|
this.adapter = opts?.adapter || adapter;
|
|
25262
|
+
this.tokenName = opts?.tokenName || "token";
|
|
25263
|
+
this.storage = opts?.storage || globalThis?.localStorage;
|
|
25264
25264
|
const defaultURL = opts?.isClient ? "/client/router" : "/api/router";
|
|
25265
25265
|
this.url = opts?.url || defaultURL;
|
|
25266
|
+
if (this.url.startsWith("http")) {
|
|
25267
|
+
const urlObj = new URL(this.url);
|
|
25268
|
+
this.baseURL = urlObj.origin;
|
|
25269
|
+
}
|
|
25270
|
+
this.baseURL = opts?.baseURL || this.baseURL;
|
|
25266
25271
|
this.headers = opts?.headers || {
|
|
25267
25272
|
"Content-Type": "application/json"
|
|
25268
25273
|
};
|
|
@@ -25271,7 +25276,7 @@ class Query {
|
|
|
25271
25276
|
this.beforeRequest = opts.beforeRequest;
|
|
25272
25277
|
} else {
|
|
25273
25278
|
this.beforeRequest = async (opts2) => {
|
|
25274
|
-
const token =
|
|
25279
|
+
const token = this.token || this.storage?.getItem?.(this.tokenName);
|
|
25275
25280
|
if (token) {
|
|
25276
25281
|
opts2.headers = {
|
|
25277
25282
|
...opts2.headers,
|
|
@@ -25306,13 +25311,20 @@ class Query {
|
|
|
25306
25311
|
timeout: _timeout,
|
|
25307
25312
|
...rest
|
|
25308
25313
|
};
|
|
25314
|
+
const isStartsWithHttp = req.url.startsWith("http");
|
|
25315
|
+
if (!isStartsWithHttp) {
|
|
25316
|
+
if (this.baseURL) {
|
|
25317
|
+
const baseURL = new URL(this.baseURL || globalThis?.location?.origin).origin;
|
|
25318
|
+
req.url = baseURL + req.url;
|
|
25319
|
+
}
|
|
25320
|
+
}
|
|
25309
25321
|
try {
|
|
25310
25322
|
if (_beforeRequest) {
|
|
25311
25323
|
const res = await _beforeRequest(req);
|
|
25312
25324
|
if (res === false) {
|
|
25313
25325
|
return wrapperError({
|
|
25314
25326
|
code: 500,
|
|
25315
|
-
message: "
|
|
25327
|
+
message: "请求取消",
|
|
25316
25328
|
req
|
|
25317
25329
|
});
|
|
25318
25330
|
}
|
|
@@ -25321,12 +25333,13 @@ class Query {
|
|
|
25321
25333
|
console.error("request beforeFn error", e, req);
|
|
25322
25334
|
return wrapperError({
|
|
25323
25335
|
code: 500,
|
|
25324
|
-
message: "
|
|
25336
|
+
message: "请求在请求前处理时发生错误",
|
|
25337
|
+
req
|
|
25325
25338
|
});
|
|
25326
25339
|
}
|
|
25327
25340
|
if (this.stop && !options?.noStop) {
|
|
25328
25341
|
const that = this;
|
|
25329
|
-
await new Promise((resolve) => {
|
|
25342
|
+
const res = await new Promise((resolve) => {
|
|
25330
25343
|
let timer = 0;
|
|
25331
25344
|
const detect = setInterval(() => {
|
|
25332
25345
|
if (!that.stop) {
|
|
@@ -25334,11 +25347,20 @@ class Query {
|
|
|
25334
25347
|
resolve(true);
|
|
25335
25348
|
}
|
|
25336
25349
|
timer++;
|
|
25337
|
-
if (timer >
|
|
25338
|
-
console.error("
|
|
25350
|
+
if (timer > 5) {
|
|
25351
|
+
console.error("等待请求失败:", req.url, timer);
|
|
25352
|
+
clearInterval(detect);
|
|
25353
|
+
resolve(false);
|
|
25339
25354
|
}
|
|
25340
25355
|
}, 1000);
|
|
25341
25356
|
});
|
|
25357
|
+
if (!res) {
|
|
25358
|
+
return wrapperError({
|
|
25359
|
+
code: 500,
|
|
25360
|
+
message: "请求取消,可能是因为用户未登录或者token过期",
|
|
25361
|
+
req
|
|
25362
|
+
});
|
|
25363
|
+
}
|
|
25342
25364
|
}
|
|
25343
25365
|
return _adapter(req).then(async (res) => {
|
|
25344
25366
|
try {
|
|
@@ -25351,10 +25373,11 @@ class Query {
|
|
|
25351
25373
|
}
|
|
25352
25374
|
return res;
|
|
25353
25375
|
} catch (e) {
|
|
25354
|
-
console.error("
|
|
25376
|
+
console.error("请求在响应后处理时发生错误", e, req);
|
|
25355
25377
|
return wrapperError({
|
|
25356
25378
|
code: 500,
|
|
25357
|
-
message: "
|
|
25379
|
+
message: "请求在响应后处理时发生错误",
|
|
25380
|
+
req
|
|
25358
25381
|
});
|
|
25359
25382
|
}
|
|
25360
25383
|
});
|
|
@@ -25391,23 +25414,17 @@ class Query {
|
|
|
25391
25414
|
}
|
|
25392
25415
|
}
|
|
25393
25416
|
|
|
25394
|
-
// node_modules/.pnpm/@kevisual+query@0.0.
|
|
25417
|
+
// node_modules/.pnpm/@kevisual+query@0.0.49/node_modules/@kevisual/query/dist/query-browser.js
|
|
25395
25418
|
var isTextForContentType2 = (contentType) => {
|
|
25396
25419
|
if (!contentType)
|
|
25397
25420
|
return false;
|
|
25398
|
-
const textTypes = ["text/", "xml", "html", "javascript", "css", "csv", "plain", "x-www-form-urlencoded", "md"];
|
|
25421
|
+
const textTypes = ["text/", "xml", "html", "javascript", "css", "csv", "plain", "x-www-form-urlencoded", "md", "json"];
|
|
25399
25422
|
return textTypes.some((type) => contentType.includes(type));
|
|
25400
25423
|
};
|
|
25401
25424
|
var adapter2 = async (opts = {}, overloadOpts) => {
|
|
25402
25425
|
const controller = new AbortController;
|
|
25403
25426
|
const signal = controller.signal;
|
|
25404
25427
|
const isPostFile = opts.isPostFile || false;
|
|
25405
|
-
let responseType = opts.responseType || "json";
|
|
25406
|
-
if (opts.isBlob) {
|
|
25407
|
-
responseType = "blob";
|
|
25408
|
-
} else if (opts.isText) {
|
|
25409
|
-
responseType = "text";
|
|
25410
|
-
}
|
|
25411
25428
|
const timeout = opts.timeout || 60000 * 3;
|
|
25412
25429
|
const timer = setTimeout(() => {
|
|
25413
25430
|
controller.abort();
|
|
@@ -25419,7 +25436,7 @@ var adapter2 = async (opts = {}, overloadOpts) => {
|
|
|
25419
25436
|
if (opts?.url?.startsWith("http")) {
|
|
25420
25437
|
url = new URL(opts.url);
|
|
25421
25438
|
} else {
|
|
25422
|
-
origin =
|
|
25439
|
+
origin = globalThis?.location?.origin || "http://localhost:51515";
|
|
25423
25440
|
url = new URL(opts?.url || "", origin);
|
|
25424
25441
|
}
|
|
25425
25442
|
const isGet = method === "GET";
|
|
@@ -25466,21 +25483,31 @@ var adapter2 = async (opts = {}, overloadOpts) => {
|
|
|
25466
25483
|
headers
|
|
25467
25484
|
}).then(async (response) => {
|
|
25468
25485
|
const contentType = response.headers.get("Content-Type");
|
|
25469
|
-
if (responseType === "blob") {
|
|
25470
|
-
return await response.blob();
|
|
25471
|
-
}
|
|
25472
|
-
const isText = responseType === "text";
|
|
25473
25486
|
const isJson = contentType && contentType.includes("application/json");
|
|
25474
|
-
|
|
25475
|
-
|
|
25487
|
+
const isSuccess = response.ok;
|
|
25488
|
+
if (isJson) {
|
|
25489
|
+
const json = await response.json();
|
|
25490
|
+
if (json?.code) {
|
|
25491
|
+
return json;
|
|
25492
|
+
}
|
|
25493
|
+
return {
|
|
25494
|
+
code: isSuccess ? 200 : response.status,
|
|
25495
|
+
status: response.status,
|
|
25496
|
+
data: json
|
|
25497
|
+
};
|
|
25476
25498
|
} else if (isTextForContentType2(contentType)) {
|
|
25477
25499
|
return {
|
|
25478
|
-
code: response.status,
|
|
25500
|
+
code: isSuccess ? 200 : response.status,
|
|
25479
25501
|
status: response.status,
|
|
25480
25502
|
data: await response.text()
|
|
25481
25503
|
};
|
|
25482
25504
|
} else {
|
|
25483
|
-
return
|
|
25505
|
+
return {
|
|
25506
|
+
code: isSuccess ? 200 : response.status,
|
|
25507
|
+
status: response.status,
|
|
25508
|
+
data: "非文本非JSON响应, 请手动处理response。",
|
|
25509
|
+
response
|
|
25510
|
+
};
|
|
25484
25511
|
}
|
|
25485
25512
|
}).catch((err) => {
|
|
25486
25513
|
if (err.name === "AbortError") {
|
|
@@ -25500,16 +25527,14 @@ var adapter2 = async (opts = {}, overloadOpts) => {
|
|
|
25500
25527
|
var wrapperError2 = ({ code, message }) => {
|
|
25501
25528
|
const result = {
|
|
25502
25529
|
code: code || 500,
|
|
25503
|
-
|
|
25504
|
-
message: message || "api request error",
|
|
25505
|
-
showError: (fn) => {},
|
|
25506
|
-
noMsg: true
|
|
25530
|
+
message: message || "请求错误"
|
|
25507
25531
|
};
|
|
25508
25532
|
return result;
|
|
25509
25533
|
};
|
|
25510
25534
|
|
|
25511
25535
|
class Query2 {
|
|
25512
25536
|
adapter;
|
|
25537
|
+
baseURL;
|
|
25513
25538
|
url;
|
|
25514
25539
|
beforeRequest;
|
|
25515
25540
|
afterResponse;
|
|
@@ -25517,11 +25542,20 @@ class Query2 {
|
|
|
25517
25542
|
timeout;
|
|
25518
25543
|
stop;
|
|
25519
25544
|
qws;
|
|
25520
|
-
|
|
25545
|
+
tokenName;
|
|
25546
|
+
storage;
|
|
25547
|
+
token;
|
|
25521
25548
|
constructor(opts) {
|
|
25522
25549
|
this.adapter = opts?.adapter || adapter2;
|
|
25550
|
+
this.tokenName = opts?.tokenName || "token";
|
|
25551
|
+
this.storage = opts?.storage || globalThis?.localStorage;
|
|
25523
25552
|
const defaultURL = opts?.isClient ? "/client/router" : "/api/router";
|
|
25524
25553
|
this.url = opts?.url || defaultURL;
|
|
25554
|
+
if (this.url.startsWith("http")) {
|
|
25555
|
+
const urlObj = new URL(this.url);
|
|
25556
|
+
this.baseURL = urlObj.origin;
|
|
25557
|
+
}
|
|
25558
|
+
this.baseURL = opts?.baseURL || this.baseURL;
|
|
25525
25559
|
this.headers = opts?.headers || {
|
|
25526
25560
|
"Content-Type": "application/json"
|
|
25527
25561
|
};
|
|
@@ -25530,7 +25564,7 @@ class Query2 {
|
|
|
25530
25564
|
this.beforeRequest = opts.beforeRequest;
|
|
25531
25565
|
} else {
|
|
25532
25566
|
this.beforeRequest = async (opts2) => {
|
|
25533
|
-
const token =
|
|
25567
|
+
const token = this.token || this.storage?.getItem?.(this.tokenName);
|
|
25534
25568
|
if (token) {
|
|
25535
25569
|
opts2.headers = {
|
|
25536
25570
|
...opts2.headers,
|
|
@@ -25552,9 +25586,9 @@ class Query2 {
|
|
|
25552
25586
|
}
|
|
25553
25587
|
async post(body, options) {
|
|
25554
25588
|
const url = options?.url || this.url;
|
|
25555
|
-
const { headers, adapter:
|
|
25589
|
+
const { headers, adapter: adapter22, beforeRequest, afterResponse, timeout, ...rest } = options || {};
|
|
25556
25590
|
const _headers = { ...this.headers, ...headers };
|
|
25557
|
-
const _adapter =
|
|
25591
|
+
const _adapter = adapter22 || this.adapter;
|
|
25558
25592
|
const _beforeRequest = beforeRequest || this.beforeRequest;
|
|
25559
25593
|
const _afterResponse = afterResponse || this.afterResponse;
|
|
25560
25594
|
const _timeout = timeout || this.timeout;
|
|
@@ -25565,13 +25599,20 @@ class Query2 {
|
|
|
25565
25599
|
timeout: _timeout,
|
|
25566
25600
|
...rest
|
|
25567
25601
|
};
|
|
25602
|
+
const isStartsWithHttp = req.url.startsWith("http");
|
|
25603
|
+
if (!isStartsWithHttp) {
|
|
25604
|
+
if (this.baseURL) {
|
|
25605
|
+
const baseURL = new URL(this.baseURL || globalThis?.location?.origin).origin;
|
|
25606
|
+
req.url = baseURL + req.url;
|
|
25607
|
+
}
|
|
25608
|
+
}
|
|
25568
25609
|
try {
|
|
25569
25610
|
if (_beforeRequest) {
|
|
25570
25611
|
const res = await _beforeRequest(req);
|
|
25571
25612
|
if (res === false) {
|
|
25572
25613
|
return wrapperError2({
|
|
25573
25614
|
code: 500,
|
|
25574
|
-
message: "
|
|
25615
|
+
message: "请求取消",
|
|
25575
25616
|
req
|
|
25576
25617
|
});
|
|
25577
25618
|
}
|
|
@@ -25580,12 +25621,13 @@ class Query2 {
|
|
|
25580
25621
|
console.error("request beforeFn error", e, req);
|
|
25581
25622
|
return wrapperError2({
|
|
25582
25623
|
code: 500,
|
|
25583
|
-
message: "
|
|
25624
|
+
message: "请求在请求前处理时发生错误",
|
|
25625
|
+
req
|
|
25584
25626
|
});
|
|
25585
25627
|
}
|
|
25586
25628
|
if (this.stop && !options?.noStop) {
|
|
25587
25629
|
const that = this;
|
|
25588
|
-
await new Promise((resolve) => {
|
|
25630
|
+
const res = await new Promise((resolve) => {
|
|
25589
25631
|
let timer = 0;
|
|
25590
25632
|
const detect = setInterval(() => {
|
|
25591
25633
|
if (!that.stop) {
|
|
@@ -25593,11 +25635,20 @@ class Query2 {
|
|
|
25593
25635
|
resolve(true);
|
|
25594
25636
|
}
|
|
25595
25637
|
timer++;
|
|
25596
|
-
if (timer >
|
|
25597
|
-
console.error("
|
|
25638
|
+
if (timer > 5) {
|
|
25639
|
+
console.error("等待请求失败:", req.url, timer);
|
|
25640
|
+
clearInterval(detect);
|
|
25641
|
+
resolve(false);
|
|
25598
25642
|
}
|
|
25599
25643
|
}, 1000);
|
|
25600
25644
|
});
|
|
25645
|
+
if (!res) {
|
|
25646
|
+
return wrapperError2({
|
|
25647
|
+
code: 500,
|
|
25648
|
+
message: "请求取消,可能是因为用户未登录或者token过期",
|
|
25649
|
+
req
|
|
25650
|
+
});
|
|
25651
|
+
}
|
|
25601
25652
|
}
|
|
25602
25653
|
return _adapter(req).then(async (res) => {
|
|
25603
25654
|
try {
|
|
@@ -25605,15 +25656,16 @@ class Query2 {
|
|
|
25605
25656
|
return await _afterResponse(res, {
|
|
25606
25657
|
req,
|
|
25607
25658
|
res,
|
|
25608
|
-
fetch:
|
|
25659
|
+
fetch: adapter22
|
|
25609
25660
|
});
|
|
25610
25661
|
}
|
|
25611
25662
|
return res;
|
|
25612
25663
|
} catch (e) {
|
|
25613
|
-
console.error("
|
|
25664
|
+
console.error("请求在响应后处理时发生错误", e, req);
|
|
25614
25665
|
return wrapperError2({
|
|
25615
25666
|
code: 500,
|
|
25616
|
-
message: "
|
|
25667
|
+
message: "请求在响应后处理时发生错误",
|
|
25668
|
+
req
|
|
25617
25669
|
});
|
|
25618
25670
|
}
|
|
25619
25671
|
});
|
|
@@ -25675,13 +25727,8 @@ class BaseQuery {
|
|
|
25675
25727
|
}
|
|
25676
25728
|
}
|
|
25677
25729
|
|
|
25678
|
-
// node_modules/.pnpm/@kevisual+
|
|
25679
|
-
|
|
25680
|
-
import { join, dirname } from "path";
|
|
25681
|
-
import fs4 from "fs";
|
|
25682
|
-
import { readFileSync, writeFileSync, accessSync } from "fs";
|
|
25683
|
-
import { readFile, writeFile, unlink, mkdir } from "fs/promises";
|
|
25684
|
-
var LoginCacheStore = class {
|
|
25730
|
+
// node_modules/.pnpm/@kevisual+api@0.0.52_@types+react@19.2.10_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@kevisual/api/query/query-login/login-cache.ts
|
|
25731
|
+
class LoginCacheStore {
|
|
25685
25732
|
cache;
|
|
25686
25733
|
name;
|
|
25687
25734
|
cacheData;
|
|
@@ -25739,6 +25786,8 @@ var LoginCacheStore = class {
|
|
|
25739
25786
|
this.cacheData.id = user.id;
|
|
25740
25787
|
this.cacheData.accessToken = user.accessToken;
|
|
25741
25788
|
this.cacheData.refreshToken = user.refreshToken;
|
|
25789
|
+
this.cacheData.accessTokenExpiresIn = user.accessTokenExpiresIn;
|
|
25790
|
+
this.cacheData.createdAt = user.createdAt;
|
|
25742
25791
|
await this.setValue(this.cacheData);
|
|
25743
25792
|
}
|
|
25744
25793
|
getCurrentUser() {
|
|
@@ -25776,268 +25825,738 @@ var LoginCacheStore = class {
|
|
|
25776
25825
|
this.cacheData.refreshToken = undefined;
|
|
25777
25826
|
await this.setValue(this.cacheData);
|
|
25778
25827
|
}
|
|
25779
|
-
}
|
|
25780
|
-
|
|
25781
|
-
|
|
25782
|
-
|
|
25783
|
-
|
|
25784
|
-
|
|
25785
|
-
|
|
25786
|
-
|
|
25787
|
-
|
|
25788
|
-
|
|
25789
|
-
|
|
25790
|
-
|
|
25791
|
-
|
|
25792
|
-
|
|
25793
|
-
|
|
25794
|
-
|
|
25795
|
-
|
|
25796
|
-
|
|
25797
|
-
|
|
25798
|
-
}
|
|
25799
|
-
async init() {
|
|
25800
|
-
await this.cacheStore.init();
|
|
25801
|
-
this.load = true;
|
|
25802
|
-
this.onLoad?.();
|
|
25803
|
-
}
|
|
25804
|
-
async post(data, opts) {
|
|
25805
|
-
try {
|
|
25806
|
-
return this.query.post({ path: "user", ...data }, opts);
|
|
25807
|
-
} catch (error) {
|
|
25808
|
-
console.log("error", error);
|
|
25809
|
-
return {
|
|
25810
|
-
code: 400
|
|
25811
|
-
};
|
|
25812
|
-
}
|
|
25813
|
-
}
|
|
25814
|
-
async login(data) {
|
|
25815
|
-
const res = await this.post({ key: "login", ...data });
|
|
25816
|
-
if (res.code === 200) {
|
|
25817
|
-
const { accessToken, refreshToken } = res?.data || {};
|
|
25818
|
-
this.storage.setItem("token", accessToken || "");
|
|
25819
|
-
await this.beforeSetLoginUser({ accessToken, refreshToken });
|
|
25820
|
-
}
|
|
25821
|
-
return res;
|
|
25822
|
-
}
|
|
25823
|
-
async loginByCode(data) {
|
|
25824
|
-
const res = await this.post({ path: "sms", key: "login", data });
|
|
25825
|
-
if (res.code === 200) {
|
|
25826
|
-
const { accessToken, refreshToken } = res?.data || {};
|
|
25827
|
-
this.storage.setItem("token", accessToken || "");
|
|
25828
|
-
await this.beforeSetLoginUser({ accessToken, refreshToken });
|
|
25828
|
+
}
|
|
25829
|
+
|
|
25830
|
+
// node_modules/.pnpm/@kevisual+load@0.0.6/node_modules/@kevisual/load/dist/load.js
|
|
25831
|
+
function getDefaultExportFromCjs3(x) {
|
|
25832
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
25833
|
+
}
|
|
25834
|
+
var eventemitter33 = { exports: {} };
|
|
25835
|
+
var hasRequiredEventemitter33;
|
|
25836
|
+
function requireEventemitter33() {
|
|
25837
|
+
if (hasRequiredEventemitter33)
|
|
25838
|
+
return eventemitter33.exports;
|
|
25839
|
+
hasRequiredEventemitter33 = 1;
|
|
25840
|
+
(function(module) {
|
|
25841
|
+
var has = Object.prototype.hasOwnProperty, prefix = "~";
|
|
25842
|
+
function Events() {}
|
|
25843
|
+
if (Object.create) {
|
|
25844
|
+
Events.prototype = Object.create(null);
|
|
25845
|
+
if (!new Events().__proto__)
|
|
25846
|
+
prefix = false;
|
|
25829
25847
|
}
|
|
25830
|
-
|
|
25831
|
-
|
|
25832
|
-
|
|
25833
|
-
|
|
25834
|
-
this.storage.setItem("token", accessToken || "");
|
|
25835
|
-
await this.beforeSetLoginUser({ accessToken, refreshToken });
|
|
25836
|
-
}
|
|
25837
|
-
async loginByWechat(data) {
|
|
25838
|
-
const res = await this.post({ path: "wx", key: "open-login", code: data.code });
|
|
25839
|
-
if (res.code === 200) {
|
|
25840
|
-
const { accessToken, refreshToken } = res?.data || {};
|
|
25841
|
-
this.storage.setItem("token", accessToken || "");
|
|
25842
|
-
await this.beforeSetLoginUser({ accessToken, refreshToken });
|
|
25848
|
+
function EE(fn, context, once) {
|
|
25849
|
+
this.fn = fn;
|
|
25850
|
+
this.context = context;
|
|
25851
|
+
this.once = once || false;
|
|
25843
25852
|
}
|
|
25844
|
-
|
|
25845
|
-
|
|
25846
|
-
|
|
25847
|
-
const url = new URL(window.location.href);
|
|
25848
|
-
const code = url.searchParams.get("code");
|
|
25849
|
-
const state = url.searchParams.get("state");
|
|
25850
|
-
if (code && state) {
|
|
25851
|
-
const res = await this.loginByWechat({ code });
|
|
25852
|
-
if (res.code === 200) {
|
|
25853
|
-
onSuccess?.(res.data);
|
|
25854
|
-
} else {
|
|
25855
|
-
onError?.(res);
|
|
25853
|
+
function addListener(emitter, event, fn, context, once) {
|
|
25854
|
+
if (typeof fn !== "function") {
|
|
25855
|
+
throw new TypeError("The listener must be a function");
|
|
25856
25856
|
}
|
|
25857
|
+
var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event : event;
|
|
25858
|
+
if (!emitter._events[evt])
|
|
25859
|
+
emitter._events[evt] = listener, emitter._eventsCount++;
|
|
25860
|
+
else if (!emitter._events[evt].fn)
|
|
25861
|
+
emitter._events[evt].push(listener);
|
|
25862
|
+
else
|
|
25863
|
+
emitter._events[evt] = [emitter._events[evt], listener];
|
|
25864
|
+
return emitter;
|
|
25857
25865
|
}
|
|
25858
|
-
|
|
25859
|
-
|
|
25860
|
-
|
|
25861
|
-
|
|
25862
|
-
|
|
25863
|
-
const user = resUser.data;
|
|
25864
|
-
if (user) {
|
|
25865
|
-
this.cacheStore.setLoginUser({
|
|
25866
|
-
user,
|
|
25867
|
-
id: user.id,
|
|
25868
|
-
accessToken,
|
|
25869
|
-
refreshToken
|
|
25870
|
-
});
|
|
25871
|
-
} else {
|
|
25872
|
-
console.error("登录失败");
|
|
25873
|
-
}
|
|
25874
|
-
}
|
|
25866
|
+
function clearEvent(emitter, evt) {
|
|
25867
|
+
if (--emitter._eventsCount === 0)
|
|
25868
|
+
emitter._events = new Events;
|
|
25869
|
+
else
|
|
25870
|
+
delete emitter._events[evt];
|
|
25875
25871
|
}
|
|
25876
|
-
|
|
25877
|
-
|
|
25878
|
-
|
|
25879
|
-
let data = { refreshToken: _refreshToken };
|
|
25880
|
-
if (!_refreshToken) {
|
|
25881
|
-
await this.cacheStore.clearCurrentUser();
|
|
25882
|
-
return {
|
|
25883
|
-
code: 401,
|
|
25884
|
-
message: "请先登录",
|
|
25885
|
-
data: {}
|
|
25886
|
-
};
|
|
25872
|
+
function EventEmitter3() {
|
|
25873
|
+
this._events = new Events;
|
|
25874
|
+
this._eventsCount = 0;
|
|
25887
25875
|
}
|
|
25888
|
-
|
|
25889
|
-
|
|
25890
|
-
|
|
25891
|
-
return
|
|
25876
|
+
EventEmitter3.prototype.eventNames = function eventNames() {
|
|
25877
|
+
var names = [], events, name;
|
|
25878
|
+
if (this._eventsCount === 0)
|
|
25879
|
+
return names;
|
|
25880
|
+
for (name in events = this._events) {
|
|
25881
|
+
if (has.call(events, name))
|
|
25882
|
+
names.push(prefix ? name.slice(1) : name);
|
|
25892
25883
|
}
|
|
25893
|
-
|
|
25894
|
-
|
|
25895
|
-
|
|
25896
|
-
|
|
25897
|
-
|
|
25898
|
-
|
|
25899
|
-
|
|
25900
|
-
|
|
25901
|
-
|
|
25902
|
-
|
|
25903
|
-
|
|
25904
|
-
|
|
25905
|
-
|
|
25906
|
-
|
|
25907
|
-
|
|
25908
|
-
|
|
25909
|
-
|
|
25910
|
-
|
|
25911
|
-
|
|
25912
|
-
|
|
25913
|
-
|
|
25914
|
-
|
|
25915
|
-
|
|
25916
|
-
|
|
25884
|
+
if (Object.getOwnPropertySymbols) {
|
|
25885
|
+
return names.concat(Object.getOwnPropertySymbols(events));
|
|
25886
|
+
}
|
|
25887
|
+
return names;
|
|
25888
|
+
};
|
|
25889
|
+
EventEmitter3.prototype.listeners = function listeners(event) {
|
|
25890
|
+
var evt = prefix ? prefix + event : event, handlers = this._events[evt];
|
|
25891
|
+
if (!handlers)
|
|
25892
|
+
return [];
|
|
25893
|
+
if (handlers.fn)
|
|
25894
|
+
return [handlers.fn];
|
|
25895
|
+
for (var i = 0, l = handlers.length, ee = new Array(l);i < l; i++) {
|
|
25896
|
+
ee[i] = handlers[i].fn;
|
|
25897
|
+
}
|
|
25898
|
+
return ee;
|
|
25899
|
+
};
|
|
25900
|
+
EventEmitter3.prototype.listenerCount = function listenerCount(event) {
|
|
25901
|
+
var evt = prefix ? prefix + event : event, listeners = this._events[evt];
|
|
25902
|
+
if (!listeners)
|
|
25903
|
+
return 0;
|
|
25904
|
+
if (listeners.fn)
|
|
25905
|
+
return 1;
|
|
25906
|
+
return listeners.length;
|
|
25907
|
+
};
|
|
25908
|
+
EventEmitter3.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
|
|
25909
|
+
var evt = prefix ? prefix + event : event;
|
|
25910
|
+
if (!this._events[evt])
|
|
25911
|
+
return false;
|
|
25912
|
+
var listeners = this._events[evt], len = arguments.length, args, i;
|
|
25913
|
+
if (listeners.fn) {
|
|
25914
|
+
if (listeners.once)
|
|
25915
|
+
this.removeListener(event, listeners.fn, undefined, true);
|
|
25916
|
+
switch (len) {
|
|
25917
|
+
case 1:
|
|
25918
|
+
return listeners.fn.call(listeners.context), true;
|
|
25919
|
+
case 2:
|
|
25920
|
+
return listeners.fn.call(listeners.context, a1), true;
|
|
25921
|
+
case 3:
|
|
25922
|
+
return listeners.fn.call(listeners.context, a1, a2), true;
|
|
25923
|
+
case 4:
|
|
25924
|
+
return listeners.fn.call(listeners.context, a1, a2, a3), true;
|
|
25925
|
+
case 5:
|
|
25926
|
+
return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
|
|
25927
|
+
case 6:
|
|
25928
|
+
return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
|
|
25929
|
+
}
|
|
25930
|
+
for (i = 1, args = new Array(len - 1);i < len; i++) {
|
|
25931
|
+
args[i - 1] = arguments[i];
|
|
25932
|
+
}
|
|
25933
|
+
listeners.fn.apply(listeners.context, args);
|
|
25934
|
+
} else {
|
|
25935
|
+
var length = listeners.length, j;
|
|
25936
|
+
for (i = 0;i < length; i++) {
|
|
25937
|
+
if (listeners[i].once)
|
|
25938
|
+
this.removeListener(event, listeners[i].fn, undefined, true);
|
|
25939
|
+
switch (len) {
|
|
25940
|
+
case 1:
|
|
25941
|
+
listeners[i].fn.call(listeners[i].context);
|
|
25942
|
+
break;
|
|
25943
|
+
case 2:
|
|
25944
|
+
listeners[i].fn.call(listeners[i].context, a1);
|
|
25945
|
+
break;
|
|
25946
|
+
case 3:
|
|
25947
|
+
listeners[i].fn.call(listeners[i].context, a1, a2);
|
|
25948
|
+
break;
|
|
25949
|
+
case 4:
|
|
25950
|
+
listeners[i].fn.call(listeners[i].context, a1, a2, a3);
|
|
25951
|
+
break;
|
|
25952
|
+
default:
|
|
25953
|
+
if (!args)
|
|
25954
|
+
for (j = 1, args = new Array(len - 1);j < len; j++) {
|
|
25955
|
+
args[j - 1] = arguments[j];
|
|
25956
|
+
}
|
|
25957
|
+
listeners[i].fn.apply(listeners[i].context, args);
|
|
25917
25958
|
}
|
|
25918
|
-
} else {
|
|
25919
|
-
that.storage.removeItem("token");
|
|
25920
|
-
await that.cacheStore.clearCurrentUser();
|
|
25921
25959
|
}
|
|
25922
|
-
return res;
|
|
25923
25960
|
}
|
|
25961
|
+
return true;
|
|
25962
|
+
};
|
|
25963
|
+
EventEmitter3.prototype.on = function on(event, fn, context) {
|
|
25964
|
+
return addListener(this, event, fn, context, false);
|
|
25965
|
+
};
|
|
25966
|
+
EventEmitter3.prototype.once = function once(event, fn, context) {
|
|
25967
|
+
return addListener(this, event, fn, context, true);
|
|
25968
|
+
};
|
|
25969
|
+
EventEmitter3.prototype.removeListener = function removeListener(event, fn, context, once) {
|
|
25970
|
+
var evt = prefix ? prefix + event : event;
|
|
25971
|
+
if (!this._events[evt])
|
|
25972
|
+
return this;
|
|
25973
|
+
if (!fn) {
|
|
25974
|
+
clearEvent(this, evt);
|
|
25975
|
+
return this;
|
|
25976
|
+
}
|
|
25977
|
+
var listeners = this._events[evt];
|
|
25978
|
+
if (listeners.fn) {
|
|
25979
|
+
if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {
|
|
25980
|
+
clearEvent(this, evt);
|
|
25981
|
+
}
|
|
25982
|
+
} else {
|
|
25983
|
+
for (var i = 0, events = [], length = listeners.length;i < length; i++) {
|
|
25984
|
+
if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {
|
|
25985
|
+
events.push(listeners[i]);
|
|
25986
|
+
}
|
|
25987
|
+
}
|
|
25988
|
+
if (events.length)
|
|
25989
|
+
this._events[evt] = events.length === 1 ? events[0] : events;
|
|
25990
|
+
else
|
|
25991
|
+
clearEvent(this, evt);
|
|
25992
|
+
}
|
|
25993
|
+
return this;
|
|
25994
|
+
};
|
|
25995
|
+
EventEmitter3.prototype.removeAllListeners = function removeAllListeners(event) {
|
|
25996
|
+
var evt;
|
|
25997
|
+
if (event) {
|
|
25998
|
+
evt = prefix ? prefix + event : event;
|
|
25999
|
+
if (this._events[evt])
|
|
26000
|
+
clearEvent(this, evt);
|
|
26001
|
+
} else {
|
|
26002
|
+
this._events = new Events;
|
|
26003
|
+
this._eventsCount = 0;
|
|
26004
|
+
}
|
|
26005
|
+
return this;
|
|
26006
|
+
};
|
|
26007
|
+
EventEmitter3.prototype.off = EventEmitter3.prototype.removeListener;
|
|
26008
|
+
EventEmitter3.prototype.addListener = EventEmitter3.prototype.on;
|
|
26009
|
+
EventEmitter3.prefixed = prefix;
|
|
26010
|
+
EventEmitter3.EventEmitter = EventEmitter3;
|
|
26011
|
+
{
|
|
26012
|
+
module.exports = EventEmitter3;
|
|
25924
26013
|
}
|
|
25925
|
-
|
|
25926
|
-
|
|
25927
|
-
|
|
25928
|
-
|
|
25929
|
-
|
|
25930
|
-
|
|
25931
|
-
|
|
25932
|
-
|
|
26014
|
+
})(eventemitter33);
|
|
26015
|
+
return eventemitter33.exports;
|
|
26016
|
+
}
|
|
26017
|
+
var eventemitter3Exports3 = requireEventemitter33();
|
|
26018
|
+
var EventEmitter3 = /* @__PURE__ */ getDefaultExportFromCjs3(eventemitter3Exports3);
|
|
26019
|
+
var reRunFn3 = (promiseOpts) => {
|
|
26020
|
+
const timeout = promiseOpts.timeout || 5 * 60 * 1000;
|
|
26021
|
+
const interval = promiseOpts.interval || 1000;
|
|
26022
|
+
const checkSuccess = promiseOpts?.checkSuccess || (() => true);
|
|
26023
|
+
const signal = promiseOpts.signal;
|
|
26024
|
+
return new Promise(async (resolve, reject) => {
|
|
26025
|
+
let intervalId;
|
|
26026
|
+
let timeoutId = setTimeout(() => {
|
|
26027
|
+
clearTimeout(intervalId);
|
|
26028
|
+
resolve({
|
|
26029
|
+
code: 500,
|
|
26030
|
+
message: "timeout"
|
|
26031
|
+
});
|
|
26032
|
+
}, timeout);
|
|
26033
|
+
const fn = promiseOpts.fn || (() => true);
|
|
26034
|
+
const runFn = async () => {
|
|
26035
|
+
if (signal?.aborted) {
|
|
26036
|
+
clearInterval(intervalId);
|
|
26037
|
+
clearTimeout(timeoutId);
|
|
26038
|
+
return resolve({
|
|
26039
|
+
code: 499,
|
|
26040
|
+
message: "operation cancelled"
|
|
26041
|
+
});
|
|
25933
26042
|
}
|
|
25934
|
-
|
|
25935
|
-
|
|
25936
|
-
|
|
25937
|
-
|
|
25938
|
-
|
|
25939
|
-
|
|
26043
|
+
const res = await fn();
|
|
26044
|
+
if (!!checkSuccess(res)) {
|
|
26045
|
+
clearInterval(intervalId);
|
|
26046
|
+
clearTimeout(timeoutId);
|
|
26047
|
+
resolve({
|
|
26048
|
+
code: 200,
|
|
26049
|
+
data: res
|
|
26050
|
+
});
|
|
26051
|
+
} else {
|
|
26052
|
+
setTimeout(() => {
|
|
26053
|
+
runFn();
|
|
26054
|
+
}, interval);
|
|
25940
26055
|
}
|
|
25941
|
-
|
|
25942
|
-
|
|
25943
|
-
|
|
26056
|
+
};
|
|
26057
|
+
if (signal) {
|
|
26058
|
+
signal.addEventListener("abort", () => {
|
|
26059
|
+
clearInterval(intervalId);
|
|
26060
|
+
clearTimeout(timeoutId);
|
|
26061
|
+
resolve({
|
|
26062
|
+
code: 499,
|
|
26063
|
+
message: "operation cancelled"
|
|
26064
|
+
});
|
|
26065
|
+
});
|
|
25944
26066
|
}
|
|
26067
|
+
runFn();
|
|
26068
|
+
});
|
|
26069
|
+
};
|
|
26070
|
+
|
|
26071
|
+
class BaseLoad3 {
|
|
26072
|
+
modules = new Map;
|
|
26073
|
+
event;
|
|
26074
|
+
loading;
|
|
26075
|
+
static reRunFn = reRunFn3;
|
|
26076
|
+
timeout = 5 * 60 * 1000;
|
|
26077
|
+
constructor() {
|
|
26078
|
+
this.event = new EventEmitter3;
|
|
26079
|
+
this.loading = false;
|
|
25945
26080
|
}
|
|
25946
|
-
|
|
25947
|
-
const
|
|
25948
|
-
|
|
25949
|
-
|
|
25950
|
-
|
|
25951
|
-
|
|
25952
|
-
|
|
26081
|
+
listenKey(key, listenOpts) {
|
|
26082
|
+
const timeout = listenOpts?.timeout ?? this.timeout;
|
|
26083
|
+
return new Promise((resolve) => {
|
|
26084
|
+
const timeoutId = setTimeout(() => {
|
|
26085
|
+
this.event.removeListener(key, onEvent);
|
|
26086
|
+
resolve({
|
|
26087
|
+
code: 500,
|
|
26088
|
+
message: "timeout"
|
|
26089
|
+
});
|
|
26090
|
+
}, timeout);
|
|
26091
|
+
const onEvent = (error) => {
|
|
26092
|
+
clearTimeout(timeoutId);
|
|
26093
|
+
if (error) {
|
|
26094
|
+
return resolve({
|
|
26095
|
+
code: 500,
|
|
26096
|
+
message: error
|
|
26097
|
+
});
|
|
25953
26098
|
}
|
|
25954
|
-
|
|
25955
|
-
|
|
25956
|
-
|
|
25957
|
-
afterResponse: async (response, ctx) => {
|
|
25958
|
-
if (response?.code === 401 && check401 && !token) {
|
|
25959
|
-
return await that.afterCheck401ToRefreshToken(response, ctx);
|
|
26099
|
+
const data = this.modules.get(key);
|
|
26100
|
+
if (data?.loadSuccessClear) {
|
|
26101
|
+
this.remove(key);
|
|
25960
26102
|
}
|
|
25961
|
-
|
|
25962
|
-
|
|
26103
|
+
resolve({
|
|
26104
|
+
code: 200,
|
|
26105
|
+
data: data?.modules
|
|
26106
|
+
});
|
|
26107
|
+
};
|
|
26108
|
+
this.event.once(key, onEvent);
|
|
25963
26109
|
});
|
|
25964
26110
|
}
|
|
25965
|
-
async
|
|
25966
|
-
|
|
25967
|
-
|
|
25968
|
-
|
|
26111
|
+
async hasLoaded(key, hasLoadOpts) {
|
|
26112
|
+
if (!key) {
|
|
26113
|
+
return {
|
|
26114
|
+
code: 404,
|
|
26115
|
+
message: "key is required"
|
|
26116
|
+
};
|
|
25969
26117
|
}
|
|
25970
|
-
|
|
26118
|
+
const has = this.modules.has(key);
|
|
26119
|
+
if (!has) {
|
|
26120
|
+
const isExist = hasLoadOpts?.isExist ?? true;
|
|
26121
|
+
const timeout = hasLoadOpts?.timeout ?? this.timeout;
|
|
26122
|
+
if (isExist) {
|
|
26123
|
+
return await this.listenKey(key, { timeout });
|
|
26124
|
+
}
|
|
26125
|
+
return {
|
|
26126
|
+
code: 404
|
|
26127
|
+
};
|
|
26128
|
+
}
|
|
26129
|
+
const data = this.modules.get(key);
|
|
26130
|
+
if (data?.status === "loaded") {
|
|
26131
|
+
return {
|
|
26132
|
+
code: 200,
|
|
26133
|
+
data: data.modules
|
|
26134
|
+
};
|
|
26135
|
+
}
|
|
26136
|
+
if (data?.status === "loading") {
|
|
26137
|
+
return await this.listenKey(key, { timeout: hasLoadOpts?.timeout ?? this.timeout });
|
|
26138
|
+
}
|
|
26139
|
+
if (data?.status === "error") {
|
|
26140
|
+
return {
|
|
26141
|
+
code: 500,
|
|
26142
|
+
message: "load error"
|
|
26143
|
+
};
|
|
26144
|
+
}
|
|
26145
|
+
if (data?.status === "cancel") {
|
|
26146
|
+
return {
|
|
26147
|
+
code: 499,
|
|
26148
|
+
message: "operation cancelled"
|
|
26149
|
+
};
|
|
26150
|
+
}
|
|
26151
|
+
return {
|
|
26152
|
+
code: 404
|
|
26153
|
+
};
|
|
25971
26154
|
}
|
|
25972
|
-
async
|
|
25973
|
-
const
|
|
25974
|
-
|
|
26155
|
+
async loadFn(loadContent, opts) {
|
|
26156
|
+
const key = opts.key;
|
|
26157
|
+
if (!key) {
|
|
26158
|
+
return {
|
|
26159
|
+
code: 404,
|
|
26160
|
+
message: "key is required"
|
|
26161
|
+
};
|
|
26162
|
+
}
|
|
26163
|
+
const newModule = {
|
|
26164
|
+
key: opts.key,
|
|
26165
|
+
status: "loading",
|
|
26166
|
+
loading: true,
|
|
26167
|
+
loadSuccessClear: opts.loadSuccessClear ?? true
|
|
26168
|
+
};
|
|
26169
|
+
let errorMessage = "";
|
|
26170
|
+
try {
|
|
26171
|
+
const isReRun = opts.isReRun ?? false;
|
|
26172
|
+
let res;
|
|
26173
|
+
if (!isReRun) {
|
|
26174
|
+
this.modules.set(key, newModule);
|
|
26175
|
+
res = await loadContent();
|
|
26176
|
+
} else {
|
|
26177
|
+
newModule.controller = new AbortController;
|
|
26178
|
+
const signal = newModule.controller.signal;
|
|
26179
|
+
this.modules.set(key, newModule);
|
|
26180
|
+
const data = await reRunFn3({
|
|
26181
|
+
timeout: opts.timeout,
|
|
26182
|
+
interval: opts.interval,
|
|
26183
|
+
checkSuccess: opts.checkSuccess,
|
|
26184
|
+
fn: loadContent,
|
|
26185
|
+
signal
|
|
26186
|
+
});
|
|
26187
|
+
newModule.controller = null;
|
|
26188
|
+
if (data.code === 499) {
|
|
26189
|
+
newModule.status = "cancel";
|
|
26190
|
+
return {
|
|
26191
|
+
code: 499,
|
|
26192
|
+
message: "operation cancelled"
|
|
26193
|
+
};
|
|
26194
|
+
}
|
|
26195
|
+
if (data.code !== 200) {
|
|
26196
|
+
throw new Error(data.message);
|
|
26197
|
+
}
|
|
26198
|
+
res = data.data;
|
|
26199
|
+
}
|
|
26200
|
+
newModule.modules = res;
|
|
26201
|
+
newModule.status = "loaded";
|
|
26202
|
+
return {
|
|
26203
|
+
code: 200,
|
|
26204
|
+
data: res
|
|
26205
|
+
};
|
|
26206
|
+
} catch (error) {
|
|
26207
|
+
errorMessage = error.message;
|
|
26208
|
+
newModule.status = "error";
|
|
26209
|
+
return {
|
|
26210
|
+
code: 500,
|
|
26211
|
+
message: error
|
|
26212
|
+
};
|
|
26213
|
+
} finally {
|
|
26214
|
+
newModule.loading = false;
|
|
26215
|
+
this.modules.set(opts.key, newModule);
|
|
26216
|
+
if (!errorMessage) {
|
|
26217
|
+
this.event.emit(opts.key);
|
|
26218
|
+
} else {
|
|
26219
|
+
this.event.emit(opts.key, errorMessage);
|
|
26220
|
+
}
|
|
26221
|
+
}
|
|
25975
26222
|
}
|
|
25976
|
-
async
|
|
25977
|
-
|
|
26223
|
+
async load(loadContent, opts) {
|
|
26224
|
+
this.loading = true;
|
|
26225
|
+
const key = opts.key;
|
|
26226
|
+
if (!key) {
|
|
26227
|
+
return {
|
|
26228
|
+
code: 404,
|
|
26229
|
+
message: "key is required"
|
|
26230
|
+
};
|
|
26231
|
+
}
|
|
26232
|
+
if (opts?.force) {
|
|
26233
|
+
this.remove(key);
|
|
26234
|
+
}
|
|
26235
|
+
const has = this.modules.has(key);
|
|
26236
|
+
if (has) {
|
|
26237
|
+
return await this.hasLoaded(key);
|
|
26238
|
+
}
|
|
26239
|
+
if (typeof loadContent === "function") {
|
|
26240
|
+
return this.loadFn(loadContent, opts);
|
|
26241
|
+
}
|
|
26242
|
+
console.error("loadContent is not a function and not has loaded");
|
|
25978
26243
|
}
|
|
25979
|
-
|
|
25980
|
-
const
|
|
25981
|
-
|
|
25982
|
-
|
|
25983
|
-
this.
|
|
25984
|
-
|
|
26244
|
+
remove(key) {
|
|
26245
|
+
const has = this.modules.has(key);
|
|
26246
|
+
if (has) {
|
|
26247
|
+
this.checkRemoveController(key);
|
|
26248
|
+
this.modules.delete(key);
|
|
26249
|
+
}
|
|
26250
|
+
}
|
|
26251
|
+
emitLoaded(key) {
|
|
26252
|
+
this.checkRemoveController(key);
|
|
26253
|
+
this.event.emit(key);
|
|
26254
|
+
}
|
|
26255
|
+
setModule(key, data, loadData) {
|
|
26256
|
+
const newModule = {
|
|
26257
|
+
key,
|
|
26258
|
+
status: "loaded",
|
|
26259
|
+
loading: false,
|
|
26260
|
+
modules: data || {},
|
|
26261
|
+
...loadData
|
|
26262
|
+
};
|
|
26263
|
+
this.modules.set(key, newModule);
|
|
26264
|
+
this.emitLoaded(key);
|
|
26265
|
+
return newModule;
|
|
26266
|
+
}
|
|
26267
|
+
cancel(key) {
|
|
26268
|
+
this.checkRemoveController(key);
|
|
26269
|
+
}
|
|
26270
|
+
checkRemoveController(key) {
|
|
26271
|
+
const data = this.modules.get(key);
|
|
26272
|
+
if (data?.controller) {
|
|
26273
|
+
data.controller?.abort?.();
|
|
26274
|
+
delete data.controller;
|
|
26275
|
+
this.modules.set(key, data);
|
|
26276
|
+
}
|
|
26277
|
+
}
|
|
26278
|
+
}
|
|
26279
|
+
|
|
26280
|
+
// node_modules/.pnpm/@kevisual+api@0.0.52_@types+react@19.2.10_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@kevisual/api/query/query-login/query-login.ts
|
|
26281
|
+
class QueryLogin extends BaseQuery {
|
|
26282
|
+
cacheStore;
|
|
26283
|
+
isBrowser;
|
|
26284
|
+
load;
|
|
26285
|
+
storage;
|
|
26286
|
+
onLoad;
|
|
26287
|
+
constructor(opts) {
|
|
26288
|
+
super({
|
|
26289
|
+
query: opts?.query || new Query2
|
|
26290
|
+
});
|
|
26291
|
+
this.cacheStore = new LoginCacheStore({ name: "login", cache: opts?.cache });
|
|
26292
|
+
this.isBrowser = opts?.isBrowser ?? true;
|
|
26293
|
+
this.init();
|
|
26294
|
+
this.onLoad = opts?.onLoad;
|
|
26295
|
+
this.storage = opts?.storage || globalThis?.localStorage;
|
|
26296
|
+
}
|
|
26297
|
+
setQuery(query) {
|
|
26298
|
+
this.query = query;
|
|
26299
|
+
}
|
|
26300
|
+
async init() {
|
|
26301
|
+
await this.cacheStore.init();
|
|
26302
|
+
this.load = true;
|
|
26303
|
+
this.onLoad?.();
|
|
26304
|
+
}
|
|
26305
|
+
async post(data, opts) {
|
|
26306
|
+
try {
|
|
26307
|
+
return this.query.post({ path: "user", ...data }, opts);
|
|
26308
|
+
} catch (error) {
|
|
26309
|
+
console.log("error", error);
|
|
25985
26310
|
return {
|
|
25986
|
-
code:
|
|
25987
|
-
data: {
|
|
25988
|
-
accessToken: user.accessToken,
|
|
25989
|
-
refreshToken: user.refreshToken
|
|
25990
|
-
},
|
|
25991
|
-
success: true,
|
|
25992
|
-
message: "切换用户成功"
|
|
26311
|
+
code: 400
|
|
25993
26312
|
};
|
|
25994
26313
|
}
|
|
25995
|
-
|
|
26314
|
+
}
|
|
26315
|
+
async login(data) {
|
|
26316
|
+
const res = await this.post({ key: "login", ...data });
|
|
25996
26317
|
if (res.code === 200) {
|
|
25997
|
-
const { accessToken, refreshToken } = res?.data || {};
|
|
26318
|
+
const { accessToken, refreshToken, accessTokenExpiresIn } = res?.data || {};
|
|
25998
26319
|
this.storage.setItem("token", accessToken || "");
|
|
25999
|
-
await this.beforeSetLoginUser({ accessToken, refreshToken });
|
|
26320
|
+
await this.beforeSetLoginUser({ accessToken, refreshToken, accessTokenExpiresIn });
|
|
26000
26321
|
}
|
|
26001
26322
|
return res;
|
|
26002
26323
|
}
|
|
26003
|
-
async
|
|
26004
|
-
this.
|
|
26005
|
-
|
|
26006
|
-
|
|
26007
|
-
|
|
26008
|
-
|
|
26009
|
-
|
|
26010
|
-
return
|
|
26324
|
+
async loginByCode(data) {
|
|
26325
|
+
const res = await this.post({ path: "sms", key: "login", data });
|
|
26326
|
+
if (res.code === 200) {
|
|
26327
|
+
const { accessToken, refreshToken, accessTokenExpiresIn } = res?.data || {};
|
|
26328
|
+
this.storage.setItem("token", accessToken || "");
|
|
26329
|
+
await this.beforeSetLoginUser({ accessToken, refreshToken, accessTokenExpiresIn });
|
|
26330
|
+
}
|
|
26331
|
+
return res;
|
|
26011
26332
|
}
|
|
26012
|
-
async
|
|
26013
|
-
const
|
|
26014
|
-
|
|
26015
|
-
|
|
26016
|
-
key: "hasUser",
|
|
26017
|
-
data: {
|
|
26018
|
-
username
|
|
26019
|
-
}
|
|
26020
|
-
}, {
|
|
26021
|
-
afterResponse: async (response, ctx) => {
|
|
26022
|
-
if (response?.code === 401) {
|
|
26023
|
-
const res = await that.afterCheck401ToRefreshToken(response, ctx, true);
|
|
26024
|
-
return res;
|
|
26025
|
-
}
|
|
26026
|
-
return response;
|
|
26027
|
-
}
|
|
26028
|
-
});
|
|
26333
|
+
async setLoginToken(token) {
|
|
26334
|
+
const { accessToken, refreshToken, accessTokenExpiresIn } = token;
|
|
26335
|
+
this.storage.setItem("token", accessToken || "");
|
|
26336
|
+
await this.beforeSetLoginUser({ accessToken, refreshToken, accessTokenExpiresIn });
|
|
26029
26337
|
}
|
|
26030
|
-
async
|
|
26031
|
-
const res = await this.post({
|
|
26032
|
-
path: "user",
|
|
26033
|
-
key: "checkLoginStatus",
|
|
26034
|
-
loginToken: token
|
|
26035
|
-
});
|
|
26338
|
+
async loginByWechat(data) {
|
|
26339
|
+
const res = await this.post({ path: "wx", key: "open-login", code: data.code });
|
|
26036
26340
|
if (res.code === 200) {
|
|
26037
|
-
const accessToken = res
|
|
26341
|
+
const { accessToken, refreshToken, accessTokenExpiresIn } = res?.data || {};
|
|
26038
26342
|
this.storage.setItem("token", accessToken || "");
|
|
26039
|
-
await this.beforeSetLoginUser({ accessToken, refreshToken
|
|
26040
|
-
|
|
26343
|
+
await this.beforeSetLoginUser({ accessToken, refreshToken, accessTokenExpiresIn });
|
|
26344
|
+
}
|
|
26345
|
+
return res;
|
|
26346
|
+
}
|
|
26347
|
+
async checkWechat({ onSuccess, onError }) {
|
|
26348
|
+
const url = new URL(window.location.href);
|
|
26349
|
+
const code = url.searchParams.get("code");
|
|
26350
|
+
const state = url.searchParams.get("state");
|
|
26351
|
+
if (code && state) {
|
|
26352
|
+
const res = await this.loginByWechat({ code });
|
|
26353
|
+
if (res.code === 200) {
|
|
26354
|
+
onSuccess?.(res.data);
|
|
26355
|
+
} else {
|
|
26356
|
+
onError?.(res);
|
|
26357
|
+
}
|
|
26358
|
+
}
|
|
26359
|
+
}
|
|
26360
|
+
async beforeSetLoginUser({ accessToken, refreshToken, check401, accessTokenExpiresIn }) {
|
|
26361
|
+
if (accessToken && refreshToken) {
|
|
26362
|
+
const resUser = await this.getMe(accessToken, check401);
|
|
26363
|
+
if (resUser.code === 200) {
|
|
26364
|
+
const user = resUser.data;
|
|
26365
|
+
if (user) {
|
|
26366
|
+
this.cacheStore.setLoginUser({
|
|
26367
|
+
user,
|
|
26368
|
+
id: user.id,
|
|
26369
|
+
accessToken,
|
|
26370
|
+
refreshToken,
|
|
26371
|
+
accessTokenExpiresIn,
|
|
26372
|
+
createdAt: Date.now()
|
|
26373
|
+
});
|
|
26374
|
+
} else {
|
|
26375
|
+
console.error("登录失败");
|
|
26376
|
+
}
|
|
26377
|
+
}
|
|
26378
|
+
}
|
|
26379
|
+
}
|
|
26380
|
+
async queryRefreshToken(refreshToken) {
|
|
26381
|
+
const _refreshToken = refreshToken || this.cacheStore.getRefreshToken();
|
|
26382
|
+
let data = { refreshToken: _refreshToken };
|
|
26383
|
+
if (!_refreshToken) {
|
|
26384
|
+
await this.cacheStore.clearCurrentUser();
|
|
26385
|
+
return {
|
|
26386
|
+
code: 401,
|
|
26387
|
+
message: "请先登录",
|
|
26388
|
+
data: {}
|
|
26389
|
+
};
|
|
26390
|
+
}
|
|
26391
|
+
return this.post({ key: "refreshToken", data }, {
|
|
26392
|
+
afterResponse: async (response, ctx) => {
|
|
26393
|
+
return response;
|
|
26394
|
+
}
|
|
26395
|
+
});
|
|
26396
|
+
}
|
|
26397
|
+
async afterCheck401ToRefreshToken(response, ctx, refetch) {
|
|
26398
|
+
const that = this;
|
|
26399
|
+
if (response?.code === 401) {
|
|
26400
|
+
const hasRefreshToken = await that.cacheStore.getRefreshToken();
|
|
26401
|
+
if (hasRefreshToken) {
|
|
26402
|
+
const res = await that.queryRefreshToken(hasRefreshToken);
|
|
26403
|
+
if (res.code === 200) {
|
|
26404
|
+
const { accessToken, refreshToken, accessTokenExpiresIn } = res?.data || {};
|
|
26405
|
+
that.storage.setItem("token", accessToken || "");
|
|
26406
|
+
await that.beforeSetLoginUser({ accessToken, refreshToken, accessTokenExpiresIn, check401: false });
|
|
26407
|
+
if (refetch && ctx && ctx.req && ctx.req.url && ctx.fetch) {
|
|
26408
|
+
await new Promise((resolve) => setTimeout(resolve, 1500));
|
|
26409
|
+
const url = ctx.req?.url;
|
|
26410
|
+
const body = ctx.req?.body;
|
|
26411
|
+
const headers = ctx.req?.headers;
|
|
26412
|
+
const res2 = await ctx.fetch(url, {
|
|
26413
|
+
method: "POST",
|
|
26414
|
+
body,
|
|
26415
|
+
headers: { ...headers, Authorization: `Bearer ${accessToken}` }
|
|
26416
|
+
});
|
|
26417
|
+
return res2;
|
|
26418
|
+
}
|
|
26419
|
+
} else {
|
|
26420
|
+
that.storage.removeItem("token");
|
|
26421
|
+
await that.cacheStore.clearCurrentUser();
|
|
26422
|
+
}
|
|
26423
|
+
return res;
|
|
26424
|
+
}
|
|
26425
|
+
}
|
|
26426
|
+
return response;
|
|
26427
|
+
}
|
|
26428
|
+
async run401Action(response, ctx, opts) {
|
|
26429
|
+
const that = this;
|
|
26430
|
+
const refetch = opts?.refetch ?? false;
|
|
26431
|
+
if (response?.code === 401) {
|
|
26432
|
+
if (that.query.stop === true) {
|
|
26433
|
+
return { code: 500, success: false, message: "refresh token loading..." };
|
|
26434
|
+
}
|
|
26435
|
+
that.query.stop = true;
|
|
26436
|
+
const res = await that.afterCheck401ToRefreshToken(response, ctx, refetch);
|
|
26437
|
+
that.query.stop = false;
|
|
26438
|
+
opts?.afterCheck?.(res);
|
|
26439
|
+
if (res.code === 401) {
|
|
26440
|
+
opts?.afterAlso401?.(res);
|
|
26441
|
+
}
|
|
26442
|
+
return res;
|
|
26443
|
+
} else {
|
|
26444
|
+
return response;
|
|
26445
|
+
}
|
|
26446
|
+
}
|
|
26447
|
+
async getMe(token, check401 = true) {
|
|
26448
|
+
const _token = token || this.storage.getItem("token");
|
|
26449
|
+
const that = this;
|
|
26450
|
+
return that.post({ key: "me" }, {
|
|
26451
|
+
beforeRequest: async (config) => {
|
|
26452
|
+
if (config.headers) {
|
|
26453
|
+
config.headers["Authorization"] = `Bearer ${_token}`;
|
|
26454
|
+
}
|
|
26455
|
+
if (!_token) {
|
|
26456
|
+
return false;
|
|
26457
|
+
}
|
|
26458
|
+
return config;
|
|
26459
|
+
},
|
|
26460
|
+
afterResponse: async (response, ctx) => {
|
|
26461
|
+
if (response?.code === 401 && check401 && !token) {
|
|
26462
|
+
return await that.afterCheck401ToRefreshToken(response, ctx);
|
|
26463
|
+
}
|
|
26464
|
+
return response;
|
|
26465
|
+
}
|
|
26466
|
+
});
|
|
26467
|
+
}
|
|
26468
|
+
async checkLocalUser() {
|
|
26469
|
+
const user = await this.cacheStore.getCurrentUser();
|
|
26470
|
+
if (user) {
|
|
26471
|
+
return user;
|
|
26472
|
+
}
|
|
26473
|
+
return null;
|
|
26474
|
+
}
|
|
26475
|
+
async checkLocalToken() {
|
|
26476
|
+
const token = this.storage.getItem("token");
|
|
26477
|
+
return !!token;
|
|
26478
|
+
}
|
|
26479
|
+
async getToken() {
|
|
26480
|
+
const token = this.storage.getItem("token");
|
|
26481
|
+
return token || "";
|
|
26482
|
+
}
|
|
26483
|
+
async beforeRequest(opts = {}) {
|
|
26484
|
+
const token = this.storage.getItem("token");
|
|
26485
|
+
if (token) {
|
|
26486
|
+
opts.headers = { ...opts.headers, Authorization: `Bearer ${token}` };
|
|
26487
|
+
}
|
|
26488
|
+
return opts;
|
|
26489
|
+
}
|
|
26490
|
+
async postSwitchUser(username) {
|
|
26491
|
+
return this.post({ key: "switchCheck", data: { username } });
|
|
26492
|
+
}
|
|
26493
|
+
async switchUser(username) {
|
|
26494
|
+
const localUserList = await this.cacheStore.getCurrentUserList();
|
|
26495
|
+
const user = localUserList.find((userItem) => userItem.user.username === username);
|
|
26496
|
+
if (user) {
|
|
26497
|
+
this.storage.setItem("token", user.accessToken || "");
|
|
26498
|
+
await this.beforeSetLoginUser({
|
|
26499
|
+
accessToken: user.accessToken,
|
|
26500
|
+
refreshToken: user.refreshToken,
|
|
26501
|
+
accessTokenExpiresIn: user.accessTokenExpiresIn
|
|
26502
|
+
});
|
|
26503
|
+
return {
|
|
26504
|
+
code: 200,
|
|
26505
|
+
data: {
|
|
26506
|
+
accessToken: user.accessToken,
|
|
26507
|
+
refreshToken: user.refreshToken,
|
|
26508
|
+
accessTokenExpiresIn: user.accessTokenExpiresIn
|
|
26509
|
+
},
|
|
26510
|
+
success: true,
|
|
26511
|
+
message: "切换用户成功"
|
|
26512
|
+
};
|
|
26513
|
+
}
|
|
26514
|
+
const res = await this.postSwitchUser(username);
|
|
26515
|
+
if (res.code === 200) {
|
|
26516
|
+
const { accessToken, refreshToken, accessTokenExpiresIn } = res?.data || {};
|
|
26517
|
+
this.storage.setItem("token", accessToken || "");
|
|
26518
|
+
await this.beforeSetLoginUser({ accessToken, refreshToken, accessTokenExpiresIn });
|
|
26519
|
+
}
|
|
26520
|
+
return res;
|
|
26521
|
+
}
|
|
26522
|
+
async logout() {
|
|
26523
|
+
this.storage.removeItem("token");
|
|
26524
|
+
const users = await this.cacheStore.getCurrentUserList();
|
|
26525
|
+
const tokens = users.map((user) => {
|
|
26526
|
+
return user?.accessToken;
|
|
26527
|
+
}).filter(Boolean);
|
|
26528
|
+
this.cacheStore.delValue();
|
|
26529
|
+
return this.post({ key: "logout", data: { tokens } });
|
|
26530
|
+
}
|
|
26531
|
+
async hasUser(username) {
|
|
26532
|
+
const that = this;
|
|
26533
|
+
return this.post({
|
|
26534
|
+
path: "org",
|
|
26535
|
+
key: "hasUser",
|
|
26536
|
+
data: {
|
|
26537
|
+
username
|
|
26538
|
+
}
|
|
26539
|
+
}, {
|
|
26540
|
+
afterResponse: async (response, ctx) => {
|
|
26541
|
+
if (response?.code === 401) {
|
|
26542
|
+
const res = await that.afterCheck401ToRefreshToken(response, ctx, true);
|
|
26543
|
+
return res;
|
|
26544
|
+
}
|
|
26545
|
+
return response;
|
|
26546
|
+
}
|
|
26547
|
+
});
|
|
26548
|
+
}
|
|
26549
|
+
async checkLoginStatus(token) {
|
|
26550
|
+
const res = await this.post({
|
|
26551
|
+
path: "user",
|
|
26552
|
+
key: "checkLoginStatus",
|
|
26553
|
+
loginToken: token
|
|
26554
|
+
});
|
|
26555
|
+
if (res.code === 200) {
|
|
26556
|
+
const { accessTokenExpiresIn, accessToken, refreshToken } = res.data;
|
|
26557
|
+
this.storage.setItem("token", accessToken || "");
|
|
26558
|
+
await this.beforeSetLoginUser({ accessToken, refreshToken, accessTokenExpiresIn });
|
|
26559
|
+
return res;
|
|
26041
26560
|
}
|
|
26042
26561
|
return false;
|
|
26043
26562
|
}
|
|
@@ -26045,14 +26564,60 @@ var QueryLogin = class extends BaseQuery {
|
|
|
26045
26564
|
const randomId = Math.random().toString(36).substring(2, 15);
|
|
26046
26565
|
const timestamp = Date.now();
|
|
26047
26566
|
const tokenSecret = "xiao" + randomId;
|
|
26048
|
-
|
|
26049
|
-
|
|
26050
|
-
|
|
26051
|
-
}
|
|
26567
|
+
let sign = "";
|
|
26568
|
+
if (MD5) {
|
|
26569
|
+
sign = MD5(`${tokenSecret}${timestamp}`).toString();
|
|
26570
|
+
}
|
|
26571
|
+
let token = "";
|
|
26572
|
+
if (jsonwebtoken) {
|
|
26573
|
+
token = jsonwebtoken.sign({ randomId, timestamp, sign }, tokenSecret, {
|
|
26574
|
+
expiresIn: 60 * 10
|
|
26575
|
+
});
|
|
26576
|
+
} else {
|
|
26577
|
+
token = tokenSecret;
|
|
26578
|
+
}
|
|
26052
26579
|
const url = `${baseURL}/api/router?path=user&key=webLogin&p&loginToken=${token}&sign=${sign}&randomId=${randomId}`;
|
|
26053
26580
|
return { url, token, tokenSecret };
|
|
26054
26581
|
}
|
|
26055
|
-
|
|
26582
|
+
async pollLoginStatus(data) {
|
|
26583
|
+
const token = data.token;
|
|
26584
|
+
const load2 = new BaseLoad3;
|
|
26585
|
+
load2.load(async () => {
|
|
26586
|
+
const res2 = await this.checkLoginStatus(token);
|
|
26587
|
+
if (res2.code === 500) {
|
|
26588
|
+
load2.cancel("check-login-status");
|
|
26589
|
+
}
|
|
26590
|
+
return res2;
|
|
26591
|
+
}, {
|
|
26592
|
+
key: "check-login-status",
|
|
26593
|
+
isReRun: true,
|
|
26594
|
+
checkSuccess: (data2) => {
|
|
26595
|
+
return data2?.code === 200;
|
|
26596
|
+
}
|
|
26597
|
+
});
|
|
26598
|
+
const res = await load2.hasLoaded("check-login-status", {
|
|
26599
|
+
timeout: 60 * 3 * 1000
|
|
26600
|
+
});
|
|
26601
|
+
if (res.code === 200 && res.data?.code === 200) {
|
|
26602
|
+
try {
|
|
26603
|
+
console.log("网页登录成功");
|
|
26604
|
+
return true;
|
|
26605
|
+
} catch (error) {
|
|
26606
|
+
console.log("登录失败", error);
|
|
26607
|
+
return false;
|
|
26608
|
+
}
|
|
26609
|
+
}
|
|
26610
|
+
console.log("登录失败", res);
|
|
26611
|
+
return false;
|
|
26612
|
+
}
|
|
26613
|
+
}
|
|
26614
|
+
|
|
26615
|
+
// node_modules/.pnpm/@kevisual+api@0.0.52_@types+react@19.2.10_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@kevisual/api/query/query-login/login-node-cache.ts
|
|
26616
|
+
import { homedir } from "node:os";
|
|
26617
|
+
import { join, dirname } from "node:path";
|
|
26618
|
+
import fs4 from "node:fs";
|
|
26619
|
+
import { readFileSync, writeFileSync, accessSync } from "node:fs";
|
|
26620
|
+
import { readFile, writeFile, unlink, mkdir } from "node:fs/promises";
|
|
26056
26621
|
var fileExists = async (filePath, { createIfNotExists = true, isFile = true, isDir = false } = {}) => {
|
|
26057
26622
|
try {
|
|
26058
26623
|
accessSync(filePath, fs4.constants.F_OK);
|
|
@@ -26088,7 +26653,8 @@ var getHostName = () => {
|
|
|
26088
26653
|
const hostname = new URL(baseURL).hostname;
|
|
26089
26654
|
return hostname;
|
|
26090
26655
|
};
|
|
26091
|
-
|
|
26656
|
+
|
|
26657
|
+
class StorageNode {
|
|
26092
26658
|
cacheData;
|
|
26093
26659
|
filePath;
|
|
26094
26660
|
constructor() {
|
|
@@ -26129,8 +26695,9 @@ var StorageNode = class {
|
|
|
26129
26695
|
key(index) {
|
|
26130
26696
|
return Object.keys(this.cacheData)[index];
|
|
26131
26697
|
}
|
|
26132
|
-
}
|
|
26133
|
-
|
|
26698
|
+
}
|
|
26699
|
+
|
|
26700
|
+
class LoginNodeCache {
|
|
26134
26701
|
filepath;
|
|
26135
26702
|
constructor(filepath) {
|
|
26136
26703
|
this.filepath = filepath || join(homedir(), ".config", "envision", "config", `${getHostName()}-login.json`);
|
|
@@ -26173,10 +26740,13 @@ var LoginNodeCache = class {
|
|
|
26173
26740
|
async init() {
|
|
26174
26741
|
return await this.loadCache(this.filepath);
|
|
26175
26742
|
}
|
|
26176
|
-
}
|
|
26743
|
+
}
|
|
26744
|
+
|
|
26745
|
+
// node_modules/.pnpm/@kevisual+api@0.0.52_@types+react@19.2.10_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@kevisual/api/query/query-login/query-login-node.ts
|
|
26177
26746
|
var storage = new StorageNode;
|
|
26178
26747
|
await storage.loadCache();
|
|
26179
|
-
|
|
26748
|
+
|
|
26749
|
+
class QueryLoginNode extends QueryLogin {
|
|
26180
26750
|
constructor(opts) {
|
|
26181
26751
|
super({
|
|
26182
26752
|
...opts,
|
|
@@ -26184,7 +26754,7 @@ var QueryLoginNode = class extends QueryLogin {
|
|
|
26184
26754
|
cache: new LoginNodeCache
|
|
26185
26755
|
});
|
|
26186
26756
|
}
|
|
26187
|
-
}
|
|
26757
|
+
}
|
|
26188
26758
|
|
|
26189
26759
|
// src/module/query.ts
|
|
26190
26760
|
var config = getConfig2();
|
|
@@ -26572,612 +27142,162 @@ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
|
|
|
26572
27142
|
returnValue += string.slice(endIndex);
|
|
26573
27143
|
return returnValue;
|
|
26574
27144
|
}
|
|
26575
|
-
|
|
26576
|
-
// node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.js
|
|
26577
|
-
var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
|
|
26578
|
-
var GENERATOR = Symbol("GENERATOR");
|
|
26579
|
-
var STYLER = Symbol("STYLER");
|
|
26580
|
-
var IS_EMPTY = Symbol("IS_EMPTY");
|
|
26581
|
-
var levelMapping = [
|
|
26582
|
-
"ansi",
|
|
26583
|
-
"ansi",
|
|
26584
|
-
"ansi256",
|
|
26585
|
-
"ansi16m"
|
|
26586
|
-
];
|
|
26587
|
-
var styles2 = Object.create(null);
|
|
26588
|
-
var applyOptions = (object, options = {}) => {
|
|
26589
|
-
if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
|
|
26590
|
-
throw new Error("The `level` option should be an integer from 0 to 3");
|
|
26591
|
-
}
|
|
26592
|
-
const colorLevel = stdoutColor ? stdoutColor.level : 0;
|
|
26593
|
-
object.level = options.level === undefined ? colorLevel : options.level;
|
|
26594
|
-
};
|
|
26595
|
-
|
|
26596
|
-
class Chalk {
|
|
26597
|
-
constructor(options) {
|
|
26598
|
-
return chalkFactory(options);
|
|
26599
|
-
}
|
|
26600
|
-
}
|
|
26601
|
-
var chalkFactory = (options) => {
|
|
26602
|
-
const chalk = (...strings) => strings.join(" ");
|
|
26603
|
-
applyOptions(chalk, options);
|
|
26604
|
-
Object.setPrototypeOf(chalk, createChalk.prototype);
|
|
26605
|
-
return chalk;
|
|
26606
|
-
};
|
|
26607
|
-
function createChalk(options) {
|
|
26608
|
-
return chalkFactory(options);
|
|
26609
|
-
}
|
|
26610
|
-
Object.setPrototypeOf(createChalk.prototype, Function.prototype);
|
|
26611
|
-
for (const [styleName, style] of Object.entries(ansi_styles_default)) {
|
|
26612
|
-
styles2[styleName] = {
|
|
26613
|
-
get() {
|
|
26614
|
-
const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
|
|
26615
|
-
Object.defineProperty(this, styleName, { value: builder });
|
|
26616
|
-
return builder;
|
|
26617
|
-
}
|
|
26618
|
-
};
|
|
26619
|
-
}
|
|
26620
|
-
styles2.visible = {
|
|
26621
|
-
get() {
|
|
26622
|
-
const builder = createBuilder(this, this[STYLER], true);
|
|
26623
|
-
Object.defineProperty(this, "visible", { value: builder });
|
|
26624
|
-
return builder;
|
|
26625
|
-
}
|
|
26626
|
-
};
|
|
26627
|
-
var getModelAnsi = (model, level, type, ...arguments_) => {
|
|
26628
|
-
if (model === "rgb") {
|
|
26629
|
-
if (level === "ansi16m") {
|
|
26630
|
-
return ansi_styles_default[type].ansi16m(...arguments_);
|
|
26631
|
-
}
|
|
26632
|
-
if (level === "ansi256") {
|
|
26633
|
-
return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
|
|
26634
|
-
}
|
|
26635
|
-
return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
|
|
26636
|
-
}
|
|
26637
|
-
if (model === "hex") {
|
|
26638
|
-
return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
|
|
26639
|
-
}
|
|
26640
|
-
return ansi_styles_default[type][model](...arguments_);
|
|
26641
|
-
};
|
|
26642
|
-
var usedModels = ["rgb", "hex", "ansi256"];
|
|
26643
|
-
for (const model of usedModels) {
|
|
26644
|
-
styles2[model] = {
|
|
26645
|
-
get() {
|
|
26646
|
-
const { level } = this;
|
|
26647
|
-
return function(...arguments_) {
|
|
26648
|
-
const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
|
|
26649
|
-
return createBuilder(this, styler, this[IS_EMPTY]);
|
|
26650
|
-
};
|
|
26651
|
-
}
|
|
26652
|
-
};
|
|
26653
|
-
const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
|
|
26654
|
-
styles2[bgModel] = {
|
|
26655
|
-
get() {
|
|
26656
|
-
const { level } = this;
|
|
26657
|
-
return function(...arguments_) {
|
|
26658
|
-
const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
|
|
26659
|
-
return createBuilder(this, styler, this[IS_EMPTY]);
|
|
26660
|
-
};
|
|
26661
|
-
}
|
|
26662
|
-
};
|
|
26663
|
-
}
|
|
26664
|
-
var proto = Object.defineProperties(() => {}, {
|
|
26665
|
-
...styles2,
|
|
26666
|
-
level: {
|
|
26667
|
-
enumerable: true,
|
|
26668
|
-
get() {
|
|
26669
|
-
return this[GENERATOR].level;
|
|
26670
|
-
},
|
|
26671
|
-
set(level) {
|
|
26672
|
-
this[GENERATOR].level = level;
|
|
26673
|
-
}
|
|
26674
|
-
}
|
|
26675
|
-
});
|
|
26676
|
-
var createStyler = (open, close, parent) => {
|
|
26677
|
-
let openAll;
|
|
26678
|
-
let closeAll;
|
|
26679
|
-
if (parent === undefined) {
|
|
26680
|
-
openAll = open;
|
|
26681
|
-
closeAll = close;
|
|
26682
|
-
} else {
|
|
26683
|
-
openAll = parent.openAll + open;
|
|
26684
|
-
closeAll = close + parent.closeAll;
|
|
26685
|
-
}
|
|
26686
|
-
return {
|
|
26687
|
-
open,
|
|
26688
|
-
close,
|
|
26689
|
-
openAll,
|
|
26690
|
-
closeAll,
|
|
26691
|
-
parent
|
|
26692
|
-
};
|
|
26693
|
-
};
|
|
26694
|
-
var createBuilder = (self2, _styler, _isEmpty) => {
|
|
26695
|
-
const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
|
|
26696
|
-
Object.setPrototypeOf(builder, proto);
|
|
26697
|
-
builder[GENERATOR] = self2;
|
|
26698
|
-
builder[STYLER] = _styler;
|
|
26699
|
-
builder[IS_EMPTY] = _isEmpty;
|
|
26700
|
-
return builder;
|
|
26701
|
-
};
|
|
26702
|
-
var applyStyle = (self2, string) => {
|
|
26703
|
-
if (self2.level <= 0 || !string) {
|
|
26704
|
-
return self2[IS_EMPTY] ? "" : string;
|
|
26705
|
-
}
|
|
26706
|
-
let styler = self2[STYLER];
|
|
26707
|
-
if (styler === undefined) {
|
|
26708
|
-
return string;
|
|
26709
|
-
}
|
|
26710
|
-
const { openAll, closeAll } = styler;
|
|
26711
|
-
if (string.includes("\x1B")) {
|
|
26712
|
-
while (styler !== undefined) {
|
|
26713
|
-
string = stringReplaceAll(string, styler.close, styler.open);
|
|
26714
|
-
styler = styler.parent;
|
|
26715
|
-
}
|
|
26716
|
-
}
|
|
26717
|
-
const lfIndex = string.indexOf(`
|
|
26718
|
-
`);
|
|
26719
|
-
if (lfIndex !== -1) {
|
|
26720
|
-
string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
|
|
26721
|
-
}
|
|
26722
|
-
return openAll + string + closeAll;
|
|
26723
|
-
};
|
|
26724
|
-
Object.defineProperties(createChalk.prototype, styles2);
|
|
26725
|
-
var chalk = createChalk();
|
|
26726
|
-
var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
|
|
26727
|
-
var source_default = chalk;
|
|
26728
|
-
|
|
26729
|
-
// src/module/chalk.ts
|
|
26730
|
-
var chalk2 = new Chalk({ level: 3 });
|
|
26731
|
-
|
|
26732
|
-
// node_modules/.pnpm/@kevisual+load@0.0.6/node_modules/@kevisual/load/dist/load.js
|
|
26733
|
-
function getDefaultExportFromCjs3(x) {
|
|
26734
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
26735
|
-
}
|
|
26736
|
-
var eventemitter33 = { exports: {} };
|
|
26737
|
-
var hasRequiredEventemitter33;
|
|
26738
|
-
function requireEventemitter33() {
|
|
26739
|
-
if (hasRequiredEventemitter33)
|
|
26740
|
-
return eventemitter33.exports;
|
|
26741
|
-
hasRequiredEventemitter33 = 1;
|
|
26742
|
-
(function(module) {
|
|
26743
|
-
var has = Object.prototype.hasOwnProperty, prefix = "~";
|
|
26744
|
-
function Events() {}
|
|
26745
|
-
if (Object.create) {
|
|
26746
|
-
Events.prototype = Object.create(null);
|
|
26747
|
-
if (!new Events().__proto__)
|
|
26748
|
-
prefix = false;
|
|
26749
|
-
}
|
|
26750
|
-
function EE(fn, context, once) {
|
|
26751
|
-
this.fn = fn;
|
|
26752
|
-
this.context = context;
|
|
26753
|
-
this.once = once || false;
|
|
26754
|
-
}
|
|
26755
|
-
function addListener(emitter, event, fn, context, once) {
|
|
26756
|
-
if (typeof fn !== "function") {
|
|
26757
|
-
throw new TypeError("The listener must be a function");
|
|
26758
|
-
}
|
|
26759
|
-
var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event : event;
|
|
26760
|
-
if (!emitter._events[evt])
|
|
26761
|
-
emitter._events[evt] = listener, emitter._eventsCount++;
|
|
26762
|
-
else if (!emitter._events[evt].fn)
|
|
26763
|
-
emitter._events[evt].push(listener);
|
|
26764
|
-
else
|
|
26765
|
-
emitter._events[evt] = [emitter._events[evt], listener];
|
|
26766
|
-
return emitter;
|
|
26767
|
-
}
|
|
26768
|
-
function clearEvent(emitter, evt) {
|
|
26769
|
-
if (--emitter._eventsCount === 0)
|
|
26770
|
-
emitter._events = new Events;
|
|
26771
|
-
else
|
|
26772
|
-
delete emitter._events[evt];
|
|
26773
|
-
}
|
|
26774
|
-
function EventEmitter3() {
|
|
26775
|
-
this._events = new Events;
|
|
26776
|
-
this._eventsCount = 0;
|
|
26777
|
-
}
|
|
26778
|
-
EventEmitter3.prototype.eventNames = function eventNames() {
|
|
26779
|
-
var names = [], events, name;
|
|
26780
|
-
if (this._eventsCount === 0)
|
|
26781
|
-
return names;
|
|
26782
|
-
for (name in events = this._events) {
|
|
26783
|
-
if (has.call(events, name))
|
|
26784
|
-
names.push(prefix ? name.slice(1) : name);
|
|
26785
|
-
}
|
|
26786
|
-
if (Object.getOwnPropertySymbols) {
|
|
26787
|
-
return names.concat(Object.getOwnPropertySymbols(events));
|
|
26788
|
-
}
|
|
26789
|
-
return names;
|
|
26790
|
-
};
|
|
26791
|
-
EventEmitter3.prototype.listeners = function listeners(event) {
|
|
26792
|
-
var evt = prefix ? prefix + event : event, handlers = this._events[evt];
|
|
26793
|
-
if (!handlers)
|
|
26794
|
-
return [];
|
|
26795
|
-
if (handlers.fn)
|
|
26796
|
-
return [handlers.fn];
|
|
26797
|
-
for (var i = 0, l = handlers.length, ee = new Array(l);i < l; i++) {
|
|
26798
|
-
ee[i] = handlers[i].fn;
|
|
26799
|
-
}
|
|
26800
|
-
return ee;
|
|
26801
|
-
};
|
|
26802
|
-
EventEmitter3.prototype.listenerCount = function listenerCount(event) {
|
|
26803
|
-
var evt = prefix ? prefix + event : event, listeners = this._events[evt];
|
|
26804
|
-
if (!listeners)
|
|
26805
|
-
return 0;
|
|
26806
|
-
if (listeners.fn)
|
|
26807
|
-
return 1;
|
|
26808
|
-
return listeners.length;
|
|
26809
|
-
};
|
|
26810
|
-
EventEmitter3.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
|
|
26811
|
-
var evt = prefix ? prefix + event : event;
|
|
26812
|
-
if (!this._events[evt])
|
|
26813
|
-
return false;
|
|
26814
|
-
var listeners = this._events[evt], len = arguments.length, args, i;
|
|
26815
|
-
if (listeners.fn) {
|
|
26816
|
-
if (listeners.once)
|
|
26817
|
-
this.removeListener(event, listeners.fn, undefined, true);
|
|
26818
|
-
switch (len) {
|
|
26819
|
-
case 1:
|
|
26820
|
-
return listeners.fn.call(listeners.context), true;
|
|
26821
|
-
case 2:
|
|
26822
|
-
return listeners.fn.call(listeners.context, a1), true;
|
|
26823
|
-
case 3:
|
|
26824
|
-
return listeners.fn.call(listeners.context, a1, a2), true;
|
|
26825
|
-
case 4:
|
|
26826
|
-
return listeners.fn.call(listeners.context, a1, a2, a3), true;
|
|
26827
|
-
case 5:
|
|
26828
|
-
return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
|
|
26829
|
-
case 6:
|
|
26830
|
-
return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
|
|
26831
|
-
}
|
|
26832
|
-
for (i = 1, args = new Array(len - 1);i < len; i++) {
|
|
26833
|
-
args[i - 1] = arguments[i];
|
|
26834
|
-
}
|
|
26835
|
-
listeners.fn.apply(listeners.context, args);
|
|
26836
|
-
} else {
|
|
26837
|
-
var length = listeners.length, j;
|
|
26838
|
-
for (i = 0;i < length; i++) {
|
|
26839
|
-
if (listeners[i].once)
|
|
26840
|
-
this.removeListener(event, listeners[i].fn, undefined, true);
|
|
26841
|
-
switch (len) {
|
|
26842
|
-
case 1:
|
|
26843
|
-
listeners[i].fn.call(listeners[i].context);
|
|
26844
|
-
break;
|
|
26845
|
-
case 2:
|
|
26846
|
-
listeners[i].fn.call(listeners[i].context, a1);
|
|
26847
|
-
break;
|
|
26848
|
-
case 3:
|
|
26849
|
-
listeners[i].fn.call(listeners[i].context, a1, a2);
|
|
26850
|
-
break;
|
|
26851
|
-
case 4:
|
|
26852
|
-
listeners[i].fn.call(listeners[i].context, a1, a2, a3);
|
|
26853
|
-
break;
|
|
26854
|
-
default:
|
|
26855
|
-
if (!args)
|
|
26856
|
-
for (j = 1, args = new Array(len - 1);j < len; j++) {
|
|
26857
|
-
args[j - 1] = arguments[j];
|
|
26858
|
-
}
|
|
26859
|
-
listeners[i].fn.apply(listeners[i].context, args);
|
|
26860
|
-
}
|
|
26861
|
-
}
|
|
26862
|
-
}
|
|
26863
|
-
return true;
|
|
26864
|
-
};
|
|
26865
|
-
EventEmitter3.prototype.on = function on(event, fn, context) {
|
|
26866
|
-
return addListener(this, event, fn, context, false);
|
|
26867
|
-
};
|
|
26868
|
-
EventEmitter3.prototype.once = function once(event, fn, context) {
|
|
26869
|
-
return addListener(this, event, fn, context, true);
|
|
26870
|
-
};
|
|
26871
|
-
EventEmitter3.prototype.removeListener = function removeListener(event, fn, context, once) {
|
|
26872
|
-
var evt = prefix ? prefix + event : event;
|
|
26873
|
-
if (!this._events[evt])
|
|
26874
|
-
return this;
|
|
26875
|
-
if (!fn) {
|
|
26876
|
-
clearEvent(this, evt);
|
|
26877
|
-
return this;
|
|
26878
|
-
}
|
|
26879
|
-
var listeners = this._events[evt];
|
|
26880
|
-
if (listeners.fn) {
|
|
26881
|
-
if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {
|
|
26882
|
-
clearEvent(this, evt);
|
|
26883
|
-
}
|
|
26884
|
-
} else {
|
|
26885
|
-
for (var i = 0, events = [], length = listeners.length;i < length; i++) {
|
|
26886
|
-
if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {
|
|
26887
|
-
events.push(listeners[i]);
|
|
26888
|
-
}
|
|
26889
|
-
}
|
|
26890
|
-
if (events.length)
|
|
26891
|
-
this._events[evt] = events.length === 1 ? events[0] : events;
|
|
26892
|
-
else
|
|
26893
|
-
clearEvent(this, evt);
|
|
26894
|
-
}
|
|
26895
|
-
return this;
|
|
26896
|
-
};
|
|
26897
|
-
EventEmitter3.prototype.removeAllListeners = function removeAllListeners(event) {
|
|
26898
|
-
var evt;
|
|
26899
|
-
if (event) {
|
|
26900
|
-
evt = prefix ? prefix + event : event;
|
|
26901
|
-
if (this._events[evt])
|
|
26902
|
-
clearEvent(this, evt);
|
|
26903
|
-
} else {
|
|
26904
|
-
this._events = new Events;
|
|
26905
|
-
this._eventsCount = 0;
|
|
26906
|
-
}
|
|
26907
|
-
return this;
|
|
26908
|
-
};
|
|
26909
|
-
EventEmitter3.prototype.off = EventEmitter3.prototype.removeListener;
|
|
26910
|
-
EventEmitter3.prototype.addListener = EventEmitter3.prototype.on;
|
|
26911
|
-
EventEmitter3.prefixed = prefix;
|
|
26912
|
-
EventEmitter3.EventEmitter = EventEmitter3;
|
|
26913
|
-
{
|
|
26914
|
-
module.exports = EventEmitter3;
|
|
26915
|
-
}
|
|
26916
|
-
})(eventemitter33);
|
|
26917
|
-
return eventemitter33.exports;
|
|
26918
|
-
}
|
|
26919
|
-
var eventemitter3Exports3 = requireEventemitter33();
|
|
26920
|
-
var EventEmitter3 = /* @__PURE__ */ getDefaultExportFromCjs3(eventemitter3Exports3);
|
|
26921
|
-
var reRunFn3 = (promiseOpts) => {
|
|
26922
|
-
const timeout = promiseOpts.timeout || 5 * 60 * 1000;
|
|
26923
|
-
const interval = promiseOpts.interval || 1000;
|
|
26924
|
-
const checkSuccess = promiseOpts?.checkSuccess || (() => true);
|
|
26925
|
-
const signal = promiseOpts.signal;
|
|
26926
|
-
return new Promise(async (resolve, reject) => {
|
|
26927
|
-
let intervalId;
|
|
26928
|
-
let timeoutId = setTimeout(() => {
|
|
26929
|
-
clearTimeout(intervalId);
|
|
26930
|
-
resolve({
|
|
26931
|
-
code: 500,
|
|
26932
|
-
message: "timeout"
|
|
26933
|
-
});
|
|
26934
|
-
}, timeout);
|
|
26935
|
-
const fn = promiseOpts.fn || (() => true);
|
|
26936
|
-
const runFn = async () => {
|
|
26937
|
-
if (signal?.aborted) {
|
|
26938
|
-
clearInterval(intervalId);
|
|
26939
|
-
clearTimeout(timeoutId);
|
|
26940
|
-
return resolve({
|
|
26941
|
-
code: 499,
|
|
26942
|
-
message: "operation cancelled"
|
|
26943
|
-
});
|
|
26944
|
-
}
|
|
26945
|
-
const res = await fn();
|
|
26946
|
-
if (!!checkSuccess(res)) {
|
|
26947
|
-
clearInterval(intervalId);
|
|
26948
|
-
clearTimeout(timeoutId);
|
|
26949
|
-
resolve({
|
|
26950
|
-
code: 200,
|
|
26951
|
-
data: res
|
|
26952
|
-
});
|
|
26953
|
-
} else {
|
|
26954
|
-
setTimeout(() => {
|
|
26955
|
-
runFn();
|
|
26956
|
-
}, interval);
|
|
26957
|
-
}
|
|
26958
|
-
};
|
|
26959
|
-
if (signal) {
|
|
26960
|
-
signal.addEventListener("abort", () => {
|
|
26961
|
-
clearInterval(intervalId);
|
|
26962
|
-
clearTimeout(timeoutId);
|
|
26963
|
-
resolve({
|
|
26964
|
-
code: 499,
|
|
26965
|
-
message: "operation cancelled"
|
|
26966
|
-
});
|
|
26967
|
-
});
|
|
26968
|
-
}
|
|
26969
|
-
runFn();
|
|
26970
|
-
});
|
|
26971
|
-
};
|
|
26972
|
-
|
|
26973
|
-
class BaseLoad3 {
|
|
26974
|
-
modules = new Map;
|
|
26975
|
-
event;
|
|
26976
|
-
loading;
|
|
26977
|
-
static reRunFn = reRunFn3;
|
|
26978
|
-
timeout = 5 * 60 * 1000;
|
|
26979
|
-
constructor() {
|
|
26980
|
-
this.event = new EventEmitter3;
|
|
26981
|
-
this.loading = false;
|
|
26982
|
-
}
|
|
26983
|
-
listenKey(key, listenOpts) {
|
|
26984
|
-
const timeout = listenOpts?.timeout ?? this.timeout;
|
|
26985
|
-
return new Promise((resolve) => {
|
|
26986
|
-
const timeoutId = setTimeout(() => {
|
|
26987
|
-
this.event.removeListener(key, onEvent);
|
|
26988
|
-
resolve({
|
|
26989
|
-
code: 500,
|
|
26990
|
-
message: "timeout"
|
|
26991
|
-
});
|
|
26992
|
-
}, timeout);
|
|
26993
|
-
const onEvent = (error) => {
|
|
26994
|
-
clearTimeout(timeoutId);
|
|
26995
|
-
if (error) {
|
|
26996
|
-
return resolve({
|
|
26997
|
-
code: 500,
|
|
26998
|
-
message: error
|
|
26999
|
-
});
|
|
27000
|
-
}
|
|
27001
|
-
const data = this.modules.get(key);
|
|
27002
|
-
if (data?.loadSuccessClear) {
|
|
27003
|
-
this.remove(key);
|
|
27004
|
-
}
|
|
27005
|
-
resolve({
|
|
27006
|
-
code: 200,
|
|
27007
|
-
data: data?.modules
|
|
27008
|
-
});
|
|
27009
|
-
};
|
|
27010
|
-
this.event.once(key, onEvent);
|
|
27011
|
-
});
|
|
27012
|
-
}
|
|
27013
|
-
async hasLoaded(key, hasLoadOpts) {
|
|
27014
|
-
if (!key) {
|
|
27015
|
-
return {
|
|
27016
|
-
code: 404,
|
|
27017
|
-
message: "key is required"
|
|
27018
|
-
};
|
|
27019
|
-
}
|
|
27020
|
-
const has = this.modules.has(key);
|
|
27021
|
-
if (!has) {
|
|
27022
|
-
const isExist = hasLoadOpts?.isExist ?? true;
|
|
27023
|
-
const timeout = hasLoadOpts?.timeout ?? this.timeout;
|
|
27024
|
-
if (isExist) {
|
|
27025
|
-
return await this.listenKey(key, { timeout });
|
|
27026
|
-
}
|
|
27027
|
-
return {
|
|
27028
|
-
code: 404
|
|
27029
|
-
};
|
|
27030
|
-
}
|
|
27031
|
-
const data = this.modules.get(key);
|
|
27032
|
-
if (data?.status === "loaded") {
|
|
27033
|
-
return {
|
|
27034
|
-
code: 200,
|
|
27035
|
-
data: data.modules
|
|
27036
|
-
};
|
|
27037
|
-
}
|
|
27038
|
-
if (data?.status === "loading") {
|
|
27039
|
-
return await this.listenKey(key, { timeout: hasLoadOpts?.timeout ?? this.timeout });
|
|
27040
|
-
}
|
|
27041
|
-
if (data?.status === "error") {
|
|
27042
|
-
return {
|
|
27043
|
-
code: 500,
|
|
27044
|
-
message: "load error"
|
|
27045
|
-
};
|
|
27046
|
-
}
|
|
27047
|
-
if (data?.status === "cancel") {
|
|
27048
|
-
return {
|
|
27049
|
-
code: 499,
|
|
27050
|
-
message: "operation cancelled"
|
|
27051
|
-
};
|
|
27145
|
+
|
|
27146
|
+
// node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.js
|
|
27147
|
+
var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
|
|
27148
|
+
var GENERATOR = Symbol("GENERATOR");
|
|
27149
|
+
var STYLER = Symbol("STYLER");
|
|
27150
|
+
var IS_EMPTY = Symbol("IS_EMPTY");
|
|
27151
|
+
var levelMapping = [
|
|
27152
|
+
"ansi",
|
|
27153
|
+
"ansi",
|
|
27154
|
+
"ansi256",
|
|
27155
|
+
"ansi16m"
|
|
27156
|
+
];
|
|
27157
|
+
var styles2 = Object.create(null);
|
|
27158
|
+
var applyOptions = (object, options = {}) => {
|
|
27159
|
+
if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
|
|
27160
|
+
throw new Error("The `level` option should be an integer from 0 to 3");
|
|
27161
|
+
}
|
|
27162
|
+
const colorLevel = stdoutColor ? stdoutColor.level : 0;
|
|
27163
|
+
object.level = options.level === undefined ? colorLevel : options.level;
|
|
27164
|
+
};
|
|
27165
|
+
|
|
27166
|
+
class Chalk {
|
|
27167
|
+
constructor(options) {
|
|
27168
|
+
return chalkFactory(options);
|
|
27169
|
+
}
|
|
27170
|
+
}
|
|
27171
|
+
var chalkFactory = (options) => {
|
|
27172
|
+
const chalk = (...strings) => strings.join(" ");
|
|
27173
|
+
applyOptions(chalk, options);
|
|
27174
|
+
Object.setPrototypeOf(chalk, createChalk.prototype);
|
|
27175
|
+
return chalk;
|
|
27176
|
+
};
|
|
27177
|
+
function createChalk(options) {
|
|
27178
|
+
return chalkFactory(options);
|
|
27179
|
+
}
|
|
27180
|
+
Object.setPrototypeOf(createChalk.prototype, Function.prototype);
|
|
27181
|
+
for (const [styleName, style] of Object.entries(ansi_styles_default)) {
|
|
27182
|
+
styles2[styleName] = {
|
|
27183
|
+
get() {
|
|
27184
|
+
const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
|
|
27185
|
+
Object.defineProperty(this, styleName, { value: builder });
|
|
27186
|
+
return builder;
|
|
27052
27187
|
}
|
|
27053
|
-
|
|
27054
|
-
|
|
27055
|
-
|
|
27188
|
+
};
|
|
27189
|
+
}
|
|
27190
|
+
styles2.visible = {
|
|
27191
|
+
get() {
|
|
27192
|
+
const builder = createBuilder(this, this[STYLER], true);
|
|
27193
|
+
Object.defineProperty(this, "visible", { value: builder });
|
|
27194
|
+
return builder;
|
|
27056
27195
|
}
|
|
27057
|
-
|
|
27058
|
-
|
|
27059
|
-
|
|
27060
|
-
|
|
27061
|
-
|
|
27062
|
-
message: "key is required"
|
|
27063
|
-
};
|
|
27196
|
+
};
|
|
27197
|
+
var getModelAnsi = (model, level, type, ...arguments_) => {
|
|
27198
|
+
if (model === "rgb") {
|
|
27199
|
+
if (level === "ansi16m") {
|
|
27200
|
+
return ansi_styles_default[type].ansi16m(...arguments_);
|
|
27064
27201
|
}
|
|
27065
|
-
|
|
27066
|
-
|
|
27067
|
-
status: "loading",
|
|
27068
|
-
loading: true,
|
|
27069
|
-
loadSuccessClear: opts.loadSuccessClear ?? true
|
|
27070
|
-
};
|
|
27071
|
-
let errorMessage = "";
|
|
27072
|
-
try {
|
|
27073
|
-
const isReRun = opts.isReRun ?? false;
|
|
27074
|
-
let res;
|
|
27075
|
-
if (!isReRun) {
|
|
27076
|
-
this.modules.set(key, newModule);
|
|
27077
|
-
res = await loadContent();
|
|
27078
|
-
} else {
|
|
27079
|
-
newModule.controller = new AbortController;
|
|
27080
|
-
const signal = newModule.controller.signal;
|
|
27081
|
-
this.modules.set(key, newModule);
|
|
27082
|
-
const data = await reRunFn3({
|
|
27083
|
-
timeout: opts.timeout,
|
|
27084
|
-
interval: opts.interval,
|
|
27085
|
-
checkSuccess: opts.checkSuccess,
|
|
27086
|
-
fn: loadContent,
|
|
27087
|
-
signal
|
|
27088
|
-
});
|
|
27089
|
-
newModule.controller = null;
|
|
27090
|
-
if (data.code === 499) {
|
|
27091
|
-
newModule.status = "cancel";
|
|
27092
|
-
return {
|
|
27093
|
-
code: 499,
|
|
27094
|
-
message: "operation cancelled"
|
|
27095
|
-
};
|
|
27096
|
-
}
|
|
27097
|
-
if (data.code !== 200) {
|
|
27098
|
-
throw new Error(data.message);
|
|
27099
|
-
}
|
|
27100
|
-
res = data.data;
|
|
27101
|
-
}
|
|
27102
|
-
newModule.modules = res;
|
|
27103
|
-
newModule.status = "loaded";
|
|
27104
|
-
return {
|
|
27105
|
-
code: 200,
|
|
27106
|
-
data: res
|
|
27107
|
-
};
|
|
27108
|
-
} catch (error) {
|
|
27109
|
-
errorMessage = error.message;
|
|
27110
|
-
newModule.status = "error";
|
|
27111
|
-
return {
|
|
27112
|
-
code: 500,
|
|
27113
|
-
message: error
|
|
27114
|
-
};
|
|
27115
|
-
} finally {
|
|
27116
|
-
newModule.loading = false;
|
|
27117
|
-
this.modules.set(opts.key, newModule);
|
|
27118
|
-
if (!errorMessage) {
|
|
27119
|
-
this.event.emit(opts.key);
|
|
27120
|
-
} else {
|
|
27121
|
-
this.event.emit(opts.key, errorMessage);
|
|
27122
|
-
}
|
|
27202
|
+
if (level === "ansi256") {
|
|
27203
|
+
return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
|
|
27123
27204
|
}
|
|
27205
|
+
return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
|
|
27124
27206
|
}
|
|
27125
|
-
|
|
27126
|
-
|
|
27127
|
-
|
|
27128
|
-
|
|
27129
|
-
|
|
27130
|
-
|
|
27131
|
-
|
|
27207
|
+
if (model === "hex") {
|
|
27208
|
+
return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
|
|
27209
|
+
}
|
|
27210
|
+
return ansi_styles_default[type][model](...arguments_);
|
|
27211
|
+
};
|
|
27212
|
+
var usedModels = ["rgb", "hex", "ansi256"];
|
|
27213
|
+
for (const model of usedModels) {
|
|
27214
|
+
styles2[model] = {
|
|
27215
|
+
get() {
|
|
27216
|
+
const { level } = this;
|
|
27217
|
+
return function(...arguments_) {
|
|
27218
|
+
const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
|
|
27219
|
+
return createBuilder(this, styler, this[IS_EMPTY]);
|
|
27132
27220
|
};
|
|
27133
27221
|
}
|
|
27134
|
-
|
|
27135
|
-
|
|
27136
|
-
|
|
27137
|
-
|
|
27138
|
-
|
|
27139
|
-
return
|
|
27140
|
-
|
|
27141
|
-
|
|
27142
|
-
|
|
27222
|
+
};
|
|
27223
|
+
const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
|
|
27224
|
+
styles2[bgModel] = {
|
|
27225
|
+
get() {
|
|
27226
|
+
const { level } = this;
|
|
27227
|
+
return function(...arguments_) {
|
|
27228
|
+
const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
|
|
27229
|
+
return createBuilder(this, styler, this[IS_EMPTY]);
|
|
27230
|
+
};
|
|
27143
27231
|
}
|
|
27144
|
-
|
|
27145
|
-
|
|
27146
|
-
|
|
27147
|
-
|
|
27148
|
-
|
|
27149
|
-
|
|
27150
|
-
|
|
27232
|
+
};
|
|
27233
|
+
}
|
|
27234
|
+
var proto = Object.defineProperties(() => {}, {
|
|
27235
|
+
...styles2,
|
|
27236
|
+
level: {
|
|
27237
|
+
enumerable: true,
|
|
27238
|
+
get() {
|
|
27239
|
+
return this[GENERATOR].level;
|
|
27240
|
+
},
|
|
27241
|
+
set(level) {
|
|
27242
|
+
this[GENERATOR].level = level;
|
|
27151
27243
|
}
|
|
27152
27244
|
}
|
|
27153
|
-
|
|
27154
|
-
|
|
27155
|
-
|
|
27245
|
+
});
|
|
27246
|
+
var createStyler = (open, close, parent) => {
|
|
27247
|
+
let openAll;
|
|
27248
|
+
let closeAll;
|
|
27249
|
+
if (parent === undefined) {
|
|
27250
|
+
openAll = open;
|
|
27251
|
+
closeAll = close;
|
|
27252
|
+
} else {
|
|
27253
|
+
openAll = parent.openAll + open;
|
|
27254
|
+
closeAll = close + parent.closeAll;
|
|
27156
27255
|
}
|
|
27157
|
-
|
|
27158
|
-
|
|
27159
|
-
|
|
27160
|
-
|
|
27161
|
-
|
|
27162
|
-
|
|
27163
|
-
|
|
27164
|
-
|
|
27165
|
-
|
|
27166
|
-
|
|
27167
|
-
|
|
27256
|
+
return {
|
|
27257
|
+
open,
|
|
27258
|
+
close,
|
|
27259
|
+
openAll,
|
|
27260
|
+
closeAll,
|
|
27261
|
+
parent
|
|
27262
|
+
};
|
|
27263
|
+
};
|
|
27264
|
+
var createBuilder = (self2, _styler, _isEmpty) => {
|
|
27265
|
+
const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
|
|
27266
|
+
Object.setPrototypeOf(builder, proto);
|
|
27267
|
+
builder[GENERATOR] = self2;
|
|
27268
|
+
builder[STYLER] = _styler;
|
|
27269
|
+
builder[IS_EMPTY] = _isEmpty;
|
|
27270
|
+
return builder;
|
|
27271
|
+
};
|
|
27272
|
+
var applyStyle = (self2, string) => {
|
|
27273
|
+
if (self2.level <= 0 || !string) {
|
|
27274
|
+
return self2[IS_EMPTY] ? "" : string;
|
|
27168
27275
|
}
|
|
27169
|
-
|
|
27170
|
-
|
|
27276
|
+
let styler = self2[STYLER];
|
|
27277
|
+
if (styler === undefined) {
|
|
27278
|
+
return string;
|
|
27171
27279
|
}
|
|
27172
|
-
|
|
27173
|
-
|
|
27174
|
-
|
|
27175
|
-
|
|
27176
|
-
|
|
27177
|
-
this.modules.set(key, data);
|
|
27280
|
+
const { openAll, closeAll } = styler;
|
|
27281
|
+
if (string.includes("\x1B")) {
|
|
27282
|
+
while (styler !== undefined) {
|
|
27283
|
+
string = stringReplaceAll(string, styler.close, styler.open);
|
|
27284
|
+
styler = styler.parent;
|
|
27178
27285
|
}
|
|
27179
27286
|
}
|
|
27180
|
-
|
|
27287
|
+
const lfIndex = string.indexOf(`
|
|
27288
|
+
`);
|
|
27289
|
+
if (lfIndex !== -1) {
|
|
27290
|
+
string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
|
|
27291
|
+
}
|
|
27292
|
+
return openAll + string + closeAll;
|
|
27293
|
+
};
|
|
27294
|
+
Object.defineProperties(createChalk.prototype, styles2);
|
|
27295
|
+
var chalk = createChalk();
|
|
27296
|
+
var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
|
|
27297
|
+
var source_default = chalk;
|
|
27298
|
+
|
|
27299
|
+
// src/module/chalk.ts
|
|
27300
|
+
var chalk2 = new Chalk({ level: 3 });
|
|
27181
27301
|
|
|
27182
27302
|
// src/module/login/login-by-web.ts
|
|
27183
27303
|
var pollLoginStatus = async (token, opts) => {
|
|
@@ -31179,7 +31299,7 @@ class QueryRouterServer extends QueryRouter {
|
|
|
31179
31299
|
}
|
|
31180
31300
|
|
|
31181
31301
|
// node_modules/.pnpm/@kevisual+context@0.0.4/node_modules/@kevisual/context/dist/app.js
|
|
31182
|
-
var
|
|
31302
|
+
var isBrowser3 = typeof window !== "undefined" && typeof window.document !== "undefined";
|
|
31183
31303
|
function getDefaultExportFromCjs4(x) {
|
|
31184
31304
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
31185
31305
|
}
|
|
@@ -33595,7 +33715,7 @@ function mitt_default(n) {
|
|
|
33595
33715
|
}
|
|
33596
33716
|
|
|
33597
33717
|
// node_modules/.pnpm/@kevisual+app@0.0.2_dotenv@17.3.1/node_modules/@kevisual/app/src/app.ts
|
|
33598
|
-
var
|
|
33718
|
+
var isBrowser5 = typeof window !== "undefined";
|
|
33599
33719
|
|
|
33600
33720
|
class App {
|
|
33601
33721
|
#router;
|
|
@@ -33614,7 +33734,7 @@ class App {
|
|
|
33614
33734
|
if (opts?.storage) {
|
|
33615
33735
|
this.storage = opts.storage;
|
|
33616
33736
|
} else {
|
|
33617
|
-
if (
|
|
33737
|
+
if (isBrowser5) {
|
|
33618
33738
|
this.storage = sessionStorage;
|
|
33619
33739
|
} else {
|
|
33620
33740
|
console.warn("没有提供 storage,某些功能可能无法使用");
|
|
@@ -33658,7 +33778,7 @@ class App {
|
|
|
33658
33778
|
return this.ai;
|
|
33659
33779
|
}
|
|
33660
33780
|
get token() {
|
|
33661
|
-
if (
|
|
33781
|
+
if (isBrowser5 && !this.#token) {
|
|
33662
33782
|
this.#token = localStorage?.getItem("token") || "";
|
|
33663
33783
|
return this.#token;
|
|
33664
33784
|
}
|
|
@@ -33689,7 +33809,7 @@ class App {
|
|
|
33689
33809
|
}
|
|
33690
33810
|
const data = res.data || {};
|
|
33691
33811
|
const config2 = data.data || {};
|
|
33692
|
-
if (
|
|
33812
|
+
if (isBrowser5) {
|
|
33693
33813
|
this.storage?.setItem?.(`config_${key}`, JSON.stringify(config2));
|
|
33694
33814
|
}
|
|
33695
33815
|
return config2;
|