@kevisual/api 0.0.63 → 0.0.65
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/query-ai.js +9 -13
- package/dist/query-app.js +9 -13
- package/dist/query-config.js +7 -11
- package/dist/query-login-node.js +28 -15
- package/dist/query-login.js +29 -16
- package/dist/query-mark.js +7 -11
- package/dist/query-proxy.js +19377 -523
- package/dist/query-remote.js +24 -2
- package/dist/query-resources.d.ts +1 -0
- package/dist/query-resources.js +32 -13
- package/dist/query-secret.js +7 -11
- package/dist/query-shop.js +9 -13
- package/dist/store-mark.js +7 -12
- package/dist/utils-node.js +6 -6
- package/dist/utils.js +6 -6
- package/package.json +9 -8
- package/query/query-login/query-login.ts +4 -0
- package/query/query-resources/index.ts +15 -9
package/dist/query-remote.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// node_modules/.pnpm/@kevisual+remote-app@0.0.
|
|
1
|
+
// ../../node_modules/.pnpm/@kevisual+remote-app@0.0.7/node_modules/@kevisual/remote-app/dist/app.js
|
|
2
2
|
var __create = Object.create;
|
|
3
3
|
var __getProtoOf = Object.getPrototypeOf;
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -213,10 +213,12 @@ class RemoteApp {
|
|
|
213
213
|
reconnectAttempts = 0;
|
|
214
214
|
reconnectTimer = null;
|
|
215
215
|
isManuallyClosed = false;
|
|
216
|
+
isInitializing = false;
|
|
217
|
+
initId = 0;
|
|
216
218
|
constructor(opts) {
|
|
217
219
|
this.mainApp = opts?.app;
|
|
218
220
|
const token = opts.token;
|
|
219
|
-
const url = opts.url;
|
|
221
|
+
const url = opts.url || "https://kevisual.cn/ws/proxy";
|
|
220
222
|
const id = opts.id;
|
|
221
223
|
const username = opts.username;
|
|
222
224
|
this.username = username;
|
|
@@ -282,10 +284,17 @@ class RemoteApp {
|
|
|
282
284
|
return wsURL;
|
|
283
285
|
}
|
|
284
286
|
async init() {
|
|
287
|
+
if (this.isInitializing) {
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
this.isInitializing = true;
|
|
291
|
+
const currentInitId = ++this.initId;
|
|
285
292
|
if (!this.url) {
|
|
293
|
+
this.isInitializing = false;
|
|
286
294
|
throw new Error("No url provided for remote app");
|
|
287
295
|
}
|
|
288
296
|
if (!this.id) {
|
|
297
|
+
this.isInitializing = false;
|
|
289
298
|
throw new Error("No id provided for remote app");
|
|
290
299
|
}
|
|
291
300
|
this.isError = false;
|
|
@@ -295,11 +304,20 @@ class RemoteApp {
|
|
|
295
304
|
const ws = new WebSocket(this.getWsURL(this.url));
|
|
296
305
|
const that = this;
|
|
297
306
|
ws.onopen = function() {
|
|
307
|
+
if (currentInitId !== that.initId) {
|
|
308
|
+
ws.close();
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
298
311
|
that.isConnected = true;
|
|
312
|
+
that.isInitializing = false;
|
|
299
313
|
that.onOpen();
|
|
300
314
|
console.log("[remote-app] WebSocket connection opened");
|
|
301
315
|
};
|
|
302
316
|
ws.onclose = function() {
|
|
317
|
+
if (currentInitId !== that.initId) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
that.isInitializing = false;
|
|
303
321
|
that.isConnected = false;
|
|
304
322
|
that.onClose();
|
|
305
323
|
};
|
|
@@ -307,6 +325,10 @@ class RemoteApp {
|
|
|
307
325
|
that.onMessage(event.data);
|
|
308
326
|
};
|
|
309
327
|
ws.onerror = function(error) {
|
|
328
|
+
if (currentInitId !== that.initId) {
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
that.isInitializing = false;
|
|
310
332
|
that.onError(error);
|
|
311
333
|
};
|
|
312
334
|
this.ws = ws;
|
|
@@ -21,6 +21,7 @@ declare class QueryResources {
|
|
|
21
21
|
setPrefix(prefix: string): void;
|
|
22
22
|
header(headers?: Record<string, string>, json?: boolean): Record<string, string>;
|
|
23
23
|
get(data: any, opts: DataOpts): Promise<any>;
|
|
24
|
+
getUrl(prefix: string): string;
|
|
24
25
|
getList(prefix: string, data?: {
|
|
25
26
|
recursive?: boolean;
|
|
26
27
|
}, opts?: DataOpts): Promise<Result<any[]>>;
|
package/dist/query-resources.js
CHANGED
|
@@ -3,20 +3,34 @@ var __getProtoOf = Object.getPrototypeOf;
|
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
function __accessProp(key) {
|
|
7
|
+
return this[key];
|
|
8
|
+
}
|
|
9
|
+
var __toESMCache_node;
|
|
10
|
+
var __toESMCache_esm;
|
|
6
11
|
var __toESM = (mod, isNodeMode, target) => {
|
|
12
|
+
var canCache = mod != null && typeof mod === "object";
|
|
13
|
+
if (canCache) {
|
|
14
|
+
var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
|
|
15
|
+
var cached = cache.get(mod);
|
|
16
|
+
if (cached)
|
|
17
|
+
return cached;
|
|
18
|
+
}
|
|
7
19
|
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
8
20
|
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
9
21
|
for (let key of __getOwnPropNames(mod))
|
|
10
22
|
if (!__hasOwnProp.call(to, key))
|
|
11
23
|
__defProp(to, key, {
|
|
12
|
-
get: (
|
|
24
|
+
get: __accessProp.bind(mod, key),
|
|
13
25
|
enumerable: true
|
|
14
26
|
});
|
|
27
|
+
if (canCache)
|
|
28
|
+
cache.set(mod, to);
|
|
15
29
|
return to;
|
|
16
30
|
};
|
|
17
31
|
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
18
32
|
|
|
19
|
-
// node_modules/.pnpm/spark-md5@3.0.2/node_modules/spark-md5/spark-md5.js
|
|
33
|
+
// ../../node_modules/.pnpm/spark-md5@3.0.2/node_modules/spark-md5/spark-md5.js
|
|
20
34
|
var require_spark_md5 = __commonJS((exports, module) => {
|
|
21
35
|
(function(factory) {
|
|
22
36
|
if (typeof exports === "object") {
|
|
@@ -446,7 +460,7 @@ var require_spark_md5 = __commonJS((exports, module) => {
|
|
|
446
460
|
});
|
|
447
461
|
});
|
|
448
462
|
|
|
449
|
-
// node_modules/.pnpm/@kevisual+query@0.0.
|
|
463
|
+
// ../../node_modules/.pnpm/@kevisual+query@0.0.55/node_modules/@kevisual/query/dist/query-browser.js
|
|
450
464
|
var isTextForContentType = (contentType) => {
|
|
451
465
|
if (!contentType)
|
|
452
466
|
return false;
|
|
@@ -557,7 +571,7 @@ var adapter = async (opts = {}, overloadOpts) => {
|
|
|
557
571
|
});
|
|
558
572
|
};
|
|
559
573
|
|
|
560
|
-
// node_modules/.pnpm/path-browserify-esm@1.0.6/node_modules/path-browserify-esm/index.esm.js
|
|
574
|
+
// ../../node_modules/.pnpm/path-browserify-esm@1.0.6/node_modules/path-browserify-esm/index.esm.js
|
|
561
575
|
function assertPath(path) {
|
|
562
576
|
if (typeof path !== "string") {
|
|
563
577
|
throw new TypeError("Path must be a string. Received " + JSON.stringify(path));
|
|
@@ -1061,19 +1075,25 @@ class QueryResources {
|
|
|
1061
1075
|
headers: this.header(opts?.headers)
|
|
1062
1076
|
});
|
|
1063
1077
|
}
|
|
1078
|
+
getUrl(prefix) {
|
|
1079
|
+
if (prefix.startsWith("http")) {
|
|
1080
|
+
return prefix;
|
|
1081
|
+
}
|
|
1082
|
+
return `${this.prefix}${prefix}`;
|
|
1083
|
+
}
|
|
1064
1084
|
async getList(prefix, data, opts) {
|
|
1065
1085
|
return this.get(data, {
|
|
1066
|
-
url:
|
|
1086
|
+
url: this.getUrl(prefix),
|
|
1067
1087
|
body: data,
|
|
1068
1088
|
...opts
|
|
1069
1089
|
});
|
|
1070
1090
|
}
|
|
1071
1091
|
async fetchFile(filepath, opts) {
|
|
1072
|
-
const url =
|
|
1092
|
+
const url = this.getUrl(filepath);
|
|
1073
1093
|
return this.get({}, { url, method: "GET", ...opts, headers: this.header(opts?.headers, false), isText: true });
|
|
1074
1094
|
}
|
|
1075
1095
|
async uploadFile(filepath, content, opts) {
|
|
1076
|
-
const pathname =
|
|
1096
|
+
const pathname = this.getUrl(filepath);
|
|
1077
1097
|
const filename = posix.basename(pathname);
|
|
1078
1098
|
const type = getContentType(filename);
|
|
1079
1099
|
const url = new URL(pathname, window.location.origin);
|
|
@@ -1111,12 +1131,11 @@ class QueryResources {
|
|
|
1111
1131
|
return res;
|
|
1112
1132
|
}
|
|
1113
1133
|
async uploadChunkedFile(filepath, file, hash, opts) {
|
|
1114
|
-
const pathname =
|
|
1134
|
+
const pathname = this.getUrl(filepath);
|
|
1115
1135
|
const filename = posix.basename(pathname);
|
|
1116
1136
|
const url = new URL(pathname, window.location.origin);
|
|
1117
1137
|
url.searchParams.set("hash", hash);
|
|
1118
1138
|
url.searchParams.set("chunk", "1");
|
|
1119
|
-
console.log(`url,`, url, hash);
|
|
1120
1139
|
const { chunkSize: _chunkSize, ...restOpts } = opts || {};
|
|
1121
1140
|
const chunkSize = _chunkSize ?? 5 * 1024 * 1024;
|
|
1122
1141
|
const totalChunks = Math.ceil(file.size / chunkSize);
|
|
@@ -1169,7 +1188,7 @@ class QueryResources {
|
|
|
1169
1188
|
return filepath;
|
|
1170
1189
|
}
|
|
1171
1190
|
async getStat(filepath, opts) {
|
|
1172
|
-
const url =
|
|
1191
|
+
const url = this.getUrl(filepath);
|
|
1173
1192
|
return adapter({
|
|
1174
1193
|
url,
|
|
1175
1194
|
params: {
|
|
@@ -1187,8 +1206,8 @@ class QueryResources {
|
|
|
1187
1206
|
return this.uploadFile(filepath, "文件夹占位,其他文件不存在,文件夹不存在,如果有其他文件夹,删除当前文件夹占位文件即可", opts);
|
|
1188
1207
|
}
|
|
1189
1208
|
async rename(oldpath, newpath, opts) {
|
|
1190
|
-
const pathname =
|
|
1191
|
-
const newName =
|
|
1209
|
+
const pathname = this.getUrl(oldpath);
|
|
1210
|
+
const newName = this.getUrl(newpath);
|
|
1192
1211
|
const params = {
|
|
1193
1212
|
newName
|
|
1194
1213
|
};
|
|
@@ -1201,7 +1220,7 @@ class QueryResources {
|
|
|
1201
1220
|
});
|
|
1202
1221
|
}
|
|
1203
1222
|
async deleteFile(filepath, opts) {
|
|
1204
|
-
const url =
|
|
1223
|
+
const url = this.getUrl(filepath);
|
|
1205
1224
|
return adapter({
|
|
1206
1225
|
url,
|
|
1207
1226
|
method: "DELETE",
|
package/dist/query-secret.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// node_modules/.pnpm/@kevisual+query@0.0.
|
|
1
|
+
// ../../node_modules/.pnpm/@kevisual+query@0.0.55/node_modules/@kevisual/query/dist/query-browser.js
|
|
2
2
|
var isTextForContentType = (contentType) => {
|
|
3
3
|
if (!contentType)
|
|
4
4
|
return false;
|
|
@@ -201,10 +201,6 @@ class Query {
|
|
|
201
201
|
});
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
|
-
const headers2 = req.headers || {};
|
|
205
|
-
if (options?.token && !headers2["Authorization"]) {
|
|
206
|
-
headers2["Authorization"] = `Bearer ${options.token}`;
|
|
207
|
-
}
|
|
208
204
|
} catch (e) {
|
|
209
205
|
console.error("request beforeFn error", e, req);
|
|
210
206
|
return wrapperError({
|
|
@@ -265,20 +261,20 @@ class Query {
|
|
|
265
261
|
this.afterResponse = fn;
|
|
266
262
|
}
|
|
267
263
|
async fetchText(urlOrOptions, options) {
|
|
268
|
-
let _options = {
|
|
264
|
+
let _options = { ...options };
|
|
269
265
|
if (typeof urlOrOptions === "string" && !_options.url) {
|
|
270
266
|
_options.url = urlOrOptions;
|
|
271
267
|
}
|
|
272
268
|
if (typeof urlOrOptions === "object") {
|
|
273
269
|
_options = { ...urlOrOptions, ..._options };
|
|
274
270
|
}
|
|
275
|
-
const headers = { ...this.headers, ..._options.headers };
|
|
276
|
-
if (options?.token && !headers["Authorization"] && _options.method !== "GET") {
|
|
277
|
-
headers["Authorization"] = `Bearer ${options.token}`;
|
|
278
|
-
}
|
|
279
271
|
const res = await adapter({
|
|
272
|
+
method: "GET",
|
|
280
273
|
..._options,
|
|
281
|
-
headers
|
|
274
|
+
headers: {
|
|
275
|
+
...this.headers,
|
|
276
|
+
..._options?.headers || {}
|
|
277
|
+
}
|
|
282
278
|
});
|
|
283
279
|
if (res && !res.code) {
|
|
284
280
|
return {
|
package/dist/query-shop.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// node_modules/.pnpm/@kevisual+query@0.0.
|
|
1
|
+
// ../../node_modules/.pnpm/@kevisual+query@0.0.55/node_modules/@kevisual/query/dist/query-browser.js
|
|
2
2
|
var isTextForContentType = (contentType) => {
|
|
3
3
|
if (!contentType)
|
|
4
4
|
return false;
|
|
@@ -201,10 +201,6 @@ class Query {
|
|
|
201
201
|
});
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
|
-
const headers2 = req.headers || {};
|
|
205
|
-
if (options?.token && !headers2["Authorization"]) {
|
|
206
|
-
headers2["Authorization"] = `Bearer ${options.token}`;
|
|
207
|
-
}
|
|
208
204
|
} catch (e) {
|
|
209
205
|
console.error("request beforeFn error", e, req);
|
|
210
206
|
return wrapperError({
|
|
@@ -265,20 +261,20 @@ class Query {
|
|
|
265
261
|
this.afterResponse = fn;
|
|
266
262
|
}
|
|
267
263
|
async fetchText(urlOrOptions, options) {
|
|
268
|
-
let _options = {
|
|
264
|
+
let _options = { ...options };
|
|
269
265
|
if (typeof urlOrOptions === "string" && !_options.url) {
|
|
270
266
|
_options.url = urlOrOptions;
|
|
271
267
|
}
|
|
272
268
|
if (typeof urlOrOptions === "object") {
|
|
273
269
|
_options = { ...urlOrOptions, ..._options };
|
|
274
270
|
}
|
|
275
|
-
const headers = { ...this.headers, ..._options.headers };
|
|
276
|
-
if (options?.token && !headers["Authorization"] && _options.method !== "GET") {
|
|
277
|
-
headers["Authorization"] = `Bearer ${options.token}`;
|
|
278
|
-
}
|
|
279
271
|
const res = await adapter({
|
|
272
|
+
method: "GET",
|
|
280
273
|
..._options,
|
|
281
|
-
headers
|
|
274
|
+
headers: {
|
|
275
|
+
...this.headers,
|
|
276
|
+
..._options?.headers || {}
|
|
277
|
+
}
|
|
282
278
|
});
|
|
283
279
|
if (res && !res.code) {
|
|
284
280
|
return {
|
|
@@ -290,7 +286,7 @@ class Query {
|
|
|
290
286
|
}
|
|
291
287
|
}
|
|
292
288
|
|
|
293
|
-
// node_modules/.pnpm/@kevisual+router@0.1.
|
|
289
|
+
// ../../node_modules/.pnpm/@kevisual+router@0.1.6/node_modules/@kevisual/router/dist/router-define.js
|
|
294
290
|
class Chain {
|
|
295
291
|
object;
|
|
296
292
|
app;
|
|
@@ -439,7 +435,7 @@ var shopDefine = QueryUtil.create({
|
|
|
439
435
|
}
|
|
440
436
|
});
|
|
441
437
|
|
|
442
|
-
// node_modules/.pnpm/@kevisual+query@0.0.
|
|
438
|
+
// ../../node_modules/.pnpm/@kevisual+query@0.0.55/node_modules/@kevisual/query/dist/query.js
|
|
443
439
|
class BaseQuery {
|
|
444
440
|
query;
|
|
445
441
|
queryDefine;
|
package/dist/store-mark.js
CHANGED
|
@@ -204,10 +204,6 @@ class Query {
|
|
|
204
204
|
});
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
|
-
const headers2 = req.headers || {};
|
|
208
|
-
if (options?.token && !headers2["Authorization"]) {
|
|
209
|
-
headers2["Authorization"] = `Bearer ${options.token}`;
|
|
210
|
-
}
|
|
211
207
|
} catch (e) {
|
|
212
208
|
console.error("request beforeFn error", e, req);
|
|
213
209
|
return wrapperError({
|
|
@@ -268,20 +264,20 @@ class Query {
|
|
|
268
264
|
this.afterResponse = fn;
|
|
269
265
|
}
|
|
270
266
|
async fetchText(urlOrOptions, options) {
|
|
271
|
-
let _options = {
|
|
267
|
+
let _options = { ...options };
|
|
272
268
|
if (typeof urlOrOptions === "string" && !_options.url) {
|
|
273
269
|
_options.url = urlOrOptions;
|
|
274
270
|
}
|
|
275
271
|
if (typeof urlOrOptions === "object") {
|
|
276
272
|
_options = { ...urlOrOptions, ..._options };
|
|
277
273
|
}
|
|
278
|
-
const headers = { ...this.headers, ..._options.headers };
|
|
279
|
-
if (options?.token && !headers["Authorization"] && _options.method !== "GET") {
|
|
280
|
-
headers["Authorization"] = `Bearer ${options.token}`;
|
|
281
|
-
}
|
|
282
274
|
const res = await adapter({
|
|
275
|
+
method: "GET",
|
|
283
276
|
..._options,
|
|
284
|
-
headers
|
|
277
|
+
headers: {
|
|
278
|
+
...this.headers,
|
|
279
|
+
..._options?.headers || {}
|
|
280
|
+
}
|
|
285
281
|
});
|
|
286
282
|
if (res && !res.code) {
|
|
287
283
|
return {
|
|
@@ -367,8 +363,7 @@ class QueryMark extends QueryMarkBase {
|
|
|
367
363
|
return super.updateMark(data, opts);
|
|
368
364
|
}
|
|
369
365
|
}
|
|
370
|
-
|
|
371
|
-
// node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/array/uniqBy.mjs
|
|
366
|
+
// ../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/array/uniqBy.mjs
|
|
372
367
|
function uniqBy(arr, mapper) {
|
|
373
368
|
const map = new Map;
|
|
374
369
|
for (let i = 0;i < arr.length; i++) {
|
package/dist/utils-node.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// node_modules/.pnpm/nanoid@5.1.
|
|
1
|
+
// ../../node_modules/.pnpm/nanoid@5.1.7/node_modules/nanoid/index.js
|
|
2
2
|
import { webcrypto as crypto2 } from "node:crypto";
|
|
3
3
|
var POOL_SIZE_MULTIPLIER = 128;
|
|
4
4
|
var pool;
|
|
@@ -40,7 +40,7 @@ function customAlphabet(alphabet, size = 21) {
|
|
|
40
40
|
return customRandom(alphabet, size, random);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
// node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/_u64.js
|
|
43
|
+
// ../../node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/_u64.js
|
|
44
44
|
var U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);
|
|
45
45
|
var _32n = /* @__PURE__ */ BigInt(32);
|
|
46
46
|
function fromBig(n, le = false) {
|
|
@@ -63,7 +63,7 @@ var rotlSL = (h, l, s) => l << s | h >>> 32 - s;
|
|
|
63
63
|
var rotlBH = (h, l, s) => l << s - 32 | h >>> 64 - s;
|
|
64
64
|
var rotlBL = (h, l, s) => h << s - 32 | l >>> 64 - s;
|
|
65
65
|
|
|
66
|
-
// node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/utils.js
|
|
66
|
+
// ../../node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/utils.js
|
|
67
67
|
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
68
68
|
function isBytes(a) {
|
|
69
69
|
return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
|
|
@@ -131,7 +131,7 @@ var oidNist = (suffix) => ({
|
|
|
131
131
|
oid: Uint8Array.from([6, 9, 96, 134, 72, 1, 101, 3, 4, 2, suffix])
|
|
132
132
|
});
|
|
133
133
|
|
|
134
|
-
// node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/sha3.js
|
|
134
|
+
// ../../node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/sha3.js
|
|
135
135
|
var _0n = BigInt(0);
|
|
136
136
|
var _1n = BigInt(1);
|
|
137
137
|
var _2n = BigInt(2);
|
|
@@ -316,7 +316,7 @@ class Keccak {
|
|
|
316
316
|
var genKeccak = (suffix, blockLen, outputLen, info = {}) => createHasher(() => new Keccak(blockLen, suffix, outputLen), info);
|
|
317
317
|
var sha3_512 = /* @__PURE__ */ genKeccak(6, 72, 64, /* @__PURE__ */ oidNist(10));
|
|
318
318
|
|
|
319
|
-
// node_modules/.pnpm/bignumber.js@9.3.1/node_modules/bignumber.js/bignumber.mjs
|
|
319
|
+
// ../../node_modules/.pnpm/bignumber.js@9.3.1/node_modules/bignumber.js/bignumber.mjs
|
|
320
320
|
var isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i;
|
|
321
321
|
var mathceil = Math.ceil;
|
|
322
322
|
var mathfloor = Math.floor;
|
|
@@ -1766,7 +1766,7 @@ function toFixedPoint(str, e, z) {
|
|
|
1766
1766
|
var BigNumber = clone();
|
|
1767
1767
|
var bignumber_default = BigNumber;
|
|
1768
1768
|
|
|
1769
|
-
// node_modules/.pnpm/@paralleldrive+cuid2@3.3.0/node_modules/@paralleldrive/cuid2/src/index.js
|
|
1769
|
+
// ../../node_modules/.pnpm/@paralleldrive+cuid2@3.3.0/node_modules/@paralleldrive/cuid2/src/index.js
|
|
1770
1770
|
var defaultLength = 24;
|
|
1771
1771
|
var bigLength = 32;
|
|
1772
1772
|
var createRandom = () => {
|
package/dist/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// node_modules/.pnpm/nanoid@5.1.
|
|
1
|
+
// ../../node_modules/.pnpm/nanoid@5.1.7/node_modules/nanoid/index.browser.js
|
|
2
2
|
var random = (bytes) => crypto.getRandomValues(new Uint8Array(bytes));
|
|
3
3
|
var customRandom = (alphabet, defaultSize, getRandom) => {
|
|
4
4
|
let mask = (2 << Math.log2(alphabet.length - 1)) - 1;
|
|
@@ -18,7 +18,7 @@ var customRandom = (alphabet, defaultSize, getRandom) => {
|
|
|
18
18
|
};
|
|
19
19
|
var customAlphabet = (alphabet, size = 21) => customRandom(alphabet, size | 0, random);
|
|
20
20
|
|
|
21
|
-
// node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/_u64.js
|
|
21
|
+
// ../../node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/_u64.js
|
|
22
22
|
var U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);
|
|
23
23
|
var _32n = /* @__PURE__ */ BigInt(32);
|
|
24
24
|
function fromBig(n, le = false) {
|
|
@@ -41,7 +41,7 @@ var rotlSL = (h, l, s) => l << s | h >>> 32 - s;
|
|
|
41
41
|
var rotlBH = (h, l, s) => l << s - 32 | h >>> 64 - s;
|
|
42
42
|
var rotlBL = (h, l, s) => h << s - 32 | l >>> 64 - s;
|
|
43
43
|
|
|
44
|
-
// node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/utils.js
|
|
44
|
+
// ../../node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/utils.js
|
|
45
45
|
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
46
46
|
function isBytes(a) {
|
|
47
47
|
return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
|
|
@@ -109,7 +109,7 @@ var oidNist = (suffix) => ({
|
|
|
109
109
|
oid: Uint8Array.from([6, 9, 96, 134, 72, 1, 101, 3, 4, 2, suffix])
|
|
110
110
|
});
|
|
111
111
|
|
|
112
|
-
// node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/sha3.js
|
|
112
|
+
// ../../node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/sha3.js
|
|
113
113
|
var _0n = BigInt(0);
|
|
114
114
|
var _1n = BigInt(1);
|
|
115
115
|
var _2n = BigInt(2);
|
|
@@ -294,7 +294,7 @@ class Keccak {
|
|
|
294
294
|
var genKeccak = (suffix, blockLen, outputLen, info = {}) => createHasher(() => new Keccak(blockLen, suffix, outputLen), info);
|
|
295
295
|
var sha3_512 = /* @__PURE__ */ genKeccak(6, 72, 64, /* @__PURE__ */ oidNist(10));
|
|
296
296
|
|
|
297
|
-
// node_modules/.pnpm/bignumber.js@9.3.1/node_modules/bignumber.js/bignumber.mjs
|
|
297
|
+
// ../../node_modules/.pnpm/bignumber.js@9.3.1/node_modules/bignumber.js/bignumber.mjs
|
|
298
298
|
var isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i;
|
|
299
299
|
var mathceil = Math.ceil;
|
|
300
300
|
var mathfloor = Math.floor;
|
|
@@ -1744,7 +1744,7 @@ function toFixedPoint(str, e, z) {
|
|
|
1744
1744
|
var BigNumber = clone();
|
|
1745
1745
|
var bignumber_default = BigNumber;
|
|
1746
1746
|
|
|
1747
|
-
// node_modules/.pnpm/@paralleldrive+cuid2@3.3.0/node_modules/@paralleldrive/cuid2/src/index.js
|
|
1747
|
+
// ../../node_modules/.pnpm/@paralleldrive+cuid2@3.3.0/node_modules/@paralleldrive/cuid2/src/index.js
|
|
1748
1748
|
var defaultLength = 24;
|
|
1749
1749
|
var bigLength = 32;
|
|
1750
1750
|
var createRandom = () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kevisual/api",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.65",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "mod.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@kevisual/cache": "^0.0.5",
|
|
25
25
|
"@kevisual/code-builder": "^0.0.6",
|
|
26
|
-
"@kevisual/query": "^0.0.
|
|
27
|
-
"@kevisual/remote-app": "^0.0.
|
|
28
|
-
"@kevisual/router": "^0.1.
|
|
26
|
+
"@kevisual/query": "^0.0.55",
|
|
27
|
+
"@kevisual/remote-app": "^0.0.7",
|
|
28
|
+
"@kevisual/router": "^0.1.6",
|
|
29
29
|
"@kevisual/types": "^0.0.12",
|
|
30
30
|
"@kevisual/use-config": "^1.0.30",
|
|
31
|
-
"@types/bun": "^1.3.
|
|
32
|
-
"@types/node": "^25.
|
|
31
|
+
"@types/bun": "^1.3.11",
|
|
32
|
+
"@types/node": "^25.5.0",
|
|
33
33
|
"@types/spark-md5": "^3.0.5",
|
|
34
34
|
"dotenv": "^17.3.1",
|
|
35
35
|
"fast-glob": "^3.3.3",
|
|
@@ -43,11 +43,12 @@
|
|
|
43
43
|
"es-toolkit": "^1.45.1",
|
|
44
44
|
"eventemitter3": "^5.0.4",
|
|
45
45
|
"fuse.js": "^7.1.0",
|
|
46
|
-
"
|
|
46
|
+
"idb-keyval": "^6.2.2",
|
|
47
|
+
"nanoid": "^5.1.7",
|
|
47
48
|
"path-browserify-esm": "^1.0.6",
|
|
48
49
|
"sonner": "^2.0.7",
|
|
49
50
|
"spark-md5": "^3.0.2",
|
|
50
|
-
"zustand": "^5.0.
|
|
51
|
+
"zustand": "^5.0.12"
|
|
51
52
|
},
|
|
52
53
|
"exports": {
|
|
53
54
|
".": "./mod.ts",
|
|
@@ -383,6 +383,10 @@ export class QueryLogin<T extends Cache = Cache> extends BaseQuery {
|
|
|
383
383
|
if (res.code === 200) {
|
|
384
384
|
// 刷新成功,返回新的token
|
|
385
385
|
return res.data?.accessToken || null;
|
|
386
|
+
} else {
|
|
387
|
+
// remove local token
|
|
388
|
+
this.storage.removeItem('token');
|
|
389
|
+
await this.cacheStore.clearCurrentUser();
|
|
386
390
|
}
|
|
387
391
|
return null;
|
|
388
392
|
}
|
|
@@ -59,19 +59,25 @@ export class QueryResources {
|
|
|
59
59
|
headers: this.header(opts?.headers),
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
+
getUrl(prefix: string): string {
|
|
63
|
+
if (prefix.startsWith('http')) {
|
|
64
|
+
return prefix;
|
|
65
|
+
}
|
|
66
|
+
return `${this.prefix}${prefix}`;
|
|
67
|
+
}
|
|
62
68
|
async getList(prefix: string, data?: { recursive?: boolean }, opts?: DataOpts): Promise<Result<any[]>> {
|
|
63
69
|
return this.get(data, {
|
|
64
|
-
url:
|
|
70
|
+
url: this.getUrl(prefix),
|
|
65
71
|
body: data,
|
|
66
72
|
...opts,
|
|
67
73
|
});
|
|
68
74
|
}
|
|
69
75
|
async fetchFile(filepath: string, opts?: DataOpts): Promise<Result<any>> {
|
|
70
|
-
const url =
|
|
76
|
+
const url = this.getUrl(filepath);
|
|
71
77
|
return this.get({}, { url, method: 'GET', ...opts, headers: this.header(opts?.headers, false), isText: true });
|
|
72
78
|
}
|
|
73
79
|
async uploadFile(filepath: string, content: string | Blob, opts?: DataOpts & { chunkSize?: number, maxSize?: number }): Promise<Result<any>> {
|
|
74
|
-
const pathname =
|
|
80
|
+
const pathname = this.getUrl(filepath);
|
|
75
81
|
const filename = path.basename(pathname);
|
|
76
82
|
const type = getContentType(filename);
|
|
77
83
|
const url = new URL(pathname, window.location.origin);
|
|
@@ -114,12 +120,12 @@ export class QueryResources {
|
|
|
114
120
|
return res;
|
|
115
121
|
}
|
|
116
122
|
async uploadChunkedFile(filepath: string, file: Blob, hash: string, opts?: DataOpts & { chunkSize?: number }): Promise<Result<any>> {
|
|
117
|
-
const pathname =
|
|
123
|
+
const pathname = this.getUrl(filepath);
|
|
118
124
|
const filename = path.basename(pathname);
|
|
119
125
|
const url = new URL(pathname, window.location.origin);
|
|
120
126
|
url.searchParams.set('hash', hash);
|
|
121
127
|
url.searchParams.set('chunk', '1');
|
|
122
|
-
console.log(`url,`, url, hash);
|
|
128
|
+
// console.log(`url,`, url, hash);
|
|
123
129
|
// 预留 eventSource 支持(暂不处理)
|
|
124
130
|
// const createEventSource = opts?.createEventSource;
|
|
125
131
|
const { chunkSize: _chunkSize, ...restOpts } = opts || {};
|
|
@@ -183,7 +189,7 @@ export class QueryResources {
|
|
|
183
189
|
}
|
|
184
190
|
|
|
185
191
|
async getStat(filepath: string, opts?: DataOpts): Promise<Result<Stat>> {
|
|
186
|
-
const url =
|
|
192
|
+
const url = this.getUrl(filepath);
|
|
187
193
|
return adapter({
|
|
188
194
|
url,
|
|
189
195
|
params: {
|
|
@@ -207,8 +213,8 @@ export class QueryResources {
|
|
|
207
213
|
return this.uploadFile(filepath, '文件夹占位,其他文件不存在,文件夹不存在,如果有其他文件夹,删除当前文件夹占位文件即可', opts);
|
|
208
214
|
}
|
|
209
215
|
async rename(oldpath: string, newpath: string, opts?: DataOpts): Promise<Result<any>> {
|
|
210
|
-
const pathname =
|
|
211
|
-
const newName =
|
|
216
|
+
const pathname = this.getUrl(oldpath);
|
|
217
|
+
const newName = this.getUrl(newpath);
|
|
212
218
|
const params = {
|
|
213
219
|
newName: newName,
|
|
214
220
|
};
|
|
@@ -221,7 +227,7 @@ export class QueryResources {
|
|
|
221
227
|
});
|
|
222
228
|
}
|
|
223
229
|
async deleteFile(filepath: string, opts?: DataOpts): Promise<Result<any>> {
|
|
224
|
-
const url =
|
|
230
|
+
const url = this.getUrl(filepath);
|
|
225
231
|
return adapter({
|
|
226
232
|
url,
|
|
227
233
|
method: 'DELETE' as any,
|