@defjs/core 0.0.0-test-000 → 0.0.0-test-001

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 CHANGED
@@ -57,23 +57,22 @@ declare const HTTP_RESPONSE: unique symbol;
57
57
  export type HttpResponseBody = string | ArrayBuffer | Blob | object | null;
58
58
  export type HttpResponse<R> = ({
59
59
  readonly ok: true;
60
- readonly status: number;
61
- readonly statusText: string;
62
- readonly url: string;
63
- readonly headers: Headers;
64
- readonly body: R | null;
60
+ readonly error: null;
65
61
  } | {
66
62
  readonly ok: false;
67
63
  readonly error: Error;
64
+ }) & {
65
+ readonly url: string;
68
66
  readonly status: number;
69
67
  readonly statusText: string;
70
- readonly url: string;
71
68
  readonly headers: Headers;
72
- readonly body: null;
73
- }) & {
69
+ readonly body: R | null;
74
70
  readonly [HTTP_RESPONSE]: unknown;
75
71
  };
76
72
  export declare function isHttpResponse<R>(value: unknown): value is HttpResponse<R>;
73
+ export declare function isHttpResponseError<R>(value: unknown): value is HttpResponse<R> & {
74
+ ok: false;
75
+ };
77
76
  export type MakeResponseOptions<R> = {
78
77
  status?: number;
79
78
  statusText?: string;
@@ -315,5 +314,17 @@ export declare function getGlobalClient(): Client;
315
314
  export declare function setGlobalClient(client: Client): void;
316
315
  export declare function restGlobalClient(): void;
317
316
  export declare function createGlobalClient(options: ClientOptions): void;
317
+ export declare const ERR_ABORTED: Error;
318
+ export declare const ERR_TIMEOUT: Error;
319
+ export declare const ERR_NETWORK: Error;
320
+ export declare const ERR_NOT_FOUND_HANDLER: Error;
321
+ export declare const ERR_TRANSFORM_RESPONSE: Error;
322
+ export declare const ERR_STREAMING_NOT_IMPLEMENTED: Error;
323
+ export declare const ERR_OBSERVE: Error;
324
+ export declare const ERR_NOT_SET_ALIAS: Error;
325
+ export declare const ERR_UNSUPPORTED_FIELD_TYPE: Error;
326
+ export declare const ERR_INVALID_CLIENT: Error;
327
+ export declare const ERR_NOT_FOUND_GLOBAL_CLIENT: Error;
328
+ export declare const ERR_INVALID_HTTP_CONTEXT_TOKEN: Error;
318
329
 
319
330
  export {};
package/index.js CHANGED
@@ -1,3 +1,21 @@
1
+ // src/error.ts
2
+ function __withErrorCause(err, cause) {
3
+ err.cause = cause;
4
+ return err;
5
+ }
6
+ var ERR_ABORTED = new Error("ERR_ABORTED");
7
+ var ERR_TIMEOUT = new Error("ERR_TIMEOUT");
8
+ var ERR_NETWORK = new Error("ERR_NETWORK");
9
+ var ERR_NOT_FOUND_HANDLER = new Error("ERR_NOT_FOUND_HANDLER");
10
+ var ERR_TRANSFORM_RESPONSE = new Error("ERR_TRANSFORM_RESPONSE");
11
+ var ERR_STREAMING_NOT_IMPLEMENTED = new Error("ERR_STREAMING_NOT_IMPLEMENTED");
12
+ var ERR_OBSERVE = new Error("ERR_OBSERVE");
13
+ var ERR_NOT_SET_ALIAS = new Error("ERR_NOT_SET_ALIAS");
14
+ var ERR_UNSUPPORTED_FIELD_TYPE = new Error("ERR_UNSUPPORTED_FIELD_TYPE");
15
+ var ERR_INVALID_CLIENT = new Error("ERR_INVALID_CLIENT");
16
+ var ERR_NOT_FOUND_GLOBAL_CLIENT = new Error("ERR_NOT_FOUND_GLOBAL_CLIENT");
17
+ var ERR_INVALID_HTTP_CONTEXT_TOKEN = new Error("ERR_INVALID_HTTP_CONTEXT_TOKEN");
18
+
1
19
  // src/context.ts
2
20
  function makeHttpContextToken(defaultValue) {
3
21
  Object.defineProperty(defaultValue, HTTP_CONTEXT_TOKEN, { value: defaultValue });
@@ -11,14 +29,14 @@ function makeHttpContext() {
11
29
  return {
12
30
  set(token, value) {
13
31
  if (!isHttpContextToken(token)) {
14
- throw new Error("Invalid HttpContextToken");
32
+ throw ERR_INVALID_HTTP_CONTEXT_TOKEN;
15
33
  }
16
34
  ctx.set(token, value);
17
35
  return this;
18
36
  },
19
37
  get(token) {
20
38
  if (!isHttpContextToken(token)) {
21
- throw new Error("Invalid HttpContextToken");
39
+ throw ERR_INVALID_HTTP_CONTEXT_TOKEN;
22
40
  }
23
41
  if (!ctx.has(token)) {
24
42
  ctx.set(token, token());
@@ -84,7 +102,7 @@ function field(defaultValue) {
84
102
  };
85
103
  return getter;
86
104
  }
87
- function getFieldMetadata(field2) {
105
+ function __getFieldMetadata(field2) {
88
106
  return field2[FIELD];
89
107
  }
90
108
  function validatorField(validators, value) {
@@ -126,6 +144,9 @@ function makeInterceptorChain(interceptors) {
126
144
  function isHttpResponse(value) {
127
145
  return typeof value === "object" && value !== null && HTTP_RESPONSE in value;
128
146
  }
147
+ function isHttpResponseError(value) {
148
+ return isHttpResponse(value) && !value.ok;
149
+ }
129
150
  function makeResponse(options) {
130
151
  const status = options.status ?? 0;
131
152
  const statusText = options.statusText ?? "";
@@ -134,20 +155,21 @@ function makeResponse(options) {
134
155
  const headers = options.headers ?? new Headers;
135
156
  const body = options.body ?? null;
136
157
  if (!ok || options.error) {
137
- const error = options.error || new Error(`Http failure response for ${options.url}: ${status} ${statusText}`);
158
+ const error2 = options.error || new Error(`Http failure response for ${options.url}: ${status} ${statusText}`);
138
159
  return {
139
160
  ok: false,
140
- error,
161
+ error: error2,
141
162
  status,
142
163
  statusText,
143
164
  url,
144
165
  headers,
145
- body: null,
166
+ body,
146
167
  [HTTP_RESPONSE]: null
147
168
  };
148
169
  }
149
170
  return {
150
171
  ok: true,
172
+ error: null,
151
173
  status,
152
174
  statusText,
153
175
  url,
@@ -159,7 +181,7 @@ function makeResponse(options) {
159
181
  var HTTP_RESPONSE = Symbol("HTTP_RESPONSE");
160
182
 
161
183
  // src/request.ts
162
- function serializeBody(body) {
184
+ function __serializeBody(body) {
163
185
  switch (true) {
164
186
  case body instanceof FormData:
165
187
  case body instanceof Blob:
@@ -175,7 +197,7 @@ function serializeBody(body) {
175
197
  return null;
176
198
  }
177
199
  }
178
- function detectContentTypeHeader(body) {
200
+ function __detectContentTypeHeader(body) {
179
201
  switch (true) {
180
202
  case body instanceof FormData:
181
203
  return "multipart/form-data";
@@ -197,7 +219,7 @@ function detectContentTypeHeader(body) {
197
219
  return null;
198
220
  }
199
221
  }
200
- function buildFieldValue(input) {
222
+ function __buildFieldValue(input) {
201
223
  if (isField(input)) {
202
224
  return input();
203
225
  }
@@ -241,10 +263,13 @@ function defineRequest(options) {
241
263
  }
242
264
  }
243
265
  if (requiredInput && !input) {
244
- throw new Error("input is required");
266
+ throw new Error(`Because the request has input, the first argument must be the input value`);
245
267
  }
268
+ const timeout = doRequestOptions?.timeout || 0;
246
269
  if (doRequestOptions?.abort) {
247
270
  abortSignal = doRequestOptions.abort;
271
+ } else if (timeout > 0) {
272
+ abortSignal = AbortSignal.timeout(timeout);
248
273
  } else {
249
274
  abortController = new AbortController;
250
275
  abortSignal = abortController.signal;
@@ -264,45 +289,47 @@ function defineRequest(options) {
264
289
  observe: requestOptions.observe ?? "body",
265
290
  uploadProgress,
266
291
  downloadProgress,
267
- timeout: doRequestOptions?.timeout || 0,
292
+ timeout,
268
293
  abort: abortSignal
269
294
  };
270
295
  const handler2 = doRequestOptions?.handler || clientOptions?.handler || getGlobalHttpHandler();
271
296
  if (!handler2) {
272
- throw new Error("no handler");
297
+ throw ERR_NOT_FOUND_HANDLER;
273
298
  }
274
299
  if (requiredInput) {
275
- await fillRequestFromField(req, requestOptions.input, input);
300
+ await __fillRequestFromField(req, requestOptions.input, input);
276
301
  }
277
302
  if (typeof requestOptions.transformRequest === "function") {
278
303
  req.body = requestOptions.transformRequest(input, req);
279
304
  }
280
305
  const chain = makeInterceptorChain([...clientOptions?.interceptors || [], ...requestOptions?.interceptors || []]);
281
- if (typeof req.timeout === "number" && req.timeout > 0 && abortController) {
282
- setTimeout(() => {
283
- if (!req.abort?.aborted) {
284
- abortController?.abort("timeout");
285
- }
286
- }, req.timeout);
287
- }
288
306
  let res;
289
307
  try {
290
308
  res = await chain(req, handler2);
291
- } catch (error) {
309
+ } catch (error3) {
310
+ if (error3 instanceof DOMException) {
311
+ switch (true) {
312
+ case (error3.name === "AbortError" || error3.code === error3.ABORT_ERR):
313
+ throw ERR_ABORTED;
314
+ case (error3.name === "TimeoutError" || error3.code === error3.TIMEOUT_ERR):
315
+ throw ERR_TIMEOUT;
316
+ }
317
+ }
292
318
  throw makeResponse({
293
- error: error instanceof Error ? error : new Error("Transform response error", { cause: error })
319
+ error: __withErrorCause(ERR_NETWORK, error3)
294
320
  });
295
321
  }
296
322
  if (typeof requestOptions.transformResponse === "function") {
297
323
  try {
298
324
  res = makeResponse({
299
325
  ...res,
300
- body: requestOptions.transformResponse(res)
326
+ body: requestOptions.transformResponse(res),
327
+ error: undefined
301
328
  });
302
- } catch (error) {
329
+ } catch (error3) {
303
330
  throw makeResponse({
304
331
  ...res,
305
- error: error instanceof Error ? error : new Error("Transform response error", { cause: error })
332
+ error: __withErrorCause(ERR_TRANSFORM_RESPONSE, error3)
306
333
  });
307
334
  }
308
335
  }
@@ -310,30 +337,27 @@ function defineRequest(options) {
310
337
  case "body":
311
338
  return res.body;
312
339
  case "stream":
313
- throw new Error("streaming not implemented");
340
+ throw ERR_STREAMING_NOT_IMPLEMENTED;
314
341
  case "response":
315
342
  return res;
316
343
  default:
317
- throw new Error("invalid observe");
344
+ throw ERR_OBSERVE;
318
345
  }
319
346
  };
320
347
  return {
321
348
  doRequest,
322
- inputValue: buildFieldValue(requestOptions.input),
349
+ inputValue: __buildFieldValue(requestOptions.input),
323
350
  setUploadProgress,
324
351
  setDownloadProgress
325
352
  };
326
353
  };
327
354
  }
328
- function throwAliaNotSet() {
329
- throw new Error("alias not set");
330
- }
331
- function fillUrl(endpoint, params) {
355
+ function __fillUrl(endpoint, params) {
332
356
  return endpoint.replace(/:([^\/]+)/g, (_, p1) => {
333
357
  return params.get(p1) ?? "undefined";
334
358
  });
335
359
  }
336
- async function fillRequestFromField(request, fieldOrFieldGroup, input) {
360
+ async function __fillRequestFromField(request, fieldOrFieldGroup, input) {
337
361
  async function doValid(validators, value) {
338
362
  for (const validator of validators) {
339
363
  const err = await validator(value);
@@ -372,7 +396,7 @@ async function fillRequestFromField(request, fieldOrFieldGroup, input) {
372
396
  let headers;
373
397
  let body = undefined;
374
398
  const fieldValue = input ?? fieldOrFieldGroup();
375
- const meta = getFieldMetadata(fieldOrFieldGroup);
399
+ const meta = __getFieldMetadata(fieldOrFieldGroup);
376
400
  const err = await doValid([...meta.validators, ...meta.asyncValidator], fieldValue);
377
401
  if (err) {
378
402
  throw err;
@@ -381,28 +405,28 @@ async function fillRequestFromField(request, fieldOrFieldGroup, input) {
381
405
  switch (type) {
382
406
  case 2 /* Query */: {
383
407
  if (!aliasName) {
384
- throwAliaNotSet();
408
+ throw ERR_NOT_SET_ALIAS;
385
409
  }
386
410
  queryParams = appendValue(new URLSearchParams, aliasName, fieldValue);
387
411
  break;
388
412
  }
389
413
  case 3 /* Param */: {
390
414
  if (!aliasName) {
391
- throwAliaNotSet();
415
+ throw ERR_NOT_SET_ALIAS;
392
416
  }
393
417
  params = setValue(new Map, aliasName, fieldValue);
394
418
  break;
395
419
  }
396
420
  case 4 /* Header */: {
397
421
  if (!aliasName) {
398
- throwAliaNotSet();
422
+ throw ERR_NOT_SET_ALIAS;
399
423
  }
400
424
  headers = appendValue(new Headers, aliasName, fieldValue);
401
425
  break;
402
426
  }
403
427
  case 5 /* Form */: {
404
428
  if (!aliasName) {
405
- throwAliaNotSet();
429
+ throw ERR_NOT_SET_ALIAS;
406
430
  }
407
431
  body = appendValue(new FormData, aliasName, fieldValue);
408
432
  break;
@@ -414,7 +438,7 @@ async function fillRequestFromField(request, fieldOrFieldGroup, input) {
414
438
  }
415
439
  }
416
440
  if (params) {
417
- request.endpoint = fillUrl(request.endpoint, params);
441
+ request.endpoint = __fillUrl(request.endpoint, params);
418
442
  }
419
443
  request.queryParams = queryParams;
420
444
  request.headers = headers;
@@ -429,7 +453,7 @@ async function fillRequestFromField(request, fieldOrFieldGroup, input) {
429
453
  const json = {};
430
454
  let body = undefined;
431
455
  for (const [propertyKey, field3] of Object.entries(fieldOrFieldGroup)) {
432
- const meta = getFieldMetadata(field3);
456
+ const meta = __getFieldMetadata(field3);
433
457
  for (const [type, aliasName] of meta.alias) {
434
458
  const valueKey = aliasName || propertyKey;
435
459
  const value = input[propertyKey] || field3();
@@ -463,7 +487,7 @@ async function fillRequestFromField(request, fieldOrFieldGroup, input) {
463
487
  }
464
488
  }
465
489
  }
466
- request.endpoint = fillUrl(request.endpoint, params);
490
+ request.endpoint = __fillUrl(request.endpoint, params);
467
491
  request.queryParams = queryParams;
468
492
  request.headers = headers;
469
493
  if (body) {
@@ -475,7 +499,7 @@ async function fillRequestFromField(request, fieldOrFieldGroup, input) {
475
499
  }
476
500
  return;
477
501
  }
478
- throw new Error("unsupported field type");
502
+ throw ERR_UNSUPPORTED_FIELD_TYPE;
479
503
  }
480
504
 
481
505
  // src/handler/util.ts
@@ -529,14 +553,14 @@ function concatChunks(chunks, totalLength) {
529
553
  }
530
554
 
531
555
  // src/handler/fetch/fetch.ts
532
- function createRequest(request2) {
556
+ function __createRequest(request2) {
533
557
  const url = new URL(request2.endpoint, request2.host);
534
558
  if (request2.queryParams) {
535
559
  url.search = request2.queryParams.toString();
536
560
  }
537
561
  const headers = request2.headers ?? new Headers;
538
562
  if (!headers.has("Content-Type")) {
539
- const detectedType = detectContentTypeHeader(request2.body);
563
+ const detectedType = __detectContentTypeHeader(request2.body);
540
564
  if (detectedType) {
541
565
  headers.set("Content-Type", detectedType);
542
566
  }
@@ -550,20 +574,15 @@ function createRequest(request2) {
550
574
  ...fetchConfig,
551
575
  headers,
552
576
  method: request2.method,
553
- body: serializeBody(request2.body),
577
+ body: __serializeBody(request2.body),
554
578
  signal: request2.abort,
555
579
  credentials
556
580
  });
557
581
  }
558
582
  async function fetchHandler(httpRequest) {
559
583
  const downloadProgress = httpRequest.downloadProgress;
560
- const request2 = createRequest(httpRequest);
561
- let response3;
562
- try {
563
- response3 = await (globalThis || window).fetch(request2);
564
- } catch (error) {
565
- throw new Error("Network Error", { cause: error });
566
- }
584
+ const request2 = __createRequest(httpRequest);
585
+ const response3 = await (globalThis || window).fetch(request2);
567
586
  const { headers, status, statusText, url } = response3;
568
587
  const contentLength = getContentLength(headers);
569
588
  const contentType = getContentType(headers);
@@ -586,15 +605,11 @@ async function fetchHandler(httpRequest) {
586
605
  });
587
606
  }
588
607
  const chunksAll = concatChunks(chunks, receivedLength);
589
- try {
590
- body = parseBody({
591
- request: httpRequest,
592
- content: chunksAll,
593
- contentType
594
- });
595
- } catch (error) {
596
- throw new Error("Parse response body error", { cause: error });
597
- }
608
+ body = parseBody({
609
+ request: httpRequest,
610
+ content: chunksAll,
611
+ contentType
612
+ });
598
613
  }
599
614
  return makeResponse({
600
615
  url,
@@ -611,7 +626,7 @@ function isClient(value) {
611
626
  }
612
627
  function getClientConfig(client2) {
613
628
  if (!isClient(client2)) {
614
- throw new Error("Invalid client");
629
+ throw ERR_INVALID_CLIENT;
615
630
  }
616
631
  return client2[CLIENT];
617
632
  }
@@ -637,7 +652,7 @@ function cloneClient(client2, options) {
637
652
  }
638
653
  function getGlobalClient() {
639
654
  if (!globalClient) {
640
- throw new Error("Global client not set");
655
+ throw ERR_NOT_FOUND_GLOBAL_CLIENT;
641
656
  }
642
657
  return globalClient;
643
658
  }
@@ -754,6 +769,7 @@ export {
754
769
  makeResponse,
755
770
  makeHttpContextToken,
756
771
  makeHttpContext,
772
+ isHttpResponseError,
757
773
  isHttpResponse,
758
774
  isHttpContextToken,
759
775
  isFieldGroup,
@@ -768,5 +784,17 @@ export {
768
784
  cloneClient,
769
785
  basicAuthInterceptor,
770
786
  asyncValidatorField,
771
- FETCH_CONFIG_KEY
787
+ FETCH_CONFIG_KEY,
788
+ ERR_UNSUPPORTED_FIELD_TYPE,
789
+ ERR_TRANSFORM_RESPONSE,
790
+ ERR_TIMEOUT,
791
+ ERR_STREAMING_NOT_IMPLEMENTED,
792
+ ERR_OBSERVE,
793
+ ERR_NOT_SET_ALIAS,
794
+ ERR_NOT_FOUND_HANDLER,
795
+ ERR_NOT_FOUND_GLOBAL_CLIENT,
796
+ ERR_NETWORK,
797
+ ERR_INVALID_HTTP_CONTEXT_TOKEN,
798
+ ERR_INVALID_CLIENT,
799
+ ERR_ABORTED
772
800
  };
package/index.min.js ADDED
@@ -0,0 +1 @@
1
+ function U(t,n){return t.cause=n,t}var l=new Error("ERR_ABORTED"),h=new Error("ERR_TIMEOUT"),L=new Error("ERR_NETWORK"),P=new Error("ERR_NOT_FOUND_HANDLER"),D=new Error("ERR_TRANSFORM_RESPONSE"),M=new Error("ERR_STREAMING_NOT_IMPLEMENTED"),d=new Error("ERR_OBSERVE"),m=new Error("ERR_NOT_SET_ALIAS"),O=new Error("ERR_UNSUPPORTED_FIELD_TYPE"),g=new Error("ERR_INVALID_CLIENT"),S=new Error("ERR_NOT_FOUND_GLOBAL_CLIENT"),u=new Error("ERR_INVALID_HTTP_CONTEXT_TOKEN");function X(t){return Object.defineProperty(t,z,{value:t}),t}function $(t){return typeof t==="function"&&z in t}function J(){const t=new Map;return{set(n,r){if(!$(n))throw u;return t.set(n,r),this},get(n){if(!$(n))throw u;if(!t.has(n))t.set(n,n());return t.get(n)},del(n){return t.delete(n),this},has(n){return t.has(n)},keys(){return t.keys()}}}var z=Symbol("HttpContextToken");function it(t){const n={alias:new Map,validators:[],asyncValidator:[]},r=()=>t;return Object.defineProperty(r,K,{value:n}),r.withJson=(o)=>{return n.alias.set(1,o),r},r.withForm=(o)=>{return n.alias.set(5,o),r},r.withQuery=(o)=>{return n.alias.set(2,o),r},r.withParam=(o)=>{return n.alias.set(3,o),r},r.withHeader=(o)=>{return n.alias.set(4,o),r},r.withBody=()=>{return n.alias.set(6,void 0),r},r.withValidators=(...o)=>{return n.validators=o,r},r.withAsyncValidators=(...o)=>{return n.asyncValidator=o,r},r}function Q(t){return t[K]}function pt(t,n){for(let r of t){const o=r(n);if(o)throw o}}async function ct(t,n){for(let r of t){const o=await r(n);if(o)throw o}}function A(t){return!!t&&typeof t==="function"&&K in t}function y(t){return!!t&&typeof t==="object"&&Object.entries(t).every(([,n])=>A(n))}var K=Symbol("field");var ft=void 0;var G=()=>ft;function b(t){return t.reduceRight((n,r)=>{return(o,T)=>r(o,(x)=>n(x,T))},(n,r)=>r(n))}function v(t){return typeof t==="object"&&t!==null&&j in t}function Rt(t){return v(t)&&!t.ok}function _(t){const n=t.status??0,r=t.statusText??"",o=n>=200&&n<300,T=t.url??"",x=t.headers??new Headers,a=t.body??null;if(!o||t.error)return{ok:!1,error:t.error||new Error(`Http failure response for ${t.url}: ${n} ${r}`),status:n,statusText:r,url:T,headers:x,body:a,[j]:null};return{ok:!0,error:null,status:n,statusText:r,url:T,headers:x,body:a,[j]:null}}var j=Symbol("HTTP_RESPONSE");function tt(t){switch(!0){case t instanceof FormData:case t instanceof Blob:case t instanceof ArrayBuffer: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 nt(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 Ht(t){if(A(t))return t();if(y(t)){const n={};for(let[r,o]of Object.entries(t))n[r]=o();return n}return}function wt(t){const n={...t},r=!!n.input;return()=>{let o,T,x,a;const E=(e)=>{o=e},i=(e)=>{T=e};return{doRequest:async(...e)=>{let c,f;switch(e.length){case 1:{f=e[0];break}case 2:{c=e[0],f=e[1];break}}if(r&&!c)throw new Error("Because the request has input, the first argument must be the input value");const w=f?.timeout||0;if(f?.abort)a=f.abort;else if(w>0)a=AbortSignal.timeout(w);else x=new AbortController,a=x.signal;const F=B(f?.client)?f.client:Y(),R=W(F),k={host:R?.host,method:n.method,endpoint:n.endpoint,queryParams:new URLSearchParams,headers:new Headers,body:void 0,withCredentials:n.withCredentials,responseType:n.responseType??"json",context:n.context||J(),observe:n.observe??"body",uploadProgress:o,downloadProgress:T,timeout:w,abort:a},I=f?.handler||R?.handler||G();if(!I)throw P;if(r)await st(k,n.input,c);if(typeof n.transformRequest==="function")k.body=n.transformRequest(c,k);const N=b([...R?.interceptors||[],...n?.interceptors||[]]);let H;try{H=await N(k,I)}catch(s){if(s instanceof DOMException)switch(!0){case(s.name==="AbortError"||s.code===s.ABORT_ERR):throw l;case(s.name==="TimeoutError"||s.code===s.TIMEOUT_ERR):throw h}throw _({error:U(L,s)})}if(typeof n.transformResponse==="function")try{H=_({...H,body:n.transformResponse(H),error:void 0})}catch(s){throw _({...H,error:U(D,s)})}switch(k.observe){case"body":return H.body;case"stream":throw M;case"response":return H;default:throw d}},inputValue:Ht(n.input),setUploadProgress:E,setDownloadProgress:i}}}function q(t,n){return t.replace(/:([^\/]+)/g,(r,o)=>{return n.get(o)??"undefined"})}async function st(t,n,r){async function o(E,i){for(let p of E){const e=await p(i);if(e)return e}return}function T(E){return typeof E==="object"&&E!==null}function x(E,i,p){if(Array.isArray(p))for(let e of p)E.append(i,String(e));else E.set(i,String(p));return E}function a(E,i,p){if(Array.isArray(p))for(let e of p)E.set(i,String(e));else E.set(i,String(p));return E}if(A(n)){let E,i,p,e=void 0;const c=r??n(),f=Q(n),w=await o([...f.validators,...f.asyncValidator],c);if(w)throw w;for(let[F,R]of f.alias)switch(F){case 2:{if(!R)throw m;i=x(new URLSearchParams,R,c);break}case 3:{if(!R)throw m;E=a(new Map,R,c);break}case 4:{if(!R)throw m;p=x(new Headers,R,c);break}case 5:{if(!R)throw m;e=x(new FormData,R,c);break}case 1:case 6:e=c;break}if(E)t.endpoint=q(t.endpoint,E);t.queryParams=i,t.headers=p,t.body=e;return}if(y(n)&&T(r)){let E=new Map,i=new URLSearchParams,p=new Headers,e=new FormData;const c={};let f=void 0;for(let[w,F]of Object.entries(n)){const R=Q(F);for(let[k,I]of R.alias){const N=I||w,H=r[w]||F(),s=await o([...R.validators,...R.asyncValidator],H);if(s)throw s;switch(k){case 1:Object.defineProperty(c,N,{value:H,writable:!0,enumerable:!0});break;case 2:i=x(i,N,H);break;case 3:E=a(E,N,H);break;case 4:p=x(p,N,H);break;case 5:e=x(e,N,H);break;case 6:f=H;break}}}if(t.endpoint=q(t.endpoint,E),t.queryParams=i,t.headers=p,f)t.body=f;else if(Array.from(e.keys()).length>0)t.body=e;else if(Object.keys(c).length)t.body=c;return}throw O}function rt(t){const n=t.get("Content-Length");if(!n)return 0;const r=Number(n);if(isNaN(r))return 0;return r}function ot(t){return t.get("Content-Type")||""}function et(t){const{request:n,content:r,contentType:o}=t,T=n.responseType;if(!T)return null;switch(T){case"json":{const x=new TextDecoder().decode(r);if(x==="")return null;return JSON.parse(x)}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 at(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 x=nt(t.body);if(x)r.set("Content-Type",x)}if(!r.has("Accept"))r.set("Accept","application/json, text/plain, */*");const o=t.withCredentials?"include":void 0,T=t.context?.get(xt)||{};return new Request(n,{...T,headers:r,method:t.method,body:tt(t.body),signal:t.abort,credentials:o})}async function Z(t){const n=t.downloadProgress,r=at(t),o=await(globalThis||window).fetch(r),{headers:T,status:x,statusText:a,url:E}=o,i=rt(T),p=ot(T);let e=null;if(o.body){const c=[],f=o.body.getReader();let w=0;while(!0){const{done:R,value:k}=await f.read();if(R)break;c.push(k),w+=k.length,n?.({lengthComputable:i>0,loaded:w,total:i})}const F=Tt(c,w);e=et({request:t,content:F,contentType:p})}return _({url:E,status:x,statusText:a,headers:T,body:e})}var xt=X(()=>({}));function B(t){return typeof t==="object"&&t!==null&&V in t}function W(t){if(!B(t))throw g;return t[V]}function Et(t){const n={host:t.host,interceptors:t.interceptors??[],handler:t.handler||Z};return{[V]:n}}function kt(t,n){const o={...W(t),...n};return{[V]:o}}function Y(){if(!C)throw S;return C}function Ft(t){C=t}function Nt(){C=void 0}function _t(t){C=Et(t)}var V=Symbol("Client"),C;function mt(t,n){let r=n?.encode;if(!r){const o=(globalThis||window).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 x=o.headers||new Headers;return x.set("Authorization",`Basic ${r(t())}`),o.headers=x,T(o)}}var At=(t)=>{if(!t)return new Error("required");return null},Ct=(t)=>{if(typeof t!=="boolean"||!t)return new Error("requiredTrue");return null},It=(t)=>{return(n)=>{if(typeof n!=="string")return new Error("invalid string");if(n.length<t)return new Error(`minLength ${t}`);return null}},ut=(t)=>{return(n)=>{if(typeof n!=="string")return new Error("invalid string");if(n.length>t)return new Error(`maxLength ${t}`);return null}},yt=(t)=>{return(n)=>{if(typeof n!=="number"||isNaN(n))return new Error("invalid number");if(n<t)return new Error(`minLength ${t}`);return null}},Bt=(t)=>{return(n)=>{if(typeof n!=="number"||isNaN(n))return new Error("invalid number");if(n>t)return new Error(`maxLength ${t}`);return null}},Vt=(t)=>{return(n)=>{if(typeof n!=="string")return new Error("invalid string");if(typeof t==="string")t=new RegExp(t);if(!t.test(n))return new Error("pattern");return null}};export{pt as validatorField,Ft as setGlobalClient,Nt as restGlobalClient,Ct as requiredTrue,At as required,Vt as pattern,It as minLength,yt as min,ut as maxLength,Bt as max,_ as makeResponse,X as makeHttpContextToken,J as makeHttpContext,Rt as isHttpResponseError,v as isHttpResponse,$ as isHttpContextToken,y as isFieldGroup,A as isField,B as isClient,Y as getGlobalClient,it as field,Z as fetchHandler,wt as defineRequest,_t as createGlobalClient,Et as createClient,kt as cloneClient,mt as basicAuthInterceptor,ct as asyncValidatorField,xt as FETCH_CONFIG_KEY,O as ERR_UNSUPPORTED_FIELD_TYPE,D as ERR_TRANSFORM_RESPONSE,h as ERR_TIMEOUT,M as ERR_STREAMING_NOT_IMPLEMENTED,d as ERR_OBSERVE,m as ERR_NOT_SET_ALIAS,P as ERR_NOT_FOUND_HANDLER,S as ERR_NOT_FOUND_GLOBAL_CLIENT,L as ERR_NETWORK,u as ERR_INVALID_HTTP_CONTEXT_TOKEN,g as ERR_INVALID_CLIENT,l as ERR_ABORTED};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defjs/core",
3
- "version": "0.0.0-test-000",
3
+ "version": "0.0.0-test-001",
4
4
  "type": "module",
5
5
  "module": "index.js",
6
6
  "typings": "index.d.ts",