@defjs/core 0.0.0-test-005 → 0.2.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/index.d.ts +210 -292
- package/index.js +218 -188
- package/index.min.js +1 -587
- package/package.json +4 -1
package/index.min.js
CHANGED
|
@@ -1,587 +1 @@
|
|
|
1
|
-
const G = new Error("ERR_ABORTED"), W = new Error("ERR_TIMEOUT"), me = new Error("ERR_NETWORK"), X = new Error("ERR_NOT_FOUND_HANDLER"), z = new Error("ERR_OBSERVE"), P = new Error("ERR_NOT_SET_ALIAS"), Y = new Error("ERR_UNSUPPORTED_FIELD_TYPE"), Z = new Error("ERR_INVALID_CLIENT"), q = new Error("ERR_NOT_FOUND_GLOBAL_CLIENT"), B = new Error("ERR_INVALID_HTTP_CONTEXT_TOKEN"), Ee = new Error("ERR_UNKNOWN");
|
|
2
|
-
class T extends Error {
|
|
3
|
-
status;
|
|
4
|
-
statusText;
|
|
5
|
-
url;
|
|
6
|
-
headers;
|
|
7
|
-
body;
|
|
8
|
-
constructor(t) {
|
|
9
|
-
const r = t?.status ?? 0, n = t?.statusText ?? "", c = r >= 200 && r < 300, i = t?.headers ?? new Headers(), h = t?.url ?? "", b = t?.body ?? null;
|
|
10
|
-
let o;
|
|
11
|
-
c ? o = `Http failure during parsing for ${h}` : (o = `Http failure response for ${h || "(unknown url)"}: ${r}`, n && (o += ` - ${n}`)), super(o, { cause: t?.error }), super.name = "HttpErrorResponse", this.statusText = n, this.url = h, this.headers = i, this.status = r, this.body = b;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
function ee(e) {
|
|
15
|
-
const t = e.get("Content-Length");
|
|
16
|
-
if (!t)
|
|
17
|
-
return 0;
|
|
18
|
-
const r = Number(t);
|
|
19
|
-
return isNaN(r) ? 0 : r;
|
|
20
|
-
}
|
|
21
|
-
function te(e) {
|
|
22
|
-
return e.get("Content-Type") || "";
|
|
23
|
-
}
|
|
24
|
-
function re(e) {
|
|
25
|
-
const { request: t, content: r, contentType: n } = e;
|
|
26
|
-
switch (t.responseType) {
|
|
27
|
-
case "json": {
|
|
28
|
-
const i = new TextDecoder().decode(r);
|
|
29
|
-
return i === "" ? null : JSON.parse(i);
|
|
30
|
-
}
|
|
31
|
-
case "text":
|
|
32
|
-
return new TextDecoder().decode(r);
|
|
33
|
-
case "blob":
|
|
34
|
-
return new Blob([r], { type: n });
|
|
35
|
-
case "arraybuffer":
|
|
36
|
-
return r.buffer;
|
|
37
|
-
default:
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
function ne(e, t) {
|
|
42
|
-
const r = new Uint8Array(t);
|
|
43
|
-
let n = 0;
|
|
44
|
-
for (const c of e)
|
|
45
|
-
r.set(c, n), n += c.length;
|
|
46
|
-
return r;
|
|
47
|
-
}
|
|
48
|
-
const $ = Symbol("HttpContextToken");
|
|
49
|
-
function _e(e) {
|
|
50
|
-
return Object.defineProperty(e, $, { value: e }), e;
|
|
51
|
-
}
|
|
52
|
-
function H(e) {
|
|
53
|
-
return typeof e == "function" && $ in e;
|
|
54
|
-
}
|
|
55
|
-
const U = Symbol("HttpContext");
|
|
56
|
-
function oe(e) {
|
|
57
|
-
return typeof e == "object" && e !== null && U in e;
|
|
58
|
-
}
|
|
59
|
-
function se(e) {
|
|
60
|
-
const t = /* @__PURE__ */ new Map();
|
|
61
|
-
switch (!0) {
|
|
62
|
-
case Array.isArray(e): {
|
|
63
|
-
for (const [r, n] of e)
|
|
64
|
-
H(r) && t.set(r, n);
|
|
65
|
-
break;
|
|
66
|
-
}
|
|
67
|
-
case oe(e): {
|
|
68
|
-
for (const [r, n] of e[U])
|
|
69
|
-
t.set(r, n);
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return {
|
|
74
|
-
set(r, n) {
|
|
75
|
-
if (!H(r))
|
|
76
|
-
throw B;
|
|
77
|
-
return t.set(r, n), this;
|
|
78
|
-
},
|
|
79
|
-
get(r) {
|
|
80
|
-
if (!H(r))
|
|
81
|
-
throw B;
|
|
82
|
-
return t.has(r) || t.set(r, r()), t.get(r);
|
|
83
|
-
},
|
|
84
|
-
del(r) {
|
|
85
|
-
return t.delete(r), this;
|
|
86
|
-
},
|
|
87
|
-
has(r) {
|
|
88
|
-
return t.has(r);
|
|
89
|
-
},
|
|
90
|
-
keys() {
|
|
91
|
-
return t.keys();
|
|
92
|
-
},
|
|
93
|
-
get length() {
|
|
94
|
-
return Array.from(t.keys()).length;
|
|
95
|
-
},
|
|
96
|
-
[U]: t
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
const x = Symbol("field");
|
|
100
|
-
var u = /* @__PURE__ */ ((e) => (e[e.Json = 0] = "Json", e[e.Query = 1] = "Query", e[e.Param = 2] = "Param", e[e.Header = 3] = "Header", e[e.Form = 4] = "Form", e[e.Body = 5] = "Body", e[e.UrlForm = 6] = "UrlForm", e))(u || {});
|
|
101
|
-
function Re(e) {
|
|
102
|
-
const t = {
|
|
103
|
-
// todo
|
|
104
|
-
required: typeof e < "u",
|
|
105
|
-
alias: /* @__PURE__ */ new Map(),
|
|
106
|
-
validators: [],
|
|
107
|
-
asyncValidator: []
|
|
108
|
-
}, r = () => e;
|
|
109
|
-
return Object.defineProperty(r, x, {
|
|
110
|
-
value: t
|
|
111
|
-
}), r.withJson = (n) => (t.alias.set(0, n), r), r.withForm = (n) => (t.alias.set(4, n), r), r.withQuery = (n) => (t.alias.set(1, n), r), r.withParam = (n) => (t.alias.set(2, n), r), r.withHeader = (n) => (t.alias.set(3, n), r), r.withUrlForm = (n) => (t.alias.set(6, n), r), r.withBody = () => (t.alias.set(5, void 0), r), r.withValidators = (...n) => (t.validators = n, r), r.withAsyncValidators = (...n) => (t.asyncValidator = n, r), r;
|
|
112
|
-
}
|
|
113
|
-
function j(e) {
|
|
114
|
-
return e[x];
|
|
115
|
-
}
|
|
116
|
-
async function V(e, t) {
|
|
117
|
-
await Promise.all(e.map((r) => r(t)));
|
|
118
|
-
}
|
|
119
|
-
function I(e) {
|
|
120
|
-
return !!e && typeof e == "function" && x in e;
|
|
121
|
-
}
|
|
122
|
-
function J(e) {
|
|
123
|
-
return !!e && typeof e == "object" && Object.entries(e).every(([, t]) => I(t));
|
|
124
|
-
}
|
|
125
|
-
let ae;
|
|
126
|
-
const ce = () => ae;
|
|
127
|
-
function ie(e) {
|
|
128
|
-
return e.reduceRight(
|
|
129
|
-
(t, r) => (n, c) => r(n, (i) => t(i, c)),
|
|
130
|
-
(t, r) => r(t)
|
|
131
|
-
);
|
|
132
|
-
}
|
|
133
|
-
function K(e) {
|
|
134
|
-
const t = e?.status ?? 0, r = e?.statusText ?? "", n = e?.url ?? "", c = e?.headers ?? new Headers(), i = e?.body ?? null;
|
|
135
|
-
return {
|
|
136
|
-
status: t,
|
|
137
|
-
statusText: r,
|
|
138
|
-
url: n,
|
|
139
|
-
headers: c,
|
|
140
|
-
body: i
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
function ue(e) {
|
|
144
|
-
switch (!0) {
|
|
145
|
-
case e instanceof FormData:
|
|
146
|
-
case e instanceof Blob:
|
|
147
|
-
case e instanceof ArrayBuffer:
|
|
148
|
-
case e instanceof URLSearchParams:
|
|
149
|
-
case typeof e == "string":
|
|
150
|
-
return e;
|
|
151
|
-
case typeof e == "object":
|
|
152
|
-
case typeof e == "boolean":
|
|
153
|
-
case typeof e == "number":
|
|
154
|
-
case Array.isArray(e):
|
|
155
|
-
return JSON.stringify(e);
|
|
156
|
-
default:
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
function le(e) {
|
|
161
|
-
switch (!0) {
|
|
162
|
-
case e instanceof FormData:
|
|
163
|
-
return "multipart/form-data";
|
|
164
|
-
case e instanceof ArrayBuffer:
|
|
165
|
-
return "application/octet-stream";
|
|
166
|
-
case e instanceof Blob:
|
|
167
|
-
return e.type || "application/octet-stream";
|
|
168
|
-
case e instanceof URLSearchParams:
|
|
169
|
-
return "application/x-www-form-urlencoded;charset=UTF-8";
|
|
170
|
-
case typeof e == "string":
|
|
171
|
-
return "text/plain";
|
|
172
|
-
case (typeof e == "object" && e !== null):
|
|
173
|
-
case typeof e == "number":
|
|
174
|
-
case typeof e == "boolean":
|
|
175
|
-
return "application/json";
|
|
176
|
-
default:
|
|
177
|
-
return null;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
function fe(e) {
|
|
181
|
-
if (I(e))
|
|
182
|
-
return e();
|
|
183
|
-
if (J(e)) {
|
|
184
|
-
const t = {};
|
|
185
|
-
for (const [r, n] of Object.entries(e))
|
|
186
|
-
t[r] = n();
|
|
187
|
-
return t;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
function ge(e, t) {
|
|
191
|
-
let r = !1, n, c = [], i = "json", h, b = "body", o = !1, l = [], f;
|
|
192
|
-
const a = () => {
|
|
193
|
-
let s, p, E;
|
|
194
|
-
return {
|
|
195
|
-
doRequest: async (...m) => {
|
|
196
|
-
let g, w;
|
|
197
|
-
switch (m.length) {
|
|
198
|
-
case 1: {
|
|
199
|
-
r ? g = m[0] : w = m[0];
|
|
200
|
-
break;
|
|
201
|
-
}
|
|
202
|
-
case 2: {
|
|
203
|
-
g = m[0], w = m[1];
|
|
204
|
-
break;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
if (r && !g)
|
|
208
|
-
throw new Error("Because the request has input, the first argument must be the input value");
|
|
209
|
-
if (l.length > 0)
|
|
210
|
-
for (const k of l)
|
|
211
|
-
k(g);
|
|
212
|
-
const y = w?.timeout || 0;
|
|
213
|
-
w?.abort ? E = w.abort : y > 0 && (E = AbortSignal.timeout(y));
|
|
214
|
-
const v = M(w?.client) ? w.client : ye(), S = Q(v), L = {
|
|
215
|
-
host: S?.host,
|
|
216
|
-
method: e,
|
|
217
|
-
endpoint: t,
|
|
218
|
-
queryParams: new URLSearchParams(),
|
|
219
|
-
headers: new Headers(),
|
|
220
|
-
body: void 0,
|
|
221
|
-
withCredentials: o,
|
|
222
|
-
responseType: i,
|
|
223
|
-
context: h || se(),
|
|
224
|
-
observe: b,
|
|
225
|
-
uploadProgress: s,
|
|
226
|
-
downloadProgress: p,
|
|
227
|
-
timeout: y,
|
|
228
|
-
abort: E
|
|
229
|
-
}, D = w?.handler || S?.handler || ce();
|
|
230
|
-
if (!D)
|
|
231
|
-
throw X;
|
|
232
|
-
r && n && await de(L, n, g);
|
|
233
|
-
let C = await ie([...c])(L, D);
|
|
234
|
-
if (typeof f == "function")
|
|
235
|
-
try {
|
|
236
|
-
C = K({
|
|
237
|
-
...C,
|
|
238
|
-
body: f(C)
|
|
239
|
-
});
|
|
240
|
-
} catch (k) {
|
|
241
|
-
throw new T({ error: k });
|
|
242
|
-
}
|
|
243
|
-
switch (L.observe) {
|
|
244
|
-
case "body":
|
|
245
|
-
return C.body;
|
|
246
|
-
case "response":
|
|
247
|
-
return C;
|
|
248
|
-
default:
|
|
249
|
-
throw z;
|
|
250
|
-
}
|
|
251
|
-
},
|
|
252
|
-
getInitValue: () => fe(n),
|
|
253
|
-
setUploadProgress: (m) => {
|
|
254
|
-
s = m;
|
|
255
|
-
},
|
|
256
|
-
setDownloadProgress: (m) => {
|
|
257
|
-
p = m;
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
};
|
|
261
|
-
return a.withField = (s) => (n = s, r = !0, a), a.withInterceptors = (s) => (c = s, a), a.withContext = (s) => (h = s, a), a.withCredentials = (s) => (o = s, a), a.withValidators = (s) => (l = s, a), a.withTransformResponse = (s) => (f = s, a), a.withObserve = (s) => (b = s, a), a.withResponseType = (s) => (i = s, a), a;
|
|
262
|
-
}
|
|
263
|
-
function F(e, t) {
|
|
264
|
-
return e.replace(/:([^\/]+)/g, (r, n) => t.get(n) ?? "undefined");
|
|
265
|
-
}
|
|
266
|
-
async function de(e, t, r) {
|
|
267
|
-
function n(o) {
|
|
268
|
-
return typeof o == "object" && o !== null;
|
|
269
|
-
}
|
|
270
|
-
function c(o) {
|
|
271
|
-
switch (!0) {
|
|
272
|
-
case Array.isArray(o):
|
|
273
|
-
case (typeof o == "object" && o !== null):
|
|
274
|
-
return JSON.stringify(o);
|
|
275
|
-
case (typeof o == "object" && o === null):
|
|
276
|
-
case typeof o == "boolean":
|
|
277
|
-
case typeof o == "number":
|
|
278
|
-
case typeof o == "string":
|
|
279
|
-
return String(o);
|
|
280
|
-
default:
|
|
281
|
-
throw new Error("Unsupported value type");
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
function i(o, l, f) {
|
|
285
|
-
if (Array.isArray(f))
|
|
286
|
-
for (const a of f)
|
|
287
|
-
o.append(l, c(a));
|
|
288
|
-
else
|
|
289
|
-
o.set(l, c(f));
|
|
290
|
-
return o;
|
|
291
|
-
}
|
|
292
|
-
function h(o, l, f) {
|
|
293
|
-
if (Array.isArray(f))
|
|
294
|
-
for (const a of f)
|
|
295
|
-
h(o, l, c(a));
|
|
296
|
-
return o.set(l, c(f)), o;
|
|
297
|
-
}
|
|
298
|
-
function b(o, l) {
|
|
299
|
-
switch (!0) {
|
|
300
|
-
case typeof o > "u":
|
|
301
|
-
return l;
|
|
302
|
-
case (typeof o == "object" && o === null):
|
|
303
|
-
return o;
|
|
304
|
-
default:
|
|
305
|
-
return o;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
if (I(t)) {
|
|
309
|
-
let o, l, f, a;
|
|
310
|
-
const s = b(r, t()), p = j(t);
|
|
311
|
-
await V([...p.validators, ...p.asyncValidator], s);
|
|
312
|
-
for (const [E, d] of p.alias)
|
|
313
|
-
switch (E) {
|
|
314
|
-
case u.Query: {
|
|
315
|
-
if (!d)
|
|
316
|
-
throw P;
|
|
317
|
-
l = i(new URLSearchParams(), d, s);
|
|
318
|
-
break;
|
|
319
|
-
}
|
|
320
|
-
case u.Param: {
|
|
321
|
-
if (!d)
|
|
322
|
-
throw P;
|
|
323
|
-
o = h(/* @__PURE__ */ new Map(), d, s);
|
|
324
|
-
break;
|
|
325
|
-
}
|
|
326
|
-
case u.Header: {
|
|
327
|
-
if (!d)
|
|
328
|
-
throw P;
|
|
329
|
-
f = i(new Headers(), d, s);
|
|
330
|
-
break;
|
|
331
|
-
}
|
|
332
|
-
case u.Form: {
|
|
333
|
-
if (!d)
|
|
334
|
-
throw P;
|
|
335
|
-
a = i(new FormData(), d, s);
|
|
336
|
-
break;
|
|
337
|
-
}
|
|
338
|
-
case u.UrlForm: {
|
|
339
|
-
if (!d)
|
|
340
|
-
throw P;
|
|
341
|
-
a = i(new URLSearchParams(), d, s);
|
|
342
|
-
break;
|
|
343
|
-
}
|
|
344
|
-
case u.Json:
|
|
345
|
-
case u.Body:
|
|
346
|
-
a = s;
|
|
347
|
-
break;
|
|
348
|
-
}
|
|
349
|
-
o && (e.endpoint = F(e.endpoint, o)), e.queryParams = l, e.headers = f, e.body = a;
|
|
350
|
-
return;
|
|
351
|
-
}
|
|
352
|
-
if (J(t) && n(r)) {
|
|
353
|
-
let o = /* @__PURE__ */ new Map(), l = new URLSearchParams(), f = new Headers(), a = new URLSearchParams(), s = new FormData();
|
|
354
|
-
const p = {};
|
|
355
|
-
let E, d;
|
|
356
|
-
for (const [N, _] of Object.entries(t)) {
|
|
357
|
-
const R = j(_);
|
|
358
|
-
for (const [m, g] of R.alias) {
|
|
359
|
-
const w = g || N, y = b(r[N], _());
|
|
360
|
-
switch (await V([...R.validators, ...R.asyncValidator], y), m) {
|
|
361
|
-
case u.Json: {
|
|
362
|
-
Object.defineProperty(p, w, {
|
|
363
|
-
value: y,
|
|
364
|
-
writable: !0,
|
|
365
|
-
enumerable: !0
|
|
366
|
-
}), d = u.Json;
|
|
367
|
-
break;
|
|
368
|
-
}
|
|
369
|
-
case u.Query:
|
|
370
|
-
l = i(l, w, y);
|
|
371
|
-
break;
|
|
372
|
-
case u.Param:
|
|
373
|
-
o = h(o, w, y);
|
|
374
|
-
break;
|
|
375
|
-
case u.Header:
|
|
376
|
-
f = i(f, w, y);
|
|
377
|
-
break;
|
|
378
|
-
case u.Form: {
|
|
379
|
-
s = i(s, w, y), d = u.Form;
|
|
380
|
-
break;
|
|
381
|
-
}
|
|
382
|
-
case u.UrlForm: {
|
|
383
|
-
a = i(a, w, y), d = u.UrlForm;
|
|
384
|
-
break;
|
|
385
|
-
}
|
|
386
|
-
case u.Body: {
|
|
387
|
-
E = y, d = u.Body;
|
|
388
|
-
break;
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
switch (e.endpoint = F(e.endpoint, o), e.queryParams = l, e.headers = f, d) {
|
|
394
|
-
case u.Body:
|
|
395
|
-
e.body = E;
|
|
396
|
-
break;
|
|
397
|
-
case u.Form:
|
|
398
|
-
e.body = s;
|
|
399
|
-
break;
|
|
400
|
-
case u.UrlForm:
|
|
401
|
-
e.body = a;
|
|
402
|
-
break;
|
|
403
|
-
case u.Json:
|
|
404
|
-
e.body = p;
|
|
405
|
-
break;
|
|
406
|
-
}
|
|
407
|
-
return;
|
|
408
|
-
}
|
|
409
|
-
throw Y;
|
|
410
|
-
}
|
|
411
|
-
function he(e) {
|
|
412
|
-
const t = new URL(e.endpoint, e.host);
|
|
413
|
-
e.queryParams && (t.search = e.queryParams.toString());
|
|
414
|
-
const r = e.headers ?? new Headers();
|
|
415
|
-
if (!r.has("Content-Type")) {
|
|
416
|
-
const c = le(e.body);
|
|
417
|
-
c && r.set("Content-Type", c);
|
|
418
|
-
}
|
|
419
|
-
r.has("Accept") || r.set("Accept", "application/json, text/plain, */*");
|
|
420
|
-
const n = e.withCredentials ? "include" : void 0;
|
|
421
|
-
return new Request(t, {
|
|
422
|
-
headers: r,
|
|
423
|
-
method: e.method,
|
|
424
|
-
body: ue(e.body),
|
|
425
|
-
signal: e.abort,
|
|
426
|
-
credentials: n
|
|
427
|
-
});
|
|
428
|
-
}
|
|
429
|
-
async function we(e) {
|
|
430
|
-
const t = e.downloadProgress, r = he(e), n = e.abort;
|
|
431
|
-
let c;
|
|
432
|
-
try {
|
|
433
|
-
c = await globalThis.fetch(r);
|
|
434
|
-
} catch (p) {
|
|
435
|
-
if (n?.aborted && n.reason instanceof Error)
|
|
436
|
-
switch (!0) {
|
|
437
|
-
case n.reason.name === "AbortError":
|
|
438
|
-
throw new T({ error: G });
|
|
439
|
-
case n.reason.name === "TimeoutError":
|
|
440
|
-
throw new T({ error: W });
|
|
441
|
-
}
|
|
442
|
-
throw new T({ error: p });
|
|
443
|
-
}
|
|
444
|
-
const { ok: i, headers: h, status: b, statusText: o, url: l } = c, f = ee(h), a = te(h);
|
|
445
|
-
let s = null;
|
|
446
|
-
if (c.body) {
|
|
447
|
-
const p = [], E = c.body.getReader();
|
|
448
|
-
let d = 0;
|
|
449
|
-
for (; ; ) {
|
|
450
|
-
const { done: _, value: R } = await E.read();
|
|
451
|
-
if (_)
|
|
452
|
-
break;
|
|
453
|
-
p.push(R), d += R.length, t?.({
|
|
454
|
-
lengthComputable: f > 0,
|
|
455
|
-
loaded: d,
|
|
456
|
-
total: f
|
|
457
|
-
});
|
|
458
|
-
}
|
|
459
|
-
const N = ne(p, d);
|
|
460
|
-
try {
|
|
461
|
-
s = re({
|
|
462
|
-
request: e,
|
|
463
|
-
content: N,
|
|
464
|
-
contentType: a
|
|
465
|
-
});
|
|
466
|
-
} catch (_) {
|
|
467
|
-
throw new T({
|
|
468
|
-
error: _,
|
|
469
|
-
status: b,
|
|
470
|
-
statusText: o,
|
|
471
|
-
headers: h,
|
|
472
|
-
url: l
|
|
473
|
-
});
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
if (!i)
|
|
477
|
-
throw new T({
|
|
478
|
-
status: b,
|
|
479
|
-
statusText: o,
|
|
480
|
-
headers: h,
|
|
481
|
-
url: l,
|
|
482
|
-
body: s
|
|
483
|
-
});
|
|
484
|
-
return K({
|
|
485
|
-
url: l,
|
|
486
|
-
status: b,
|
|
487
|
-
statusText: o,
|
|
488
|
-
headers: h,
|
|
489
|
-
body: s
|
|
490
|
-
});
|
|
491
|
-
}
|
|
492
|
-
const A = Symbol("Client");
|
|
493
|
-
let O;
|
|
494
|
-
function M(e) {
|
|
495
|
-
return typeof e == "object" && e !== null && A in e;
|
|
496
|
-
}
|
|
497
|
-
function Q(e) {
|
|
498
|
-
if (!M(e))
|
|
499
|
-
throw Z;
|
|
500
|
-
return e[A];
|
|
501
|
-
}
|
|
502
|
-
function pe(e) {
|
|
503
|
-
const t = {
|
|
504
|
-
host: e.host,
|
|
505
|
-
strict: e.strict ?? !0,
|
|
506
|
-
interceptors: e.interceptors ?? [],
|
|
507
|
-
handler: e.handler || we
|
|
508
|
-
};
|
|
509
|
-
return {
|
|
510
|
-
[A]: t
|
|
511
|
-
};
|
|
512
|
-
}
|
|
513
|
-
function Te(e, t) {
|
|
514
|
-
const n = {
|
|
515
|
-
...Q(e),
|
|
516
|
-
...t
|
|
517
|
-
};
|
|
518
|
-
return {
|
|
519
|
-
[A]: n
|
|
520
|
-
};
|
|
521
|
-
}
|
|
522
|
-
function ye() {
|
|
523
|
-
if (!O)
|
|
524
|
-
throw q;
|
|
525
|
-
return O;
|
|
526
|
-
}
|
|
527
|
-
function Ne(e) {
|
|
528
|
-
O = e;
|
|
529
|
-
}
|
|
530
|
-
function Ce() {
|
|
531
|
-
O = void 0;
|
|
532
|
-
}
|
|
533
|
-
function Pe(e) {
|
|
534
|
-
O = pe(e);
|
|
535
|
-
}
|
|
536
|
-
function Oe(e, t) {
|
|
537
|
-
let r = t?.encode;
|
|
538
|
-
if (!r) {
|
|
539
|
-
const n = globalThis.btoa;
|
|
540
|
-
if (typeof n != "function")
|
|
541
|
-
throw new Error("BasicAuthInterceptor is not supported in this environment");
|
|
542
|
-
r = (c) => n(`${c.username}:${c.password}`);
|
|
543
|
-
}
|
|
544
|
-
return (n, c) => {
|
|
545
|
-
const i = n.headers || new Headers();
|
|
546
|
-
return i.set("Authorization", `Basic ${r(e())}`), n.headers = i, c(n);
|
|
547
|
-
};
|
|
548
|
-
}
|
|
549
|
-
const Ae = (e) => e ? null : new Error("required"), Le = (e) => typeof e != "boolean" || !e ? new Error("requiredTrue") : null, ke = (e) => (t) => typeof t != "string" ? new Error("invalid string") : t.length < e ? new Error(`minLength ${e}`) : null, He = (e) => (t) => typeof t != "string" ? new Error("invalid string") : t.length > e ? new Error(`maxLength ${e}`) : null, Ue = (e) => (t) => typeof t != "number" || isNaN(t) ? new Error("invalid number") : t < e ? new Error(`minLength ${e}`) : null, xe = (e) => (t) => typeof t != "number" || isNaN(t) ? new Error("invalid number") : t > e ? new Error(`maxLength ${e}`) : null, Ie = (e) => (t) => typeof t != "string" ? new Error("invalid string") : e.test(t) ? null : new Error("pattern");
|
|
550
|
-
export {
|
|
551
|
-
G as ERR_ABORTED,
|
|
552
|
-
Z as ERR_INVALID_CLIENT,
|
|
553
|
-
B as ERR_INVALID_HTTP_CONTEXT_TOKEN,
|
|
554
|
-
me as ERR_NETWORK,
|
|
555
|
-
q as ERR_NOT_FOUND_GLOBAL_CLIENT,
|
|
556
|
-
X as ERR_NOT_FOUND_HANDLER,
|
|
557
|
-
P as ERR_NOT_SET_ALIAS,
|
|
558
|
-
z as ERR_OBSERVE,
|
|
559
|
-
W as ERR_TIMEOUT,
|
|
560
|
-
Ee as ERR_UNKNOWN,
|
|
561
|
-
Y as ERR_UNSUPPORTED_FIELD_TYPE,
|
|
562
|
-
T as HttpErrorResponse,
|
|
563
|
-
Oe as basicAuthInterceptor,
|
|
564
|
-
Te as cloneClient,
|
|
565
|
-
pe as createClient,
|
|
566
|
-
Pe as createGlobalClient,
|
|
567
|
-
ge as defineRequest,
|
|
568
|
-
V as doValid,
|
|
569
|
-
we as fetchHandler,
|
|
570
|
-
Re as field,
|
|
571
|
-
ye as getGlobalClient,
|
|
572
|
-
M as isClient,
|
|
573
|
-
I as isField,
|
|
574
|
-
J as isFieldGroup,
|
|
575
|
-
H as isHttpContextToken,
|
|
576
|
-
se as makeHttpContext,
|
|
577
|
-
_e as makeHttpContextToken,
|
|
578
|
-
xe as max,
|
|
579
|
-
He as maxLength,
|
|
580
|
-
Ue as min,
|
|
581
|
-
ke as minLength,
|
|
582
|
-
Ie as pattern,
|
|
583
|
-
Ae as required,
|
|
584
|
-
Le as requiredTrue,
|
|
585
|
-
Ce as restGlobalClient,
|
|
586
|
-
Ne as setGlobalClient
|
|
587
|
-
};
|
|
1
|
+
var K=new Error("ERR_ABORTED"),X=new Error("ERR_TIMEOUT"),Ht=new Error("ERR_NETWORK"),W=new Error("ERR_NOT_FOUND_HANDLER"),pt=new Error("ERR_OBSERVE"),A=new Error("ERR_NOT_SET_ALIAS"),J=new Error("ERR_UNSUPPORTED_FIELD_TYPE"),j=new Error("ERR_INVALID_CLIENT"),Q=new Error("ERR_NOT_FOUND_GLOBAL_CLIENT"),y=new Error("ERR_INVALID_HTTP_CONTEXT_TOKEN"),Et=new Error("ERR_UNKNOWN");class f extends Error{status;statusText;url;headers;body;constructor(t){const n=t?.status??0,r=t?.statusText??"",o=n>=200&&n<300,T=t?.headers??new Headers,s=t?.url??"",i=t?.body??null;let R;if(o)R=`Http failure during parsing for ${s}`;else if(R=`Http failure response for ${s||"(unknown url)"}: ${n}`,r)R+=` - ${r}`;super(R,{cause:t?.error});super.name="HttpErrorResponse",this.statusText=r,this.url=s,this.headers=T,this.status=n,this.body=i}}function q(t){const n=t.get("Content-Length");if(!n)return 0;const r=Number(n);if(isNaN(r))return 0;return r}function l(t){return t.get("Content-Type")||""}function v(t){const{request:n,content:r,contentType:o}=t;switch(n.responseType){case"json":{const s=new TextDecoder().decode(r);if(s==="")return null;return JSON.parse(s)}case"text":return new TextDecoder().decode(r);case"blob":return new Blob([r],{type:o});case"arraybuffer":return r.buffer;default:return null}}function tt(t,n){const r=new Uint8Array(n);let o=0;for(let T of t)r.set(T,o),o+=T.length;return r}function wt(t){return Object.defineProperty(t,nt,{value:t}),t}function P(t){return typeof t==="function"&&nt in t}function it(t){return typeof t==="object"&&t!==null&&Y in t}function Z(t){const n=new Map;switch(!0){case Array.isArray(t):{for(let[r,o]of t)if(P(r))n.set(r,o);break}case it(t):{for(let[r,o]of t[Y])n.set(r,o);break}}return{set(r,o){if(!P(r))throw y;return n.set(r,o),this},get(r){if(!P(r))throw y;if(!n.has(r))n.set(r,r());return n.get(r)},del(r){return n.delete(r),this},has(r){return n.has(r)},keys(){return n.keys()},get length(){return Array.from(n.keys()).length},[Y]:n}}var nt=Symbol("HttpContextToken"),Y=Symbol("HttpContext");function Rt(t){const n={required:typeof t!=="undefined",alias:new Map,validators:[],asyncValidator:[]},r=()=>t;return Object.defineProperty(r,a,{value:n}),r.withJson=(o)=>{return n.alias.set(0,o),r},r.withForm=(o)=>{return n.alias.set(4,o),r},r.withQuery=(o)=>{return n.alias.set(1,o),r},r.withParam=(o)=>{return n.alias.set(2,o),r},r.withHeader=(o)=>{return n.alias.set(3,o),r},r.withUrlForm=(o)=>{return n.alias.set(6,o),r},r.withBody=()=>{return n.alias.set(5,void 0),r},r.withValidators=(...o)=>{return n.validators=o,r},r.withAsyncValidators=(...o)=>{return n.asyncValidator=o,r},r}function G(t){return t[a]}async function g(t,n){await Promise.all(t.map((r)=>r(n)))}function U(t){return!!t&&typeof t==="function"&&a in t}function V(t){return!!t&&typeof t==="object"&&Object.entries(t).every(([,n])=>U(n))}var a=Symbol("field");var ft=void 0;var rt=()=>ft;function ot(t){return t.reduceRight((n,r)=>{return(o,T)=>r(o,(s)=>n(s,T))},(n,r)=>r(n))}function M(t){const n=t?.status??0,r=t?.statusText??"",o=t?.url??"",T=t?.headers??new Headers,s=t?.body??null;return{status:n,statusText:r,url:o,headers:T,body:s}}function xt(t){switch(!0){case t instanceof FormData:case t instanceof Blob:case t instanceof ArrayBuffer:case t instanceof URLSearchParams:case typeof t==="string":return t;case typeof t==="object":case typeof t==="boolean":case typeof t==="number":case Array.isArray(t):return JSON.stringify(t);default:return null}}function Tt(t){switch(!0){case t instanceof FormData:return"multipart/form-data";case t instanceof ArrayBuffer:return"application/octet-stream";case t instanceof Blob:return t.type||"application/octet-stream";case t instanceof URLSearchParams:return"application/x-www-form-urlencoded;charset=UTF-8";case typeof t==="string":return"text/plain";case(typeof t==="object"&&t!==null):case typeof t==="number":case typeof t==="boolean":return"application/json";default:return null}}function kt(t){if(U(t))return t();if(V(t)){const n={};for(let[r,o]of Object.entries(t))n[r]=o();return n}return}function mt(...t){let n,r,o=!1,T,s=[],i="json",R,e=!1,p=[],E;switch(t.length){case 1:{n="GET",r=t[0];break}case 2:{n=t[0],r=t[1];break}default:throw new Error("Invalid arguments")}const c=(x)=>{const w=x?.timeout||0,N=x?.client||z(),H=d(N),_=x?.handler||H?.handler||rt();if(!_)throw W;let k,m,F;const h=[];if(x?.abort)h.push(x.abort);else F=new AbortController,h.push(F.signal);if(w>0)h.push(AbortSignal.timeout(w));return{doRequest:async(...I)=>{let D;if(o&&I.length===1)D=I[0];if(o&&!D)throw new Error("Because the request has input, the argument must be the input value");if(p.length>0)for(let u of p)u(D);const b={host:H?.host,method:n,endpoint:r,queryParams:new URLSearchParams,headers:new Headers,body:void 0,withCredentials:e,responseType:i,context:R||Z(),uploadProgress:k,downloadProgress:m,timeout:w,abort:AbortSignal.any(h)};if(o&&T)await Ct(b,T,D);let L=await ot([...H.interceptors,...s])(b,_);if(typeof E==="function")try{L=M({...L,body:E(L)})}catch(u){throw new f({error:u})}return L},cancel:()=>{F?.abort()},getInitValue:()=>kt(T),setUploadProgress:(I)=>{k=I},setDownloadProgress:(I)=>{m=I}}};return c.withField=(x)=>{return T=x,o=!0,c},c.withInterceptors=(x)=>{return s=x,c},c.withContext=(x)=>{return R=x,c},c.withCredentials=(x)=>{return e=x,c},c.withValidators=(x)=>{return p=x,c},c.withTransformResponse=(x)=>{return E=x,c},c.withResponseType=(x)=>{return i=x,c},c}function et(t,n){return t.replace(/:([^\/]+)/g,(r,o)=>{return n.get(o)??"undefined"})}async function Ct(t,n,r){function o(e){return typeof e==="object"&&e!==null}function T(e){switch(!0){case Array.isArray(e):case(typeof e==="object"&&e!==null):return JSON.stringify(e);case(typeof e==="object"&&e===null):case typeof e==="boolean":case typeof e==="number":case typeof e==="string":return String(e);default:throw new Error("Unsupported value type")}}function s(e,p,E){if(Array.isArray(E))for(let c of E)e.append(p,T(c));else e.set(p,T(E));return e}function i(e,p,E){if(Array.isArray(E))for(let c of E)i(e,p,T(c));return e.set(p,T(E)),e}function R(e,p){switch(!0){case typeof e==="undefined":return p;case(typeof e==="object"&&e===null):return e;default:return e}}if(U(n)){let e,p,E,c=void 0;const x=R(r,n()),w=G(n);await g([...w.validators,...w.asyncValidator],x);for(let[N,H]of w.alias)switch(N){case 1:{if(!H)throw A;p=s(new URLSearchParams,H,x);break}case 2:{if(!H)throw A;e=i(new Map,H,x);break}case 3:{if(!H)throw A;E=s(new Headers,H,x);break}case 4:{if(!H)throw A;c=s(new FormData,H,x);break}case 6:{if(!H)throw A;c=s(new URLSearchParams,H,x);break}case 0:case 5:c=x;break}if(e)t.endpoint=et(t.endpoint,e);t.queryParams=p,t.headers=E,t.body=c;return}if(V(n)&&o(r)){let e=new Map,p=new URLSearchParams,E=new Headers,c=new URLSearchParams,x=new FormData;const w={};let N=void 0,H;for(let[_,k]of Object.entries(n)){const m=G(k);for(let[F,h]of m.alias){const O=h||_,C=R(r[_],k());switch(await g([...m.validators,...m.asyncValidator],C),F){case 0:{Object.defineProperty(w,O,{value:C,writable:!0,enumerable:!0}),H=0;break}case 1:p=s(p,O,C);break;case 2:e=i(e,O,C);break;case 3:E=s(E,O,C);break;case 4:{x=s(x,O,C),H=4;break}case 6:{c=s(c,O,C),H=6;break}case 5:{N=C,H=5;break}}}}switch(t.endpoint=et(t.endpoint,e),t.queryParams=p,t.headers=E,H){case 5:t.body=N;break;case 4:t.body=x;break;case 6:t.body=c;break;case 0:t.body=w;break}return}throw J}function Nt(t){const n=new URL(t.endpoint,t.host);if(t.queryParams)n.search=t.queryParams.toString();const r=t.headers??new Headers;if(!r.has("Content-Type")){const T=Tt(t.body);if(T)r.set("Content-Type",T)}if(!r.has("Accept"))r.set("Accept","application/json, text/plain, */*");const o=t.withCredentials?"include":void 0;return new Request(n,{headers:r,method:t.method,body:xt(t.body),signal:t.abort,credentials:o})}async function S(t){const n=t.downloadProgress,r=Nt(t),o=t.abort;let T;try{T=await globalThis.fetch(r)}catch(w){if(o?.aborted&&o.reason instanceof Error)switch(!0){case o.reason.name==="AbortError":throw new f({error:K});case o.reason.name==="TimeoutError":throw new f({error:X})}throw new f({error:w})}const{ok:s,headers:i,status:R,statusText:e,url:p}=T,E=q(i),c=l(i);let x=null;if(T.body){const w=[],N=T.body.getReader();let H=0;while(!0){const{done:k,value:m}=await N.read();if(k)break;w.push(m),H+=m.length,n?.({lengthComputable:E>0,loaded:H,total:E})}const _=tt(w,H);try{x=v({request:t,content:_,contentType:c})}catch(k){throw new f({error:k,status:R,statusText:e,headers:i,url:p})}}if(!s)throw new f({status:R,statusText:e,headers:i,url:p,body:x});return M({url:p,status:R,statusText:e,headers:i,body:x})}function ct(t){return typeof t==="object"&&t!==null&&$ in t}function d(t){if(!ct(t))throw j;return t[$]}function st(t){const n={host:t.host,interceptors:t.interceptors??[],handler:t.handler||S};return{[$]:n}}function _t(t,n){const o={...d(t),...n};return{[$]:o}}function z(){if(!B)throw Q;return B}function Ot(t){B=t}function At(){B=void 0}function ht(t){B=st(t)}var $=Symbol("Client"),B;function It(t,n){let r=n?.encode;if(!r){const o=globalThis.btoa;if(typeof o!=="function")throw new Error("BasicAuthInterceptor is not supported in this environment");r=(T)=>o(`${T.username}:${T.password}`)}return(o,T)=>{const s=o.headers||new Headers;return s.set("Authorization",`Basic ${r(t())}`),o.headers=s,T(o)}}var Ft=(t)=>{if(!t)return new Error("required");return null},Ut=(t)=>{if(typeof t!=="boolean"||!t)return new Error("requiredTrue");return null},Bt=(t)=>{return(n)=>{if(typeof n!=="string")return new Error("invalid string");if(n.length<t)return new Error(`minLength ${t}`);return null}},Dt=(t)=>{return(n)=>{if(typeof n!=="string")return new Error("invalid string");if(n.length>t)return new Error(`maxLength ${t}`);return null}},Lt=(t)=>{return(n)=>{if(typeof n!=="number"||isNaN(n))return new Error("invalid number");if(n<t)return new Error(`minLength ${t}`);return null}},yt=(t)=>{return(n)=>{if(typeof n!=="number"||isNaN(n))return new Error("invalid number");if(n>t)return new Error(`maxLength ${t}`);return null}},Pt=(t)=>{return(n)=>{if(typeof n!=="string")return new Error("invalid string");if(!t.test(n))return new Error("pattern");return null}};export{Ot as setGlobalClient,At as restGlobalClient,Ut as requiredTrue,Ft as required,Pt as pattern,Bt as minLength,Lt as min,Dt as maxLength,yt as max,wt as makeHttpContextToken,Z as makeHttpContext,P as isHttpContextToken,V as isFieldGroup,U as isField,ct as isClient,z as getGlobalClient,Rt as field,S as fetchHandler,g as doValid,mt as defineRequest,ht as createGlobalClient,st as createClient,_t as cloneClient,It as basicAuthInterceptor,f as HttpErrorResponse,J as ERR_UNSUPPORTED_FIELD_TYPE,Et as ERR_UNKNOWN,X as ERR_TIMEOUT,pt as ERR_OBSERVE,A as ERR_NOT_SET_ALIAS,W as ERR_NOT_FOUND_HANDLER,Q as ERR_NOT_FOUND_GLOBAL_CLIENT,Ht as ERR_NETWORK,y as ERR_INVALID_HTTP_CONTEXT_TOKEN,j as ERR_INVALID_CLIENT,K as ERR_ABORTED};
|
package/package.json
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defjs/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"module": "index.js",
|
|
6
6
|
"typings": "index.d.ts",
|
|
7
7
|
"license": "MIT",
|
|
8
|
+
"publishConfig": {
|
|
9
|
+
"directory": "dist"
|
|
10
|
+
},
|
|
8
11
|
"repository": {
|
|
9
12
|
"type": "git",
|
|
10
13
|
"url": "git+https://github.com/defjs/defjs.git"
|