@randajan/api-kit 1.2.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +34 -9
- package/dist/cjs/client/index.cjs +120 -67
- package/dist/cjs/client/index.cjs.map +2 -2
- package/dist/cjs/index.cjs +125 -68
- package/dist/cjs/index.cjs.map +2 -2
- package/dist/cjs/server/index.cjs +30 -13
- package/dist/cjs/server/index.cjs.map +2 -2
- package/dist/esm/{chunk-R2VELUR6.js → chunk-72RXZFQZ.js} +7 -3
- package/dist/esm/{chunk-R2VELUR6.js.map → chunk-72RXZFQZ.js.map} +2 -2
- package/dist/esm/{chunk-HYSF3GMO.js → chunk-7K2N7A5V.js} +26 -13
- package/dist/esm/chunk-7K2N7A5V.js.map +7 -0
- package/dist/esm/{chunk-C737ZROD.js → chunk-CYUBH2V3.js} +97 -57
- package/dist/esm/chunk-CYUBH2V3.js.map +7 -0
- package/dist/esm/client/index.mjs +2 -2
- package/dist/esm/index.mjs +3 -3
- package/dist/esm/server/index.mjs +2 -2
- package/package.json +1 -1
- package/dist/esm/chunk-C737ZROD.js.map +0 -7
- package/dist/esm/chunk-HYSF3GMO.js.map +0 -7
package/dist/cjs/index.cjs
CHANGED
|
@@ -28,7 +28,7 @@ __export(index_exports, {
|
|
|
28
28
|
module.exports = __toCommonJS(index_exports);
|
|
29
29
|
|
|
30
30
|
// <define:__slib_info>
|
|
31
|
-
var define_slib_info_default = { isBuild: true, name: "@randajan/api-kit", description: "A lightweight wrapper around fetch that always returns a structured JSON response, handling errors and network issues gracefully", version: "1.
|
|
31
|
+
var define_slib_info_default = { isBuild: true, name: "@randajan/api-kit", description: "A lightweight wrapper around fetch that always returns a structured JSON response, handling errors and network issues gracefully", version: "1.2.0", author: { name: "Jan Randa", email: "jnranda@gmail.com", url: "https://www.linkedin.com/in/randajan/" }, env: "development", mode: "web", port: 3e3, dir: { root: "C:\\dev\\lib\\api-kit", dist: "dist" } };
|
|
32
32
|
|
|
33
33
|
// src/arc/class/ApiError.js
|
|
34
34
|
var import_props = require("@randajan/props");
|
|
@@ -59,32 +59,44 @@ var isErr = (any) => any instanceof Error;
|
|
|
59
59
|
|
|
60
60
|
// src/arc/class/ApiError.js
|
|
61
61
|
var ApiError = class _ApiError extends Error {
|
|
62
|
-
static create(code, message) {
|
|
63
|
-
return new _ApiError(code, message);
|
|
62
|
+
static create(code, message, httpStatusCode = 400, remoteStack = void 0) {
|
|
63
|
+
return new _ApiError(code, message, httpStatusCode, remoteStack);
|
|
64
64
|
}
|
|
65
65
|
static is(any) {
|
|
66
66
|
return any instanceof _ApiError;
|
|
67
67
|
}
|
|
68
|
-
static to(code, any) {
|
|
68
|
+
static to(code, any, httpStatusCode = 500) {
|
|
69
69
|
if (_ApiError.is(any)) {
|
|
70
70
|
return any;
|
|
71
71
|
}
|
|
72
72
|
const msg = toStr(any?.message || any) || "Unknown";
|
|
73
|
-
const apierr = _ApiError.create(code, msg);
|
|
74
|
-
return (0, import_props.solid)(apierr, "stack", any
|
|
73
|
+
const apierr = _ApiError.create(code, msg, httpStatusCode);
|
|
74
|
+
return (0, import_props.solid)(apierr, "stack", any?.stack);
|
|
75
75
|
}
|
|
76
|
-
constructor(code, message) {
|
|
76
|
+
constructor(code, message, httpStatusCode = 400, remoteStack = void 0) {
|
|
77
77
|
super(message);
|
|
78
78
|
(0, import_props.safe)(this, {}, "code", (t, f) => mrgStr(t, f, "."));
|
|
79
|
+
(0, import_props.solid)(this, "httpStatusCode", httpStatusCode ?? 400, true);
|
|
80
|
+
(0, import_props.solid)(this, "remoteStack", remoteStack);
|
|
79
81
|
this.rise(code);
|
|
80
82
|
}
|
|
81
83
|
rise(code = 0) {
|
|
82
84
|
this.code = code || 0;
|
|
83
85
|
return this;
|
|
84
86
|
}
|
|
87
|
+
exposeStack(exposeStack = true) {
|
|
88
|
+
(0, import_props.solid)(this, "_exposeStack", !!exposeStack, false, true);
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
85
91
|
toJSON() {
|
|
86
|
-
const { message } = this;
|
|
87
|
-
|
|
92
|
+
const { message, stack, _exposeStack } = this;
|
|
93
|
+
const body = { message, ...this };
|
|
94
|
+
if (_exposeStack) {
|
|
95
|
+
body.stack = stack;
|
|
96
|
+
} else {
|
|
97
|
+
delete body.stack;
|
|
98
|
+
}
|
|
99
|
+
return body;
|
|
88
100
|
}
|
|
89
101
|
toString() {
|
|
90
102
|
const { message, code } = this;
|
|
@@ -150,7 +162,9 @@ var endTime = (body, startAt) => {
|
|
|
150
162
|
body.time = (0, import_props2.solids)({}, time);
|
|
151
163
|
};
|
|
152
164
|
var end = (body, opt) => {
|
|
153
|
-
|
|
165
|
+
const hasError = !!body.error;
|
|
166
|
+
endTime(body, opt.startAt);
|
|
167
|
+
if (!hasError) {
|
|
154
168
|
if (isFn(opt.onOk)) {
|
|
155
169
|
opt.onOk(body, opt);
|
|
156
170
|
}
|
|
@@ -158,11 +172,10 @@ var end = (body, opt) => {
|
|
|
158
172
|
if (isFn(opt.onError)) {
|
|
159
173
|
opt.onError(body, opt);
|
|
160
174
|
}
|
|
161
|
-
if (opt.throwError) {
|
|
175
|
+
if (opt.throwError || opt.resultOnly) {
|
|
162
176
|
throw body.error;
|
|
163
177
|
}
|
|
164
178
|
}
|
|
165
|
-
endTime(body, opt.startAt);
|
|
166
179
|
return opt.resultOnly ? body.result : Object.freeze(body);
|
|
167
180
|
};
|
|
168
181
|
var diffVersion = (version) => {
|
|
@@ -211,8 +224,12 @@ var tryFn = (any) => {
|
|
|
211
224
|
|
|
212
225
|
// src/server/class/static.js
|
|
213
226
|
var apiExit = (resp, opt) => {
|
|
227
|
+
const { exposeStack } = opt;
|
|
228
|
+
resp.statusCode = 200;
|
|
214
229
|
if (resp.error) {
|
|
215
|
-
resp.error = ApiError.to(0, resp.error).rise(1).rise(opt.code);
|
|
230
|
+
resp.error = ApiError.to(0, resp.error, 500).rise(1).rise(opt.code);
|
|
231
|
+
resp.statusCode = resp.error.httpStatusCode;
|
|
232
|
+
resp.error.exposeStack(!!exposeStack);
|
|
216
233
|
}
|
|
217
234
|
resp[info_default.name] = info_default.version;
|
|
218
235
|
return end(resp, opt);
|
|
@@ -352,72 +369,111 @@ var prepareOpt = (url, opt, method) => {
|
|
|
352
369
|
opt.signal = opt.abortController.signal;
|
|
353
370
|
}
|
|
354
371
|
if (hasTimeout) {
|
|
355
|
-
opt.timeoutId = setTimeout(() => opt.abortController?.abort(
|
|
372
|
+
opt.timeoutId = setTimeout(() => opt.abortController?.abort(ApiError.create(1, "Timeout", 408)), opt.timeout);
|
|
356
373
|
}
|
|
357
374
|
if (isFn(opt.trait)) {
|
|
358
375
|
opt = opt.trait(opt) || opt;
|
|
359
376
|
}
|
|
360
377
|
return opt;
|
|
361
378
|
};
|
|
362
|
-
var localReject = (opt, error
|
|
363
|
-
const {
|
|
364
|
-
if (code == 0) {
|
|
365
|
-
http = 503;
|
|
366
|
-
} else if (code == 1) {
|
|
367
|
-
http = 408;
|
|
368
|
-
} else if (code == 2) {
|
|
369
|
-
http = 499;
|
|
370
|
-
} else if (code == 3) {
|
|
371
|
-
http = 415;
|
|
372
|
-
} else if (!http) {
|
|
373
|
-
http = 400;
|
|
374
|
-
}
|
|
379
|
+
var localReject = (opt, error) => {
|
|
380
|
+
const { httpStatusCode } = error;
|
|
375
381
|
error.rise(0).rise(opt.code || 0);
|
|
376
|
-
return end({
|
|
382
|
+
return end({ isOk: false, isRemote: false, isApiKit: false, statusCode: httpStatusCode, error }, opt);
|
|
377
383
|
};
|
|
378
|
-
var
|
|
379
|
-
|
|
384
|
+
var statusError = ({ status, statusText }) => ApiError.create(4, statusText || status, status);
|
|
385
|
+
var unreadableError = (resp) => resp.ok ? ApiError.create(3, "Unreadable", 415) : statusError(resp);
|
|
386
|
+
var foreignError = (resp) => ({ isApiKit: false, error: statusError(resp) });
|
|
387
|
+
var readText = async (resp) => {
|
|
380
388
|
try {
|
|
381
|
-
|
|
382
|
-
} catch
|
|
383
|
-
|
|
389
|
+
return await resp.text();
|
|
390
|
+
} catch {
|
|
391
|
+
throw unreadableError(resp);
|
|
384
392
|
}
|
|
385
|
-
|
|
393
|
+
};
|
|
394
|
+
var decodeText = (text, opt, resp) => {
|
|
386
395
|
try {
|
|
387
|
-
|
|
396
|
+
return opt.decodeBody(text);
|
|
388
397
|
} catch {
|
|
389
|
-
|
|
398
|
+
throw unreadableError(resp);
|
|
390
399
|
}
|
|
400
|
+
};
|
|
401
|
+
var resolveEmpty = (resp) => {
|
|
402
|
+
if (!resp.ok && resp.status !== 304) {
|
|
403
|
+
return foreignError(resp);
|
|
404
|
+
}
|
|
405
|
+
return { result: null, isApiKit: false };
|
|
406
|
+
};
|
|
407
|
+
var resolveApiKit = (raw, opt) => {
|
|
391
408
|
const apv = raw[info_default.name];
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
if (diff === "major") {
|
|
397
|
-
console.error(msg);
|
|
398
|
-
}
|
|
399
|
-
if (diff === "minor") {
|
|
400
|
-
console.warn(msg);
|
|
401
|
-
}
|
|
402
|
-
} else {
|
|
403
|
-
body = {};
|
|
404
|
-
try {
|
|
405
|
-
body.result = opt.parseBody(raw);
|
|
406
|
-
} catch (err) {
|
|
407
|
-
body.error = err.message || err;
|
|
408
|
-
}
|
|
409
|
+
const diff = diffVersion(apv);
|
|
410
|
+
const msg = `Detected @randajan/api-kit ${diff} version difference at '${opt.url}'. Server '${apv}' vs. client '${info_default.version}'`;
|
|
411
|
+
if (diff === "major") {
|
|
412
|
+
console.error(msg);
|
|
409
413
|
}
|
|
410
|
-
if (
|
|
411
|
-
|
|
412
|
-
body.error = new ApiError(code || mrgStr(opt.code || 0, "1.0", "."), message || body.error);
|
|
414
|
+
if (diff === "minor") {
|
|
415
|
+
console.warn(msg);
|
|
413
416
|
}
|
|
414
|
-
|
|
415
|
-
|
|
417
|
+
raw.isApiKit = true;
|
|
418
|
+
return raw;
|
|
419
|
+
};
|
|
420
|
+
var resolveForeign = (raw, opt, resp) => {
|
|
421
|
+
if (!resp.ok) {
|
|
422
|
+
return foreignError(resp);
|
|
423
|
+
}
|
|
424
|
+
const body = { isApiKit: false };
|
|
425
|
+
try {
|
|
426
|
+
body.result = opt.parseBody(raw);
|
|
427
|
+
} catch (err) {
|
|
428
|
+
body.error = err.message || err;
|
|
429
|
+
}
|
|
430
|
+
return body;
|
|
431
|
+
};
|
|
432
|
+
var resolveDecoded = (raw, opt, resp) => {
|
|
433
|
+
if (raw?.[info_default.name]) {
|
|
434
|
+
return resolveApiKit(raw, opt);
|
|
435
|
+
}
|
|
436
|
+
return resolveForeign(raw, opt, resp);
|
|
437
|
+
};
|
|
438
|
+
var normalizeError = (body, opt, resp) => {
|
|
439
|
+
if (!body.error || ApiError.is(body.error)) {
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
const { code, message, stack, httpStatusCode } = body.error;
|
|
443
|
+
body.error = ApiError.create(
|
|
444
|
+
code || mrgStr(opt.code || 0, "1.0", "."),
|
|
445
|
+
message || body.error,
|
|
446
|
+
httpStatusCode ?? body.statusCode ?? resp.status,
|
|
447
|
+
stack
|
|
448
|
+
);
|
|
449
|
+
};
|
|
450
|
+
var remoteResolve = (body, opt, resp) => {
|
|
451
|
+
normalizeError(body, opt, resp);
|
|
452
|
+
body.isOk = !body.error;
|
|
453
|
+
body.isRemote = true;
|
|
454
|
+
body.isApiKit = !!body.isApiKit;
|
|
455
|
+
body.statusCode = body.statusCode ?? body.error?.httpStatusCode ?? resp.status;
|
|
416
456
|
if (opt.parseHeaders) {
|
|
417
|
-
body.headers = Object.freeze(Object.fromEntries(headers.entries()));
|
|
457
|
+
body.headers = Object.freeze(Object.fromEntries(resp.headers.entries()));
|
|
418
458
|
}
|
|
419
459
|
return end(body, opt);
|
|
420
460
|
};
|
|
461
|
+
var remoteReject = (opt, resp, error) => remoteResolve({ isApiKit: false, error }, opt, resp);
|
|
462
|
+
var fetchExe = async (_fetch, opt) => {
|
|
463
|
+
let resp, body;
|
|
464
|
+
try {
|
|
465
|
+
resp = await _fetch(opt.url, opt);
|
|
466
|
+
} catch (err) {
|
|
467
|
+
return localReject(opt, ApiError.is(err) ? err : ApiError.to(0, "Failed", 503));
|
|
468
|
+
}
|
|
469
|
+
try {
|
|
470
|
+
const text = await readText(resp);
|
|
471
|
+
body = text ? resolveDecoded(decodeText(text, opt, resp), opt, resp) : resolveEmpty(resp);
|
|
472
|
+
} catch (err) {
|
|
473
|
+
return remoteReject(opt, resp, ApiError.is(err) ? err : ApiError.to(0, err, 500));
|
|
474
|
+
}
|
|
475
|
+
return remoteResolve(body, opt, resp);
|
|
476
|
+
};
|
|
421
477
|
var fetchResolve = (_fetch, url, opt, method) => {
|
|
422
478
|
const prom = fetchExe(_fetch, prepareOpt(url, opt, method));
|
|
423
479
|
if (opt.timeoutId) {
|
|
@@ -426,17 +482,18 @@ var fetchResolve = (_fetch, url, opt, method) => {
|
|
|
426
482
|
if (!opt.abortable) {
|
|
427
483
|
return prom;
|
|
428
484
|
}
|
|
429
|
-
return (0, import_props4.solid)(prom, "abort", (_) => opt.abortController?.abort(
|
|
485
|
+
return (0, import_props4.solid)(prom, "abort", (_) => opt.abortController?.abort(ApiError.create(2, "Aborted", 499)));
|
|
430
486
|
};
|
|
431
487
|
|
|
432
488
|
// src/client/class/Fetch.js
|
|
433
489
|
var import_props5 = require("@randajan/props");
|
|
434
490
|
|
|
435
491
|
// src/client/tool.js
|
|
492
|
+
var mrgQuery = (opt) => mrgObj(opt?.params, opt?.query);
|
|
436
493
|
var mrgOpt = (a, b) => {
|
|
437
494
|
const opt = mrgObj(a, b);
|
|
438
495
|
opt.body = mrgObj(a?.body, b?.body);
|
|
439
|
-
opt.
|
|
496
|
+
opt.query = mrgObj(mrgQuery(a), mrgQuery(b));
|
|
440
497
|
opt.headers = mrgObj(a?.headers, b?.headers, {});
|
|
441
498
|
return opt;
|
|
442
499
|
};
|
|
@@ -461,25 +518,25 @@ var Fetch = class _Fetch extends Functionable {
|
|
|
461
518
|
extend(config) {
|
|
462
519
|
return new _Fetch(mrgOpt(this.config, config));
|
|
463
520
|
}
|
|
464
|
-
|
|
521
|
+
get(url, opt) {
|
|
465
522
|
return this(url, opt, "GET");
|
|
466
523
|
}
|
|
467
|
-
|
|
524
|
+
post(url, opt) {
|
|
468
525
|
return this(url, opt, "POST");
|
|
469
526
|
}
|
|
470
|
-
|
|
527
|
+
put(url, opt) {
|
|
471
528
|
return this(url, opt, "PUT");
|
|
472
529
|
}
|
|
473
|
-
|
|
530
|
+
delete(url, opt) {
|
|
474
531
|
return this(url, opt, "DELETE");
|
|
475
532
|
}
|
|
476
|
-
|
|
533
|
+
patch(url, opt) {
|
|
477
534
|
return this(url, opt, "PATCH");
|
|
478
535
|
}
|
|
479
|
-
|
|
536
|
+
head(url, opt) {
|
|
480
537
|
return this(url, opt, "HEAD");
|
|
481
538
|
}
|
|
482
|
-
|
|
539
|
+
options(url, opt) {
|
|
483
540
|
return this(url, opt, "OPTIONS");
|
|
484
541
|
}
|
|
485
542
|
};
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.js", "<define:__slib_info>", "../../src/arc/class/ApiError.js", "../../src/arc/tool.js", "../../src/server/class/Api.js", "../../src/arc/class/Functionable.js", "../../node_modules/@randajan/simple-lib/src/info/index.js", "../../src/arc/main.js", "../../src/server/tool.js", "../../src/server/class/static.js", "../../src/arc/opt.js", "../../src/server/index.js", "../../src/client/class/static.js", "../../src/arc/url.js", "../../src/arc/types/kinds/json.js", "../../src/arc/types/kinds/form.js", "../../src/arc/types/index.js", "../../src/client/class/Fetch.js", "../../src/client/tool.js", "../../src/client/index.js"],
|
|
4
|
-
"sourcesContent": ["import { ApiError } from \"./arc/class/ApiError\";\r\nimport createApi, { Api } from \"./server\";\r\nimport createFetch, { Fetch } from \"./client\";\r\n\r\n\r\nexport {\r\n createApi,\r\n createFetch,\r\n Api,\r\n Fetch,\r\n ApiError\r\n}", "", "import { safe, solid } from \"@randajan/props\";\r\nimport { mrgStr, toStr } from \"../tool\";\r\n\r\n\r\n\r\nexport class ApiError extends Error {\r\n\r\n static create(code, message) { return new ApiError(code, message); }\r\n\r\n static is(any) { return any instanceof ApiError; }\r\n\r\n static to(code, any) {\r\n if (ApiError.is(any)) { return any; }\r\n \r\n const msg = toStr(any?.message || any) || \"Unknown\";\r\n const apierr = ApiError.create(code, msg);\r\n return solid(apierr, \"stack\", any.stack, false);\r\n }\r\n\r\n constructor(code, message) {\r\n super(message);\r\n\r\n safe(this, {}, \"code\", (t, f)=>mrgStr(t, f, \".\"));\r\n\r\n this.rise(code);\r\n }\r\n\r\n rise(code=0) {\r\n this.code = (code || 0);\r\n return this;\r\n }\r\n\r\n toJSON() {\r\n const { message } = this;\r\n return {message, ...this};\r\n }\r\n\r\n toString() {\r\n const { message, code } = this;\r\n return message + (code == null ? \"\" : ` (${code})`);\r\n }\r\n\r\n}", "\r\n\r\nexport const mrgObj = (a, b, def)=>{\r\n if (!a && !b) { return def; }\r\n if (!a) { return {...b}; }\r\n if (!b) { return {...a}; }\r\n return {...a, ...b};\r\n}\r\n\r\nexport const toStr = s=>s == null ? \"\" : String(s);\r\nexport const mrgStr = (a, b, sep=\"\")=>{\r\n a = toStr(a); b = toStr(b);\r\n return (a && b) ? a+sep+b : a+b;\r\n};\r\n\r\nexport const isFn = any=>typeof any === \"function\";\r\nexport const doFn = any=>isFn(any) ? any() : any;\r\nexport const isProm = any=>any instanceof Promise;\r\nexport const isErr = any=>any instanceof Error;\r\n", "import { solid } from \"@randajan/props\";\r\nimport { Functionable } from \"../../arc/class/Functionable\";\r\nimport { apiResolve } from \"./static\";\r\nimport { mrgObj } from \"../../arc/tool\";\r\nimport { configTrait } from \"../../arc/opt\";\r\n\r\nexport class Api extends Functionable {\r\n\r\n static create(config={}) { return new Api(config); }\r\n\r\n constructor(config={}) {\r\n\r\n configTrait(config);\r\n \r\n super((exe, opt)=>apiResolve(exe, mrgObj(config, opt)));\r\n\r\n Object.freeze(config);\r\n solid(this, \"config\", config);\r\n }\r\n\r\n code(code, exe, opt={}) {\r\n opt.code = code;\r\n return this(exe, opt);\r\n }\r\n\r\n extend(config) { return new Api(mrgObj(this.config, config)); }\r\n}", "\r\n\r\n\r\nexport class Functionable extends Function {\r\n constructor(self) {\r\n super();\r\n return Object.setPrototypeOf(self, this);\r\n }\r\n}", "const enumerable = true;\r\nconst lockObject = o=>{\r\n if (typeof o !== \"object\") { return o; }\r\n\r\n const r = {};\r\n for (const i in o) {\r\n const descriptor = { enumerable };\r\n let val = o[i];\r\n if (val instanceof Array) { descriptor.get = _=>[...val]; }\r\n else { descriptor.value = lockObject(val); }\r\n Object.defineProperty(r, i, descriptor);\r\n }\r\n\r\n return r;\r\n}\r\n\r\nexport const info = lockObject(__slib_info);\r\nexport default info;", "import { solids } from \"@randajan/props\";\r\nimport { isFn, toStr } from \"./tool\";\r\nimport { info } from \"@randajan/simple-lib/info\";\r\n\r\n\r\nexport const start = (opt)=>{\r\n if (opt.timestamp) { return opt.startAt = Date.now(); }\r\n}\r\n\r\nconst endTime = (body, startAt)=>{\r\n if (!startAt) { return; }\r\n\r\n const endAt = Date.now();\r\n const time = {\r\n startAt,\r\n endAt,\r\n run:endAt-startAt\r\n }\r\n\r\n if (body.time) {\r\n time.srvRun = body.time.run;\r\n time.netIn = body.time.startAt - startAt;\r\n time.netOut = endAt - body.time.endAt;\r\n }\r\n\r\n body.time = solids({}, time);\r\n}\r\n\r\nexport const end = (body, opt)=>{\r\n if (!body.error){\r\n if (isFn(opt.onOk)) { opt.onOk(body, opt); }\r\n } else {\r\n if (isFn(opt.onError)) { opt.onError(body, opt); }\r\n if (opt.throwError) { throw body.error; }\r\n }\r\n\r\n endTime(body, opt.startAt);\r\n return opt.resultOnly ? body.result : Object.freeze(body);\r\n}\r\n\r\nexport const diffVersion = (version)=>{\r\n const v1 = toStr(info.version);\r\n const v2 = toStr(version);\r\n\r\n if (v1 === v2) { return }\r\n \r\n const f1 = v1.split(\".\");\r\n const f2 = v2.split(\".\");\r\n\r\n if (f1[0] !== f2[0]) { return \"major\"; }\r\n if (f1[1] !== f2[1]) { return \"minor\"; }\r\n if (f1[2] !== f2[2]) { return \"patch\"; }\r\n}", "import { doFn, isErr, isProm } from \"../arc/tool\";\r\n\r\nconst wrapResult = r=>({[isErr(r) ? \"error\" : \"result\"]:r});\r\nconst wrapError = error=>({error});\r\n\r\nexport const tryFnSync = any=>{\r\n try { return wrapResult(doFn(any)); }\r\n catch(error) { return {error}; }\r\n}\r\n\r\nexport const tryFnAsync = async any=>{\r\n try { return wrapResult(await doFn(any)); }\r\n catch(error) { return {error}; }\r\n}\r\n\r\nexport const tryFn = any=>{\r\n const r = tryFnSync(any);\r\n if (!isProm(r.result)) { return r; }\r\n return r.result.then(wrapResult).catch(wrapError);\r\n}", "import info from \"@randajan/simple-lib/info\";\r\nimport { ApiError } from \"../../arc/class/ApiError\"\r\nimport { start, end } from \"../../arc/main\";\r\nimport { isFn, isProm } from \"../../arc/tool\";\r\nimport { tryFn, tryFnAsync } from \"../tool\";\r\n\r\n\r\nconst apiExit = (resp, opt)=>{\r\n if (resp.error) { resp.error = ApiError.to(0, resp.error).rise(1).rise(opt.code); }\r\n resp[info.name] = info.version;\r\n return end(resp, opt);\r\n}\r\n\r\nconst apiAsync = async (exe, opt)=>apiExit(await tryFnAsync(exe), opt);\r\n\r\nexport const apiResolve = (exe, opt)=>{\r\n start(opt);\r\n\r\n opt = opt.trait(opt) || opt;\r\n\r\n if (opt.isAsync) { return apiAsync(exe, opt); }\r\n\r\n const resp = tryFn(exe);\r\n if (!isProm(resp)) { return apiExit(resp, opt); } \r\n return resp.then((resp)=>apiExit(resp, opt));\r\n}", "import { isFn } from \"./tool\"\r\n\r\n\r\n\r\n\r\nexport const createTrait = (trait)=>{\r\n if (!trait) { return opt=>opt; }\r\n if (isFn(trait)) { return trait; }\r\n throw new Error(\"config.trait should be a function\");\r\n}\r\n\r\nexport const configTrait = (config)=>{\r\n config.trait = createTrait(config.trait);\r\n}", "import { ApiError } from \"../arc/class/ApiError\";\r\nimport { Api } from \"./class/Api\";\r\n\r\nexport const createApi = Api.create;\r\nexport default createApi;\r\nexport {\r\n Api,\r\n ApiError\r\n}", "import info from \"@randajan/simple-lib/info\";\r\nimport { solid } from \"@randajan/props\";\r\nimport { isFn, mrgStr } from \"../../arc/tool\";\r\nimport { ApiError } from \"../../arc/class/ApiError\";\r\nimport { buildUrl } from \"../../arc/url\";\r\nimport { diffVersion, end, start } from \"../../arc/main\";\r\nimport { attachBodyDecoder, encodeBody } from \"../../arc/types\";\r\n\r\nconst prepareOpt = (url, opt, method)=>{\r\n start(opt);\r\n\r\n opt.url = buildUrl( mrgStr(opt.url, url), opt.query);\r\n\r\n if (method) { opt.method = method; }\r\n\r\n if (opt.body) { encodeBody(opt); }\r\n\r\n attachBodyDecoder(opt);\r\n\r\n const hasTimeout = opt.timeout > 0;\r\n if (opt.abortable || hasTimeout) {\r\n opt.abortController = new AbortController();\r\n opt.signal = opt.abortController.signal;\r\n }\r\n\r\n if (hasTimeout) {\r\n opt.timeoutId = setTimeout(() => opt.abortController?.abort(new ApiError(1, \"Timeout\")), opt.timeout);\r\n }\r\n\r\n if (isFn(opt.trait)) { opt = opt.trait(opt) || opt; }\r\n\r\n return opt;\r\n}\r\n\r\nconst localReject = (opt, error, http)=>{\r\n const { code } = error;\r\n\r\n if (code == 0) { http = 503 } //failed\r\n else if (code == 1) { http = 408; } //timeout\r\n else if (code == 2) { http = 499; } //aborted\r\n else if (code == 3) { http = 415; } //unreadable\r\n else if (!http) { http = 400; }\r\n\r\n error.rise(0).rise(opt.code || 0);\r\n\r\n return end({ ok:false, http, error }, opt);\r\n}\r\n\r\nconst fetchExe = async (_fetch, opt) => {\r\n\r\n let resp, raw, body;\r\n\r\n try { resp = await _fetch(opt.url, opt); }\r\n catch (err) { return localReject(opt, ApiError.is(err) ? err : ApiError.to(0, \"Failed\")); }\r\n\r\n const { ok, status, headers, statusText } = resp;\r\n\r\n try {\r\n raw = opt.decodeBody(await resp.text());\r\n } catch {\r\n return localReject(opt, new ApiError(ok?3:4, ok?\"Unreadable\" : (statusText || status)), status);\r\n }\r\n \r\n const apv = raw[info.name];\r\n \r\n if (apv) {\r\n body = raw;\r\n const diff = diffVersion(apv);\r\n const msg = `Detected @randajan/api-kit ${diff} version difference at '${opt.url}'. Server '${apv}' vs. client '${info.version}'`;\r\n if (diff === \"major\") { console.error(msg); }\r\n if (diff === \"minor\") { console.warn(msg); }\r\n } else {\r\n body = {};\r\n try { body.result = opt.parseBody(raw); }\r\n catch(err) { body.error = err.message || err; }\r\n }\r\n\r\n if (body.error) {\r\n const { code, message } = body.error;\r\n body.error = new ApiError(code || mrgStr(opt.code || 0, \"1.0\", \".\"), message || body.error );\r\n }\r\n\r\n body.ok = !body.error;\r\n body.http = status;\r\n\r\n if (opt.parseHeaders) {\r\n body.headers = Object.freeze(Object.fromEntries(headers.entries()));\r\n }\r\n \r\n return end(body, opt);\r\n};\r\n\r\nexport const fetchResolve = (_fetch, url, opt, method)=>{\r\n const prom = fetchExe(_fetch, prepareOpt(url, opt, method));\r\n\r\n if (opt.timeoutId) { prom.finally(_=>clearTimeout(opt.timeoutId)); }\r\n if (!opt.abortable) { return prom; }\r\n\r\n return solid(prom, \"abort\", _=>opt.abortController?.abort(new ApiError(2, \"Aborted\")));\r\n}", "let _regexp = /^https?:\\/\\//i;\r\nexport const buildUrl = (inputUrl, params)=>{\r\n if (!params) { return inputUrl; }\r\n\r\n const hasHost = _regexp.test(inputUrl);\r\n const url = new URL(inputUrl, hasHost ? undefined : \"http://thisisonlyplaceholder.xyz\");\r\n url.hash = \"\";\r\n\r\n for (const [key, value] of Object.entries(params)) {\r\n if (value != null) { url.searchParams.append(key, value); }\r\n };\r\n\r\n return hasHost ? url.toString() : url.pathname + url.search;\r\n}", "\r\n\r\nexport const mime = \"application/json\";\r\nexport const decode = body=>JSON.parse(body);\r\nexport const encode = body=>JSON.stringify(body);", "\r\n\r\nexport const mime = 'application/x-www-form-urlencoded';\r\nexport const decode = body=>Object.fromEntries(new URLSearchParams(body));\r\nexport const encode = body=>new URLSearchParams(body);\r\n\r\n", "import * as json from \"./kinds/json\";\r\nimport * as form from \"./kinds/form\";\r\n\r\n\r\nconst types = { json, form };\r\nconst getType = (typeName)=>{\r\n if (!typeName) { return json; }\r\n const type = types[typeName];\r\n if (type) { return type; }\r\n throw new Error(`Unknow config.type '${typeName}'. Must be one of: '${[...Object.keys(types)].join(\"', '\")}'`);\r\n}\r\n\r\n\r\nexport const encodeBody = (opt)=>{\r\n const type = getType(opt.requestType || opt.type); \r\n \r\n opt.headers[\"Content-Type\"] = type.mime;\r\n opt.body = type.encode(opt.body);\r\n}\r\n\r\nexport const attachBodyDecoder = (opt)=>{\r\n const type = getType(opt.responseType || opt.type);\r\n\r\n opt.headers['Accept'] = type.mime;\r\n opt.decodeBody = type.decode;\r\n}", "import { fetchResolve } from \"./static\";\r\nimport { Functionable } from \"../../arc/class/Functionable\";\r\nimport { solid } from \"@randajan/props\";\r\nimport { mrgOpt } from \"../tool\";\r\nimport { configTrait, createTrait } from \"../../arc/opt\";\r\n\r\nexport class Fetch extends Functionable {\r\n\r\n static create(config={}) { return new Fetch(config) }\r\n\r\n constructor(config = {}) {\r\n \r\n const _fetch = config.fetch || globalThis.fetch;\r\n\r\n if (!_fetch) { throw new Error(\"Missing fetch function. Please provide it inconfig\"); }\r\n\r\n configTrait(config);\r\n config.parseBody = createTrait(config.parseBody);\r\n\r\n delete config.fetch;\r\n\r\n super((url, opt, method) =>fetchResolve(_fetch, url, mrgOpt(config, opt), method));\r\n\r\n Object.freeze(config);\r\n solid(this, \"config\", config);\r\n }\r\n\r\n extend(config) { return new Fetch(mrgOpt(this.config, config)); }\r\n\r\n async get(url, opt) { return this(url, opt, \"GET\"); }\r\n async post(url, opt) { return this(url, opt, \"POST\"); }\r\n async put(url, opt) { return this(url, opt, \"PUT\"); }\r\n async delete(url, opt) { return this(url, opt, \"DELETE\"); }\r\n async patch(url, opt) { return this(url, opt, \"PATCH\"); }\r\n async head(url, opt) { return this(url, opt, \"HEAD\"); }\r\n async options(url, opt) { return this(url, opt, \"OPTIONS\"); }\r\n}", "import { mrgObj } from \"../arc/tool\";\r\n\r\nexport const mrgOpt = (a, b)=>{\r\n const opt = mrgObj(a, b);\r\n\r\n opt.body = mrgObj(a?.body, b?.body);\r\n opt.params = mrgObj(a?.params, b?.params);\r\n opt.headers = mrgObj(a?.headers, b?.headers, {});\r\n\r\n return opt;\r\n}", "import { ApiError } from \"../arc/class/ApiError\";\nimport { Fetch } from \"./class/Fetch\";\n\nexport const createFetch = Fetch.create;\nexport default createFetch;\n\nexport {\n Fetch,\n ApiError\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { ApiError } from \"./arc/class/ApiError\";\r\nimport createApi, { Api } from \"./server\";\r\nimport createFetch, { Fetch } from \"./client\";\r\n\r\n\r\nexport {\r\n createApi,\r\n createFetch,\r\n Api,\r\n Fetch,\r\n ApiError\r\n}", "", "import { safe, solid } from \"@randajan/props\";\r\nimport { mrgStr, toStr } from \"../tool\";\r\n\r\n\r\n\r\nexport class ApiError extends Error {\r\n\r\n static create(code, message, httpStatusCode=400, remoteStack=undefined) {\r\n return new ApiError(code, message, httpStatusCode, remoteStack);\r\n }\r\n\r\n static is(any) { return any instanceof ApiError; }\r\n\r\n static to(code, any, httpStatusCode=500) {\r\n if (ApiError.is(any)) { return any; }\r\n \r\n const msg = toStr(any?.message || any) || \"Unknown\";\r\n const apierr = ApiError.create(code, msg, httpStatusCode);\r\n return solid(apierr, \"stack\", any?.stack);\r\n }\r\n\r\n constructor(code, message, httpStatusCode=400, remoteStack=undefined) {\r\n super(message);\r\n\r\n safe(this, {}, \"code\", (t, f)=>mrgStr(t, f, \".\"));\r\n solid(this, \"httpStatusCode\", httpStatusCode ?? 400, true);\r\n solid(this, \"remoteStack\", remoteStack);\r\n\r\n this.rise(code);\r\n }\r\n\r\n rise(code=0) {\r\n this.code = (code || 0);\r\n return this;\r\n }\r\n\r\n exposeStack(exposeStack=true) {\r\n solid(this, \"_exposeStack\", !!exposeStack, false, true);\r\n return this;\r\n }\r\n\r\n toJSON() {\r\n const { message, stack, _exposeStack } = this;\r\n const body = {message, ...this};\r\n if (_exposeStack) { body.stack = stack; }\r\n else { delete body.stack; }\r\n return body;\r\n }\r\n\r\n toString() {\r\n const { message, code } = this;\r\n return message + (code == null ? \"\" : ` (${code})`);\r\n }\r\n\r\n}\r\n", "\r\n\r\nexport const mrgObj = (a, b, def)=>{\r\n if (!a && !b) { return def; }\r\n if (!a) { return {...b}; }\r\n if (!b) { return {...a}; }\r\n return {...a, ...b};\r\n}\r\n\r\nexport const toStr = s=>s == null ? \"\" : String(s);\r\nexport const mrgStr = (a, b, sep=\"\")=>{\r\n a = toStr(a); b = toStr(b);\r\n return (a && b) ? a+sep+b : a+b;\r\n};\r\n\r\nexport const isFn = any=>typeof any === \"function\";\r\nexport const doFn = any=>isFn(any) ? any() : any;\r\nexport const isProm = any=>any instanceof Promise;\r\nexport const isErr = any=>any instanceof Error;\r\n", "import { solid } from \"@randajan/props\";\r\nimport { Functionable } from \"../../arc/class/Functionable\";\r\nimport { apiResolve } from \"./static\";\r\nimport { mrgObj } from \"../../arc/tool\";\r\nimport { configTrait } from \"../../arc/opt\";\r\n\r\nexport class Api extends Functionable {\r\n\r\n static create(config={}) { return new Api(config); }\r\n\r\n constructor(config={}) {\r\n\r\n configTrait(config);\r\n \r\n super((exe, opt)=>apiResolve(exe, mrgObj(config, opt)));\r\n\r\n Object.freeze(config);\r\n solid(this, \"config\", config);\r\n }\r\n\r\n code(code, exe, opt={}) {\r\n opt.code = code;\r\n return this(exe, opt);\r\n }\r\n\r\n extend(config) { return new Api(mrgObj(this.config, config)); }\r\n}", "\r\n\r\n\r\nexport class Functionable extends Function {\r\n constructor(self) {\r\n super();\r\n return Object.setPrototypeOf(self, this);\r\n }\r\n}", "const enumerable = true;\r\nconst lockObject = o=>{\r\n if (typeof o !== \"object\") { return o; }\r\n\r\n const r = {};\r\n for (const i in o) {\r\n const descriptor = { enumerable };\r\n let val = o[i];\r\n if (val instanceof Array) { descriptor.get = _=>[...val]; }\r\n else { descriptor.value = lockObject(val); }\r\n Object.defineProperty(r, i, descriptor);\r\n }\r\n\r\n return r;\r\n}\r\n\r\nexport const info = lockObject(__slib_info);\r\nexport default info;", "import { solids } from \"@randajan/props\";\r\nimport { isFn, toStr } from \"./tool\";\r\nimport { info } from \"@randajan/simple-lib/info\";\r\n\r\n\r\nexport const start = (opt)=>{\r\n if (opt.timestamp) { return opt.startAt = Date.now(); }\r\n}\r\n\r\nconst endTime = (body, startAt)=>{\r\n if (!startAt) { return; }\r\n\r\n const endAt = Date.now();\r\n const time = {\r\n startAt,\r\n endAt,\r\n run:endAt-startAt\r\n }\r\n\r\n if (body.time) {\r\n time.srvRun = body.time.run;\r\n time.netIn = body.time.startAt - startAt;\r\n time.netOut = endAt - body.time.endAt;\r\n }\r\n\r\n body.time = solids({}, time);\r\n}\r\n\r\nexport const end = (body, opt)=>{\r\n const hasError = !!body.error;\r\n\r\n endTime(body, opt.startAt);\r\n\r\n if (!hasError){\r\n if (isFn(opt.onOk)) { opt.onOk(body, opt); }\r\n } else {\r\n if (isFn(opt.onError)) { opt.onError(body, opt); }\r\n if (opt.throwError || opt.resultOnly) { throw body.error; }\r\n }\r\n\r\n return opt.resultOnly ? body.result : Object.freeze(body);\r\n}\r\n\r\nexport const diffVersion = (version)=>{\r\n const v1 = toStr(info.version);\r\n const v2 = toStr(version);\r\n\r\n if (v1 === v2) { return }\r\n \r\n const f1 = v1.split(\".\");\r\n const f2 = v2.split(\".\");\r\n\r\n if (f1[0] !== f2[0]) { return \"major\"; }\r\n if (f1[1] !== f2[1]) { return \"minor\"; }\r\n if (f1[2] !== f2[2]) { return \"patch\"; }\r\n}\r\n", "import { doFn, isErr, isProm } from \"../arc/tool\";\r\n\r\nconst wrapResult = r=>({[isErr(r) ? \"error\" : \"result\"]:r});\r\nconst wrapError = error=>({error});\r\n\r\nexport const tryFnSync = any=>{\r\n try { return wrapResult(doFn(any)); }\r\n catch(error) { return {error}; }\r\n}\r\n\r\nexport const tryFnAsync = async any=>{\r\n try { return wrapResult(await doFn(any)); }\r\n catch(error) { return {error}; }\r\n}\r\n\r\nexport const tryFn = any=>{\r\n const r = tryFnSync(any);\r\n if (!isProm(r.result)) { return r; }\r\n return r.result.then(wrapResult).catch(wrapError);\r\n}", "import info from \"@randajan/simple-lib/info\";\r\nimport { ApiError } from \"../../arc/class/ApiError\"\r\nimport { start, end } from \"../../arc/main\";\r\nimport { isFn, isProm } from \"../../arc/tool\";\r\nimport { tryFn, tryFnAsync } from \"../tool\";\r\n\n\r\nconst apiExit = (resp, opt)=>{\r\n const { exposeStack } = opt;\r\n\r\n resp.statusCode = 200;\r\n\r\n if (resp.error) {\r\n resp.error = ApiError.to(0, resp.error, 500).rise(1).rise(opt.code);\r\n resp.statusCode = resp.error.httpStatusCode;\r\n resp.error.exposeStack(!!exposeStack);\r\n }\n\n resp[info.name] = info.version;\r\n\r\n return end(resp, opt);\r\n}\r\n\r\nconst apiAsync = async (exe, opt)=>apiExit(await tryFnAsync(exe), opt);\r\n\r\nexport const apiResolve = (exe, opt)=>{\r\n start(opt);\r\n\r\n opt = opt.trait(opt) || opt;\r\n\r\n if (opt.isAsync) { return apiAsync(exe, opt); }\r\n\r\n const resp = tryFn(exe);\r\n if (!isProm(resp)) { return apiExit(resp, opt); }\n return resp.then((resp)=>apiExit(resp, opt));\r\n}\n", "import { isFn } from \"./tool\"\r\n\r\n\r\n\r\n\r\nexport const createTrait = (trait)=>{\r\n if (!trait) { return opt=>opt; }\r\n if (isFn(trait)) { return trait; }\r\n throw new Error(\"config.trait should be a function\");\r\n}\r\n\r\nexport const configTrait = (config)=>{\r\n config.trait = createTrait(config.trait);\r\n}", "import { ApiError } from \"../arc/class/ApiError\";\r\nimport { Api } from \"./class/Api\";\r\n\r\nexport const createApi = Api.create;\r\nexport default createApi;\r\nexport {\r\n Api,\r\n ApiError\r\n}", "import info from \"@randajan/simple-lib/info\";\nimport { solid } from \"@randajan/props\";\nimport { isFn, mrgStr } from \"../../arc/tool\";\nimport { ApiError } from \"../../arc/class/ApiError\";\nimport { buildUrl } from \"../../arc/url\";\nimport { diffVersion, end, start } from \"../../arc/main\";\nimport { attachBodyDecoder, encodeBody } from \"../../arc/types\";\n\nconst prepareOpt = (url, opt, method)=>{\n start(opt);\n\n opt.url = buildUrl( mrgStr(opt.url, url), opt.query);\n\n if (method) { opt.method = method; }\n\n if (opt.body) { encodeBody(opt); }\n\n attachBodyDecoder(opt);\n\n const hasTimeout = opt.timeout > 0;\n if (opt.abortable || hasTimeout) {\n opt.abortController = new AbortController();\n opt.signal = opt.abortController.signal;\n }\n\n if (hasTimeout) {\n opt.timeoutId = setTimeout(() => opt.abortController?.abort(ApiError.create(1, \"Timeout\", 408)), opt.timeout);\n }\n\n if (isFn(opt.trait)) { opt = opt.trait(opt) || opt; }\n\n return opt;\n}\n\nconst localReject = (opt, error)=>{\n const { httpStatusCode } = error;\n\n error.rise(0).rise(opt.code || 0);\n\n return end({ isOk:false, isRemote:false, isApiKit:false, statusCode: httpStatusCode, error }, opt);\n}\n\nconst statusError = ({ status, statusText })=>ApiError.create(4, statusText || status, status);\nconst unreadableError = resp=>resp.ok ? ApiError.create(3, \"Unreadable\", 415) : statusError(resp);\nconst foreignError = resp=>({ isApiKit:false, error:statusError(resp) });\n\nconst readText = async resp=>{\n try { return await resp.text(); }\n catch { throw unreadableError(resp); }\n}\n\nconst decodeText = (text, opt, resp)=>{\n try { return opt.decodeBody(text); }\n catch { throw unreadableError(resp); }\n}\n\nconst resolveEmpty = resp=>{\n if (!resp.ok && resp.status !== 304) { return foreignError(resp); }\n return { result:null, isApiKit:false };\n}\n\nconst resolveApiKit = (raw, opt)=>{\n const apv = raw[info.name];\n const diff = diffVersion(apv);\n const msg = `Detected @randajan/api-kit ${diff} version difference at '${opt.url}'. Server '${apv}' vs. client '${info.version}'`;\n\n if (diff === \"major\") { console.error(msg); }\n if (diff === \"minor\") { console.warn(msg); }\n\n raw.isApiKit = true;\n return raw;\n}\n\nconst resolveForeign = (raw, opt, resp)=>{\n if (!resp.ok) { return foreignError(resp); }\n\n const body = { isApiKit:false };\n\n try { body.result = opt.parseBody(raw); }\n catch(err) { body.error = err.message || err; }\n\n return body;\n}\n\nconst resolveDecoded = (raw, opt, resp)=>{\n if (raw?.[info.name]) { return resolveApiKit(raw, opt); }\n return resolveForeign(raw, opt, resp);\n}\n\nconst normalizeError = (body, opt, resp)=>{\n if (!body.error || ApiError.is(body.error)) { return; }\n\n const { code, message, stack, httpStatusCode } = body.error;\n body.error = ApiError.create(\n code || mrgStr(opt.code || 0, \"1.0\", \".\"),\n message || body.error,\n httpStatusCode ?? body.statusCode ?? resp.status,\n stack\n );\n}\n\nconst remoteResolve = (body, opt, resp)=>{\n normalizeError(body, opt, resp);\n\n body.isOk = !body.error;\n body.isRemote = true;\n body.isApiKit = !!body.isApiKit;\n body.statusCode = body.statusCode ?? body.error?.httpStatusCode ?? resp.status;\n\n if (opt.parseHeaders) {\n body.headers = Object.freeze(Object.fromEntries(resp.headers.entries()));\n }\n\n return end(body, opt);\n}\n\nconst remoteReject = (opt, resp, error)=>remoteResolve({ isApiKit:false, error }, opt, resp);\n\nconst fetchExe = async (_fetch, opt) => {\n\n let resp, body;\n\n try { resp = await _fetch(opt.url, opt); }\n catch (err) { return localReject(opt, ApiError.is(err) ? err : ApiError.to(0, \"Failed\", 503)); }\n\n try {\n const text = await readText(resp);\n body = text ? resolveDecoded(decodeText(text, opt, resp), opt, resp) : resolveEmpty(resp);\n } catch (err) {\n return remoteReject(opt, resp, ApiError.is(err) ? err : ApiError.to(0, err, 500));\n }\n\n return remoteResolve(body, opt, resp);\n};\n\nexport const fetchResolve = (_fetch, url, opt, method)=>{\n const prom = fetchExe(_fetch, prepareOpt(url, opt, method));\n\n if (opt.timeoutId) { prom.finally(_=>clearTimeout(opt.timeoutId)); }\n if (!opt.abortable) { return prom; }\n\n return solid(prom, \"abort\", _=>opt.abortController?.abort(ApiError.create(2, \"Aborted\", 499)));\n}\n", "let _regexp = /^https?:\\/\\//i;\r\nexport const buildUrl = (inputUrl, params)=>{\r\n if (!params) { return inputUrl; }\r\n\r\n const hasHost = _regexp.test(inputUrl);\r\n const url = new URL(inputUrl, hasHost ? undefined : \"http://thisisonlyplaceholder.xyz\");\r\n url.hash = \"\";\r\n\r\n for (const [key, value] of Object.entries(params)) {\r\n if (value != null) { url.searchParams.append(key, value); }\r\n };\r\n\r\n return hasHost ? url.toString() : url.pathname + url.search;\r\n}", "\r\n\r\nexport const mime = \"application/json\";\r\nexport const decode = body=>JSON.parse(body);\r\nexport const encode = body=>JSON.stringify(body);", "\r\n\r\nexport const mime = 'application/x-www-form-urlencoded';\r\nexport const decode = body=>Object.fromEntries(new URLSearchParams(body));\r\nexport const encode = body=>new URLSearchParams(body);\r\n\r\n", "import * as json from \"./kinds/json\";\r\nimport * as form from \"./kinds/form\";\r\n\r\n\r\nconst types = { json, form };\r\nconst getType = (typeName)=>{\r\n if (!typeName) { return json; }\r\n const type = types[typeName];\r\n if (type) { return type; }\r\n throw new Error(`Unknow config.type '${typeName}'. Must be one of: '${[...Object.keys(types)].join(\"', '\")}'`);\r\n}\r\n\r\n\r\nexport const encodeBody = (opt)=>{\r\n const type = getType(opt.requestType || opt.type); \r\n \r\n opt.headers[\"Content-Type\"] = type.mime;\r\n opt.body = type.encode(opt.body);\r\n}\r\n\r\nexport const attachBodyDecoder = (opt)=>{\r\n const type = getType(opt.responseType || opt.type);\r\n\r\n opt.headers['Accept'] = type.mime;\r\n opt.decodeBody = type.decode;\r\n}", "import { fetchResolve } from \"./static\";\r\nimport { Functionable } from \"../../arc/class/Functionable\";\r\nimport { solid } from \"@randajan/props\";\r\nimport { mrgOpt } from \"../tool\";\r\nimport { configTrait, createTrait } from \"../../arc/opt\";\r\n\r\nexport class Fetch extends Functionable {\r\n\r\n static create(config={}) { return new Fetch(config) }\r\n\r\n constructor(config = {}) {\r\n \r\n const _fetch = config.fetch || globalThis.fetch;\r\n\r\n if (!_fetch) { throw new Error(\"Missing fetch function. Please provide it inconfig\"); }\r\n\r\n configTrait(config);\r\n config.parseBody = createTrait(config.parseBody);\r\n\r\n delete config.fetch;\r\n\r\n super((url, opt, method) =>fetchResolve(_fetch, url, mrgOpt(config, opt), method));\r\n\r\n Object.freeze(config);\r\n solid(this, \"config\", config);\r\n }\r\n\r\n extend(config) { return new Fetch(mrgOpt(this.config, config)); }\r\n\r\n get(url, opt) { return this(url, opt, \"GET\"); }\r\n post(url, opt) { return this(url, opt, \"POST\"); }\r\n put(url, opt) { return this(url, opt, \"PUT\"); }\r\n delete(url, opt) { return this(url, opt, \"DELETE\"); }\r\n patch(url, opt) { return this(url, opt, \"PATCH\"); }\r\n head(url, opt) { return this(url, opt, \"HEAD\"); }\r\n options(url, opt) { return this(url, opt, \"OPTIONS\"); }\r\n}", "import { mrgObj } from \"../arc/tool\";\n\nconst mrgQuery = opt=>mrgObj(opt?.params, opt?.query);\n\nexport const mrgOpt = (a, b)=>{\n const opt = mrgObj(a, b);\n\n opt.body = mrgObj(a?.body, b?.body);\n opt.query = mrgObj(mrgQuery(a), mrgQuery(b));\n opt.headers = mrgObj(a?.headers, b?.headers, {});\n\n return opt;\n}\n", "import { ApiError } from \"../arc/class/ApiError\";\nimport { Fetch } from \"./class/Fetch\";\n\nexport const createFetch = Fetch.create;\nexport default createFetch;\n\nexport {\n Fetch,\n ApiError\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_props", "import_props", "resp", "import_props", "decode", "encode", "mime", "mime", "decode", "encode", "import_props"]
|
|
7
7
|
}
|
|
@@ -27,7 +27,7 @@ __export(server_exports, {
|
|
|
27
27
|
module.exports = __toCommonJS(server_exports);
|
|
28
28
|
|
|
29
29
|
// <define:__slib_info>
|
|
30
|
-
var define_slib_info_default = { isBuild: true, name: "@randajan/api-kit", description: "A lightweight wrapper around fetch that always returns a structured JSON response, handling errors and network issues gracefully", version: "1.
|
|
30
|
+
var define_slib_info_default = { isBuild: true, name: "@randajan/api-kit", description: "A lightweight wrapper around fetch that always returns a structured JSON response, handling errors and network issues gracefully", version: "1.2.0", author: { name: "Jan Randa", email: "jnranda@gmail.com", url: "https://www.linkedin.com/in/randajan/" }, env: "development", mode: "web", port: 3e3, dir: { root: "C:\\dev\\lib\\api-kit", dist: "dist" } };
|
|
31
31
|
|
|
32
32
|
// src/arc/class/ApiError.js
|
|
33
33
|
var import_props = require("@randajan/props");
|
|
@@ -58,32 +58,44 @@ var isErr = (any) => any instanceof Error;
|
|
|
58
58
|
|
|
59
59
|
// src/arc/class/ApiError.js
|
|
60
60
|
var ApiError = class _ApiError extends Error {
|
|
61
|
-
static create(code, message) {
|
|
62
|
-
return new _ApiError(code, message);
|
|
61
|
+
static create(code, message, httpStatusCode = 400, remoteStack = void 0) {
|
|
62
|
+
return new _ApiError(code, message, httpStatusCode, remoteStack);
|
|
63
63
|
}
|
|
64
64
|
static is(any) {
|
|
65
65
|
return any instanceof _ApiError;
|
|
66
66
|
}
|
|
67
|
-
static to(code, any) {
|
|
67
|
+
static to(code, any, httpStatusCode = 500) {
|
|
68
68
|
if (_ApiError.is(any)) {
|
|
69
69
|
return any;
|
|
70
70
|
}
|
|
71
71
|
const msg = toStr(any?.message || any) || "Unknown";
|
|
72
|
-
const apierr = _ApiError.create(code, msg);
|
|
73
|
-
return (0, import_props.solid)(apierr, "stack", any
|
|
72
|
+
const apierr = _ApiError.create(code, msg, httpStatusCode);
|
|
73
|
+
return (0, import_props.solid)(apierr, "stack", any?.stack);
|
|
74
74
|
}
|
|
75
|
-
constructor(code, message) {
|
|
75
|
+
constructor(code, message, httpStatusCode = 400, remoteStack = void 0) {
|
|
76
76
|
super(message);
|
|
77
77
|
(0, import_props.safe)(this, {}, "code", (t, f) => mrgStr(t, f, "."));
|
|
78
|
+
(0, import_props.solid)(this, "httpStatusCode", httpStatusCode ?? 400, true);
|
|
79
|
+
(0, import_props.solid)(this, "remoteStack", remoteStack);
|
|
78
80
|
this.rise(code);
|
|
79
81
|
}
|
|
80
82
|
rise(code = 0) {
|
|
81
83
|
this.code = code || 0;
|
|
82
84
|
return this;
|
|
83
85
|
}
|
|
86
|
+
exposeStack(exposeStack = true) {
|
|
87
|
+
(0, import_props.solid)(this, "_exposeStack", !!exposeStack, false, true);
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
84
90
|
toJSON() {
|
|
85
|
-
const { message } = this;
|
|
86
|
-
|
|
91
|
+
const { message, stack, _exposeStack } = this;
|
|
92
|
+
const body = { message, ...this };
|
|
93
|
+
if (_exposeStack) {
|
|
94
|
+
body.stack = stack;
|
|
95
|
+
} else {
|
|
96
|
+
delete body.stack;
|
|
97
|
+
}
|
|
98
|
+
return body;
|
|
87
99
|
}
|
|
88
100
|
toString() {
|
|
89
101
|
const { message, code } = this;
|
|
@@ -149,7 +161,9 @@ var endTime = (body, startAt) => {
|
|
|
149
161
|
body.time = (0, import_props2.solids)({}, time);
|
|
150
162
|
};
|
|
151
163
|
var end = (body, opt) => {
|
|
152
|
-
|
|
164
|
+
const hasError = !!body.error;
|
|
165
|
+
endTime(body, opt.startAt);
|
|
166
|
+
if (!hasError) {
|
|
153
167
|
if (isFn(opt.onOk)) {
|
|
154
168
|
opt.onOk(body, opt);
|
|
155
169
|
}
|
|
@@ -157,11 +171,10 @@ var end = (body, opt) => {
|
|
|
157
171
|
if (isFn(opt.onError)) {
|
|
158
172
|
opt.onError(body, opt);
|
|
159
173
|
}
|
|
160
|
-
if (opt.throwError) {
|
|
174
|
+
if (opt.throwError || opt.resultOnly) {
|
|
161
175
|
throw body.error;
|
|
162
176
|
}
|
|
163
177
|
}
|
|
164
|
-
endTime(body, opt.startAt);
|
|
165
178
|
return opt.resultOnly ? body.result : Object.freeze(body);
|
|
166
179
|
};
|
|
167
180
|
|
|
@@ -192,8 +205,12 @@ var tryFn = (any) => {
|
|
|
192
205
|
|
|
193
206
|
// src/server/class/static.js
|
|
194
207
|
var apiExit = (resp, opt) => {
|
|
208
|
+
const { exposeStack } = opt;
|
|
209
|
+
resp.statusCode = 200;
|
|
195
210
|
if (resp.error) {
|
|
196
|
-
resp.error = ApiError.to(0, resp.error).rise(1).rise(opt.code);
|
|
211
|
+
resp.error = ApiError.to(0, resp.error, 500).rise(1).rise(opt.code);
|
|
212
|
+
resp.statusCode = resp.error.httpStatusCode;
|
|
213
|
+
resp.error.exposeStack(!!exposeStack);
|
|
197
214
|
}
|
|
198
215
|
resp[info_default.name] = info_default.version;
|
|
199
216
|
return end(resp, opt);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/server/index.js", "<define:__slib_info>", "../../../src/arc/class/ApiError.js", "../../../src/arc/tool.js", "../../../src/server/class/Api.js", "../../../src/arc/class/Functionable.js", "../../../node_modules/@randajan/simple-lib/src/info/index.js", "../../../src/arc/main.js", "../../../src/server/tool.js", "../../../src/server/class/static.js", "../../../src/arc/opt.js"],
|
|
4
|
-
"sourcesContent": ["import { ApiError } from \"../arc/class/ApiError\";\r\nimport { Api } from \"./class/Api\";\r\n\r\nexport const createApi = Api.create;\r\nexport default createApi;\r\nexport {\r\n Api,\r\n ApiError\r\n}", "", "import { safe, solid } from \"@randajan/props\";\r\nimport { mrgStr, toStr } from \"../tool\";\r\n\r\n\r\n\r\nexport class ApiError extends Error {\r\n\r\n static create(code, message) {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,iCAAC,SAAU,MAAK,MAAO,qBAAoB,aAAc,oIAAmI,SAAU,SAAQ,QAAS,EAAC,MAAO,aAAY,OAAQ,qBAAoB,KAAM,wCAAuC,GAAE,KAAM,eAAc,MAAO,OAAM,MAAO,KAAK,KAAM,EAAC,MAAO,yBAAwB,MAAO,OAAM,EAAC;;;ACAvZ,mBAA4B;;;ACErB,IAAM,SAAS,CAAC,GAAG,GAAG,QAAM;AAC/B,MAAI,CAAC,KAAK,CAAC,GAAG;AAAE,WAAO;AAAA,EAAK;AAC5B,MAAI,CAAC,GAAG;AAAE,WAAO,EAAC,GAAG,EAAC;AAAA,EAAG;AACzB,MAAI,CAAC,GAAG;AAAE,WAAO,EAAC,GAAG,EAAC;AAAA,EAAG;AACzB,SAAO,EAAC,GAAG,GAAG,GAAG,EAAC;AACtB;AAEO,IAAM,QAAQ,OAAG,KAAK,OAAO,KAAK,OAAO,CAAC;AAC1C,IAAM,SAAS,CAAC,GAAG,GAAG,MAAI,OAAK;AAClC,MAAI,MAAM,CAAC;AAAG,MAAI,MAAM,CAAC;AACzB,SAAQ,KAAK,IAAK,IAAE,MAAI,IAAI,IAAE;AAClC;AAEO,IAAM,OAAO,SAAK,OAAO,QAAQ;AACjC,IAAM,OAAO,SAAK,KAAK,GAAG,IAAI,IAAI,IAAI;AACtC,IAAM,SAAS,SAAK,eAAe;AACnC,IAAM,QAAQ,SAAK,eAAe;;;ADblC,IAAM,WAAN,MAAM,kBAAiB,MAAM;AAAA,EAEhC,OAAO,OAAO,MAAM,SAAS;
|
|
4
|
+
"sourcesContent": ["import { ApiError } from \"../arc/class/ApiError\";\r\nimport { Api } from \"./class/Api\";\r\n\r\nexport const createApi = Api.create;\r\nexport default createApi;\r\nexport {\r\n Api,\r\n ApiError\r\n}", "", "import { safe, solid } from \"@randajan/props\";\r\nimport { mrgStr, toStr } from \"../tool\";\r\n\r\n\r\n\r\nexport class ApiError extends Error {\r\n\r\n static create(code, message, httpStatusCode=400, remoteStack=undefined) {\r\n return new ApiError(code, message, httpStatusCode, remoteStack);\r\n }\r\n\r\n static is(any) { return any instanceof ApiError; }\r\n\r\n static to(code, any, httpStatusCode=500) {\r\n if (ApiError.is(any)) { return any; }\r\n \r\n const msg = toStr(any?.message || any) || \"Unknown\";\r\n const apierr = ApiError.create(code, msg, httpStatusCode);\r\n return solid(apierr, \"stack\", any?.stack);\r\n }\r\n\r\n constructor(code, message, httpStatusCode=400, remoteStack=undefined) {\r\n super(message);\r\n\r\n safe(this, {}, \"code\", (t, f)=>mrgStr(t, f, \".\"));\r\n solid(this, \"httpStatusCode\", httpStatusCode ?? 400, true);\r\n solid(this, \"remoteStack\", remoteStack);\r\n\r\n this.rise(code);\r\n }\r\n\r\n rise(code=0) {\r\n this.code = (code || 0);\r\n return this;\r\n }\r\n\r\n exposeStack(exposeStack=true) {\r\n solid(this, \"_exposeStack\", !!exposeStack, false, true);\r\n return this;\r\n }\r\n\r\n toJSON() {\r\n const { message, stack, _exposeStack } = this;\r\n const body = {message, ...this};\r\n if (_exposeStack) { body.stack = stack; }\r\n else { delete body.stack; }\r\n return body;\r\n }\r\n\r\n toString() {\r\n const { message, code } = this;\r\n return message + (code == null ? \"\" : ` (${code})`);\r\n }\r\n\r\n}\r\n", "\r\n\r\nexport const mrgObj = (a, b, def)=>{\r\n if (!a && !b) { return def; }\r\n if (!a) { return {...b}; }\r\n if (!b) { return {...a}; }\r\n return {...a, ...b};\r\n}\r\n\r\nexport const toStr = s=>s == null ? \"\" : String(s);\r\nexport const mrgStr = (a, b, sep=\"\")=>{\r\n a = toStr(a); b = toStr(b);\r\n return (a && b) ? a+sep+b : a+b;\r\n};\r\n\r\nexport const isFn = any=>typeof any === \"function\";\r\nexport const doFn = any=>isFn(any) ? any() : any;\r\nexport const isProm = any=>any instanceof Promise;\r\nexport const isErr = any=>any instanceof Error;\r\n", "import { solid } from \"@randajan/props\";\r\nimport { Functionable } from \"../../arc/class/Functionable\";\r\nimport { apiResolve } from \"./static\";\r\nimport { mrgObj } from \"../../arc/tool\";\r\nimport { configTrait } from \"../../arc/opt\";\r\n\r\nexport class Api extends Functionable {\r\n\r\n static create(config={}) { return new Api(config); }\r\n\r\n constructor(config={}) {\r\n\r\n configTrait(config);\r\n \r\n super((exe, opt)=>apiResolve(exe, mrgObj(config, opt)));\r\n\r\n Object.freeze(config);\r\n solid(this, \"config\", config);\r\n }\r\n\r\n code(code, exe, opt={}) {\r\n opt.code = code;\r\n return this(exe, opt);\r\n }\r\n\r\n extend(config) { return new Api(mrgObj(this.config, config)); }\r\n}", "\r\n\r\n\r\nexport class Functionable extends Function {\r\n constructor(self) {\r\n super();\r\n return Object.setPrototypeOf(self, this);\r\n }\r\n}", "const enumerable = true;\r\nconst lockObject = o=>{\r\n if (typeof o !== \"object\") { return o; }\r\n\r\n const r = {};\r\n for (const i in o) {\r\n const descriptor = { enumerable };\r\n let val = o[i];\r\n if (val instanceof Array) { descriptor.get = _=>[...val]; }\r\n else { descriptor.value = lockObject(val); }\r\n Object.defineProperty(r, i, descriptor);\r\n }\r\n\r\n return r;\r\n}\r\n\r\nexport const info = lockObject(__slib_info);\r\nexport default info;", "import { solids } from \"@randajan/props\";\r\nimport { isFn, toStr } from \"./tool\";\r\nimport { info } from \"@randajan/simple-lib/info\";\r\n\r\n\r\nexport const start = (opt)=>{\r\n if (opt.timestamp) { return opt.startAt = Date.now(); }\r\n}\r\n\r\nconst endTime = (body, startAt)=>{\r\n if (!startAt) { return; }\r\n\r\n const endAt = Date.now();\r\n const time = {\r\n startAt,\r\n endAt,\r\n run:endAt-startAt\r\n }\r\n\r\n if (body.time) {\r\n time.srvRun = body.time.run;\r\n time.netIn = body.time.startAt - startAt;\r\n time.netOut = endAt - body.time.endAt;\r\n }\r\n\r\n body.time = solids({}, time);\r\n}\r\n\r\nexport const end = (body, opt)=>{\r\n const hasError = !!body.error;\r\n\r\n endTime(body, opt.startAt);\r\n\r\n if (!hasError){\r\n if (isFn(opt.onOk)) { opt.onOk(body, opt); }\r\n } else {\r\n if (isFn(opt.onError)) { opt.onError(body, opt); }\r\n if (opt.throwError || opt.resultOnly) { throw body.error; }\r\n }\r\n\r\n return opt.resultOnly ? body.result : Object.freeze(body);\r\n}\r\n\r\nexport const diffVersion = (version)=>{\r\n const v1 = toStr(info.version);\r\n const v2 = toStr(version);\r\n\r\n if (v1 === v2) { return }\r\n \r\n const f1 = v1.split(\".\");\r\n const f2 = v2.split(\".\");\r\n\r\n if (f1[0] !== f2[0]) { return \"major\"; }\r\n if (f1[1] !== f2[1]) { return \"minor\"; }\r\n if (f1[2] !== f2[2]) { return \"patch\"; }\r\n}\r\n", "import { doFn, isErr, isProm } from \"../arc/tool\";\r\n\r\nconst wrapResult = r=>({[isErr(r) ? \"error\" : \"result\"]:r});\r\nconst wrapError = error=>({error});\r\n\r\nexport const tryFnSync = any=>{\r\n try { return wrapResult(doFn(any)); }\r\n catch(error) { return {error}; }\r\n}\r\n\r\nexport const tryFnAsync = async any=>{\r\n try { return wrapResult(await doFn(any)); }\r\n catch(error) { return {error}; }\r\n}\r\n\r\nexport const tryFn = any=>{\r\n const r = tryFnSync(any);\r\n if (!isProm(r.result)) { return r; }\r\n return r.result.then(wrapResult).catch(wrapError);\r\n}", "import info from \"@randajan/simple-lib/info\";\r\nimport { ApiError } from \"../../arc/class/ApiError\"\r\nimport { start, end } from \"../../arc/main\";\r\nimport { isFn, isProm } from \"../../arc/tool\";\r\nimport { tryFn, tryFnAsync } from \"../tool\";\r\n\n\r\nconst apiExit = (resp, opt)=>{\r\n const { exposeStack } = opt;\r\n\r\n resp.statusCode = 200;\r\n\r\n if (resp.error) {\r\n resp.error = ApiError.to(0, resp.error, 500).rise(1).rise(opt.code);\r\n resp.statusCode = resp.error.httpStatusCode;\r\n resp.error.exposeStack(!!exposeStack);\r\n }\n\n resp[info.name] = info.version;\r\n\r\n return end(resp, opt);\r\n}\r\n\r\nconst apiAsync = async (exe, opt)=>apiExit(await tryFnAsync(exe), opt);\r\n\r\nexport const apiResolve = (exe, opt)=>{\r\n start(opt);\r\n\r\n opt = opt.trait(opt) || opt;\r\n\r\n if (opt.isAsync) { return apiAsync(exe, opt); }\r\n\r\n const resp = tryFn(exe);\r\n if (!isProm(resp)) { return apiExit(resp, opt); }\n return resp.then((resp)=>apiExit(resp, opt));\r\n}\n", "import { isFn } from \"./tool\"\r\n\r\n\r\n\r\n\r\nexport const createTrait = (trait)=>{\r\n if (!trait) { return opt=>opt; }\r\n if (isFn(trait)) { return trait; }\r\n throw new Error(\"config.trait should be a function\");\r\n}\r\n\r\nexport const configTrait = (config)=>{\r\n config.trait = createTrait(config.trait);\r\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_props", "import_props", "resp"]
|
|
7
7
|
}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
isProm,
|
|
10
10
|
mrgObj,
|
|
11
11
|
start
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-7K2N7A5V.js";
|
|
13
13
|
|
|
14
14
|
// src/server/class/Api.js
|
|
15
15
|
import { solid } from "@randajan/props";
|
|
@@ -41,8 +41,12 @@ var tryFn = (any) => {
|
|
|
41
41
|
|
|
42
42
|
// src/server/class/static.js
|
|
43
43
|
var apiExit = (resp, opt) => {
|
|
44
|
+
const { exposeStack } = opt;
|
|
45
|
+
resp.statusCode = 200;
|
|
44
46
|
if (resp.error) {
|
|
45
|
-
resp.error = ApiError.to(0, resp.error).rise(1).rise(opt.code);
|
|
47
|
+
resp.error = ApiError.to(0, resp.error, 500).rise(1).rise(opt.code);
|
|
48
|
+
resp.statusCode = resp.error.httpStatusCode;
|
|
49
|
+
resp.error.exposeStack(!!exposeStack);
|
|
46
50
|
}
|
|
47
51
|
resp[info_default.name] = info_default.version;
|
|
48
52
|
return end(resp, opt);
|
|
@@ -90,4 +94,4 @@ export {
|
|
|
90
94
|
createApi,
|
|
91
95
|
server_default
|
|
92
96
|
};
|
|
93
|
-
//# sourceMappingURL=chunk-
|
|
97
|
+
//# sourceMappingURL=chunk-72RXZFQZ.js.map
|