typia 5.4.14 → 5.5.0-dev.20240301

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.
Files changed (73) hide show
  1. package/lib/factories/IdentifierFactory.d.ts +1 -1
  2. package/lib/functional/$guard.js +49 -28
  3. package/lib/functional/$guard.js.map +1 -1
  4. package/lib/functional/Namespace/index.d.ts +1 -1
  5. package/lib/http.d.ts +10 -493
  6. package/lib/http.js.map +1 -1
  7. package/lib/json.d.ts +9 -8
  8. package/lib/json.js.map +1 -1
  9. package/lib/misc.d.ts +9 -8
  10. package/lib/misc.js.map +1 -1
  11. package/lib/module.d.ts +17 -16
  12. package/lib/module.js.map +1 -1
  13. package/lib/notations.d.ts +13 -12
  14. package/lib/notations.js.map +1 -1
  15. package/lib/programmers/AssertProgrammer.d.ts +5 -1
  16. package/lib/programmers/AssertProgrammer.js +31 -22
  17. package/lib/programmers/AssertProgrammer.js.map +1 -1
  18. package/lib/programmers/http/HttpAssertFormDataProgrammer.d.ts +1 -1
  19. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +6 -2
  20. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  21. package/lib/programmers/http/HttpAssertHeadersProgrammer.d.ts +1 -1
  22. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +6 -2
  23. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  24. package/lib/programmers/http/HttpAssertQueryProgrammer.d.ts +1 -1
  25. package/lib/programmers/http/HttpAssertQueryProgrammer.js +6 -2
  26. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  27. package/lib/programmers/json/JsonAssertParseProgrammer.d.ts +1 -1
  28. package/lib/programmers/json/JsonAssertParseProgrammer.js +9 -3
  29. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  30. package/lib/programmers/json/JsonAssertStringifyProgrammer.d.ts +1 -1
  31. package/lib/programmers/json/JsonAssertStringifyProgrammer.js +9 -3
  32. package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
  33. package/lib/programmers/misc/MiscAssertCloneProgrammer.d.ts +1 -1
  34. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +9 -3
  35. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  36. package/lib/programmers/misc/MiscAssertPruneProgrammer.d.ts +1 -1
  37. package/lib/programmers/misc/MiscAssertPruneProgrammer.js +9 -3
  38. package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
  39. package/lib/programmers/notations/NotationAssertGeneralProgrammer.d.ts +1 -1
  40. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +9 -3
  41. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
  42. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.d.ts +1 -1
  43. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +6 -2
  44. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  45. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.d.ts +1 -1
  46. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +9 -3
  47. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
  48. package/lib/protobuf.d.ts +9 -8
  49. package/lib/protobuf.js.map +1 -1
  50. package/lib/transformers/internal/GenericTransformer.d.ts +1 -1
  51. package/lib/transformers/internal/GenericTransformer.js +3 -3
  52. package/lib/transformers/internal/GenericTransformer.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/factories/IdentifierFactory.ts +1 -1
  55. package/src/functional/$guard.ts +33 -19
  56. package/src/http.ts +25 -508
  57. package/src/json.ts +29 -8
  58. package/src/misc.ts +29 -8
  59. package/src/module.ts +57 -16
  60. package/src/notations.ts +43 -12
  61. package/src/programmers/AssertProgrammer.ts +69 -28
  62. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +6 -2
  63. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +6 -2
  64. package/src/programmers/http/HttpAssertQueryProgrammer.ts +6 -2
  65. package/src/programmers/json/JsonAssertParseProgrammer.ts +9 -3
  66. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +9 -3
  67. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +9 -3
  68. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +9 -3
  69. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +9 -3
  70. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +6 -2
  71. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +9 -3
  72. package/src/protobuf.ts +29 -8
  73. package/src/transformers/internal/GenericTransformer.ts +12 -4
package/lib/http.d.ts CHANGED
@@ -1,40 +1,7 @@
1
1
  import { Atomic } from "./typings/Atomic";
2
2
  import { IValidation } from "./IValidation";
3
3
  import { Resolved } from "./Resolved";
4
- /**
5
- * > You must configure the generic argument `T`.
6
- *
7
- * Form data decoder.
8
- *
9
- * `typia.http.formData()` is a function decoding `FormData` instance, with
10
- * automatic type casting to the expected type. When roperty type be defined
11
- * as `boolean` or `Blob` type, `typia.http.formData()` will cast the value to
12
- * the expected type when decoding.
13
- *
14
- * By the way, as `FormData` is not enough to express complex data structures,
15
- * `typia.http.formData()` function has some limitations. If target type `T` is
16
- * not following those restrictions, compilation errors would be occured.
17
- *
18
- * 1. Type `T` must be an object type
19
- * 2. Do not allow dynamic property
20
- * 3. Only `boolean`, `bigint`, `number`, `string`, `Blob`, `File` or their array types are allowed
21
- * 4. By the way, union type never be not allowed
22
- *
23
- * Also, `typia.http.formData()` function does not perform validation about the
24
- * decoded value. Therefore, if you can't sure that input data is following the
25
- * `T` type, it would better to call one of below functions intead.
26
- *
27
- * - {@link assertFormData}
28
- * - {@link isFormData}
29
- * - {@link validateFormData}
30
- *
31
- * @template T Expected type of decoded value
32
- * @param input FormData instance
33
- * @returns Decoded form FormData
34
- *
35
- * @author Jeongho Nam - https://github.com/samchon
36
- */
37
- declare function formData(): never;
4
+ import { TypeGuardError } from "./TypeGuardError";
38
5
  /**
39
6
  * Form data decoder.
40
7
  *
@@ -66,8 +33,6 @@ declare function formData<T extends object>(input: FormData): Resolved<T>;
66
33
  declare const formDataPure: typeof formData;
67
34
  export { formDataPure as formData };
68
35
  /**
69
- * > You must configure the generic argument `T`.
70
- *
71
36
  * Form data decoder with type assertion.
72
37
  *
73
38
  * `typia.http.assertFormData()` is a function decoding `FormData` instance, with
@@ -95,68 +60,9 @@ export { formDataPure as formData };
95
60
  *
96
61
  * @author Jeongho Nam - https://github.com/samchon
97
62
  */
98
- declare function assertFormData(): never;
99
- /**
100
- * Form data decoder with type assertion.
101
- *
102
- * `typia.http.assertFormData()` is a function decoding `FormData` instance, with
103
- * automatic type casting to the expected type. When roperty type be defined
104
- * as `boolean` or `Blob` type, `typia.http.assertFormData()` will cast the value
105
- * to the expected type when decoding.
106
- *
107
- * Also, after decoding, `typia.http.assertFormData()` performs type assertion to
108
- * the decoded value by combining with {@link assert} function. Therefore, when
109
- * the decoded value is not following the `T` type, {@link TypeGuardError} would
110
- * be thrown.
111
- *
112
- * By the way, as `FormData` is not enough to express complex data structures,
113
- * `typia.http.assertFormData()` function has some limitations. If target type `T`
114
- * is not following those restrictions, compilation errors would be occured.
115
- *
116
- * 1. Type `T` must be an object type
117
- * 2. Do not allow dynamic property
118
- * 3. Only `boolean`, `bigint`, `number`, `string`, `Blob`, `File` or their array types are allowed
119
- * 4. By the way, union type never be not allowed
120
- *
121
- * @template T Expected type of decoded value
122
- * @param input FormData instance
123
- * @returns Decoded form FormData
124
- *
125
- * @author Jeongho Nam - https://github.com/samchon
126
- */
127
- declare function assertFormData<T extends object>(input: FormData): Resolved<T>;
63
+ declare function assertFormData<T extends object>(input: FormData, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): Resolved<T>;
128
64
  declare const assertFormDataPure: typeof assertFormData;
129
65
  export { assertFormDataPure as assertFormData };
130
- /**
131
- * > You must configure the generic argument `T`.
132
- *
133
- * Form data decoder with type checking.
134
- *
135
- * `typia.http.isFormData()` is a function decoding `FormData` instance, with
136
- * automatic type casting to the expected type. When roperty type be defined
137
- * as `boolean` or `Blob` type, `typia.http.isFormData()` will cast the value
138
- * to the expected type when decoding.
139
- *
140
- * Also, after decoding, `typia.http.isFormData()` performs type checking to the
141
- * decoded value by combining with {@link is} function. Therefore, when the
142
- * decoded value is not following the `T` type, `null` value would be returned.
143
- *
144
- * By the way, as `FormData` is not enough to express complex data structures,
145
- * `typia.http.isFormData()` function has some limitations. If target type `T` is
146
- * not following those restrictions, compilation errors would be occured.
147
- *
148
- * 1. Type `T` must be an object type
149
- * 2. Do not allow dynamic property
150
- * 3. Only `boolean`, `bigint`, `number`, `string`, `Blob`, `File` or their array types are allowed
151
- * 4. By the way, union type never be not allowed
152
- *
153
- * @template T Expected type of decoded value
154
- * @param input FormData instance
155
- * @returns Decoded form FormData or `null` value
156
- *
157
- * @author Jeongho Nam - https://github.com/samchon
158
- */
159
- declare function isFormData(): never;
160
66
  /**
161
67
  * Form data decoder with type checking.
162
68
  *
@@ -187,38 +93,6 @@ declare function isFormData(): never;
187
93
  declare function isFormData<T extends object>(input: FormData): Resolved<T> | null;
188
94
  declare const isFormDataPure: typeof isFormData;
189
95
  export { isFormDataPure as isFormData };
190
- /**
191
- * > You must configure the generic argument `T`.
192
- *
193
- * Form data decoder with type validation.
194
- *
195
- * `typia.http.validateFormData()` is a function decoding `FormData` instance,
196
- * with automatic type casting to the expected type. When roperty type be defined
197
- * as `boolean` or `Blob` type, `typia.http.validateFormData()` will cast the
198
- * value to the expected type when decoding.
199
- *
200
- * Also, after decoding, `typia.http.validateFormData()` performs type validation
201
- * to the decoded value by combining with {@link validate} function. Therefore,
202
- * when the decoded value is not following the `T` type,
203
- * {@link IValidation.IFailure} would be returned. Otherwise,
204
- * x@xxxx IValidation.ISuccess} would be returned.
205
- *
206
- * By the way, as `FormData` is not enough to express complex data structures,
207
- * `typia.http.validateFormData()` function has some limitations. If target type
208
- * `T` is not following those restrictions, compilation errors would be occured.
209
- *
210
- * 1. Type `T` must be an object type
211
- * 2. Do not allow dynamic property
212
- * 3. Only `boolean`, `bigint`, `number`, `string`, `Blob`, `File` or their array types are allowed
213
- * 4. By the way, union type never be not allowed
214
- *
215
- * @template T Expected type of decoded value
216
- * @param input FormData instance
217
- * @returns Validation result with decoded form FormData
218
- *
219
- * @author Jeongho Nam - https://github.com/samchon
220
- */
221
- declare function validateFormData(): never;
222
96
  /**
223
97
  * Form data decoder with type validation.
224
98
  *
@@ -251,40 +125,6 @@ declare function validateFormData(): never;
251
125
  declare function validateFormData<T extends object>(input: FormData): IValidation<Resolved<T>>;
252
126
  declare const validateFormDataPure: typeof validateFormData;
253
127
  export { validateFormDataPure as validateFormData };
254
- /**
255
- * > You must configure the generic argument `T`.
256
- *
257
- * URL query decoder.
258
- *
259
- * `typia.http.query()` is a function decoding a query string or an `URLSearchParams`
260
- * instance, with automatic type casting to the expected type. When property type be
261
- * defined as `boolean` or `number` type, `typia.http.query()` will cast the value to
262
- * the expected type when decoding.
263
- *
264
- * By the way, as URL query is not enough to express complex data structures,
265
- * `typia.http.query()` function has some limitations. If target type `T` is not
266
- * following those restrictions, compilation errors would be occured.
267
- *
268
- * 1. Type `T` must be an object type
269
- * 2. Do not allow dynamic property
270
- * 3. Only `boolean`, `bigint`, `number`, `string` or their array types are allowed
271
- * 4. By the way, union type never be not allowed
272
- *
273
- * Also, `typia.http.query()` function does not perform validation about the decoded
274
- * value. Therefore, if you can't sure that input data is following the `T` type,
275
- * it would better to call one of below functions intead.
276
- *
277
- * - {@link assertQuery}
278
- * - {@link isQuery}
279
- * - {@link validateQuery}
280
- *
281
- * @template T Expected type of decoded value
282
- * @param input Query string or URLSearchParams instance
283
- * @returns Decoded query object
284
- *
285
- * @author Jeongho Nam - https://github.com/samchon
286
- */
287
- declare function query(): never;
288
128
  /**
289
129
  * URL query decoder.
290
130
  *
@@ -320,8 +160,6 @@ declare function query<T extends object>(input: string | URLSearchParams): Resol
320
160
  declare const queryPure: typeof query;
321
161
  export { queryPure as query };
322
162
  /**
323
- * > You must configure the generic argument `T`.
324
- *
325
163
  * URL query decoder with type assertion.
326
164
  *
327
165
  * `typia.http.assertQuery()` is a function decoding a query string or an
@@ -349,68 +187,9 @@ export { queryPure as query };
349
187
  *
350
188
  * @author Jeongho Nam - https://github.com/samchon
351
189
  */
352
- declare function assertQuery(): never;
353
- /**
354
- * URL query decoder with type assertion.
355
- *
356
- * `typia.http.assertQuery()` is a function decoding a query string or an
357
- * `URLSearchParams` instance, with automatic type casting to the expected type.
358
- * When property type be defined as `boolean` or `number` type,
359
- * `typia.http.assertQuery()` will cast the value to the expected type when decoding.
360
- *
361
- * Also, after decoding, `typia.http.assertQuery()` performs type assertion to the
362
- * decoded value by combining with {@link assert} function. Therefore, when the
363
- * decoded value is not following the `T` type, {@link TypeGuardError} would be
364
- * thrown.
365
- *
366
- * By the way, as URL query is not enough to express complex data structures,
367
- * `typia.http.assertQuery()` function has some limitations. If target type `T` is
368
- * notfollowing those restrictions, compilation errors would be occured.
369
- *
370
- * 1. Type `T` must be an object type
371
- * 2. Do not allow dynamic property
372
- * 3. Only `boolean`, `bigint`, `number`, `string` or their array types are allowed
373
- * 4. By the way, union type never be not allowed
374
- *
375
- * @template T Expected type of decoded value
376
- * @param input Query string or URLSearchParams instance
377
- * @returns Decoded query object
378
- *
379
- * @author Jeongho Nam - https://github.com/samchon
380
- */
381
- declare function assertQuery<T extends object>(input: string | URLSearchParams): Resolved<T>;
190
+ declare function assertQuery<T extends object>(input: string | URLSearchParams, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): Resolved<T>;
382
191
  declare const assertQueryPure: typeof assertQuery;
383
192
  export { assertQueryPure as assertQuery };
384
- /**
385
- * > You must configure the generic argument `T`.
386
- *
387
- * URL query decoder with type checking.
388
- *
389
- * `typia.http.isQuery()` is a function decoding a query string or an
390
- * `URLSearchParams` instance, with automatic type casting to the expected type.
391
- * When property type be defined as `boolean` or `number` type,
392
- * `typia.http.isQuery()` will cast the value to the expected type when decoding.
393
- *
394
- * Also, after decoding, `typia.http.isQuery()` performs type checking to the
395
- * decoded value by combining with {@link is} function. Therefore, when the
396
- * decoded value is not following the `T` type, `null` value would be returned.
397
- *
398
- * By the way, as URL query is not enough to express complex data structures,
399
- * `typia.http.isQuery()` function has some limitations. If target type `T` is
400
- * notfollowing those restrictions, compilation errors would be occured.
401
- *
402
- * 1. Type `T` must be an object type
403
- * 2. Do not allow dynamic property
404
- * 3. Only `boolean`, `bigint`, `number`, `string` or their array types are allowed
405
- * 4. By the way, union type never be not allowed
406
- *
407
- * @template T Expected type of decoded value
408
- * @param input Query string or URLSearchParams instance
409
- * @returns Decoded query object or `null` value
410
- *
411
- * @author Jeongho Nam - https://github.com/samchon
412
- */
413
- declare function isQuery(): never;
414
193
  /**
415
194
  * URL query decoder with type checking.
416
195
  *
@@ -441,37 +220,6 @@ declare function isQuery(): never;
441
220
  declare function isQuery<T extends object>(input: string | URLSearchParams): Resolved<T> | null;
442
221
  declare const isQueryPure: typeof isQuery;
443
222
  export { isQueryPure as isQuery };
444
- /**
445
- * > You must configure the generic argument `T`.
446
- *
447
- * URL query decoder with type validation.
448
- *
449
- * `typia.http.validateQuery()` is a function decoding a query string or an
450
- * `URLSearchParams` instance, with automatic type casting to the expected type.
451
- * When property type be defined as `boolean` or `number` type,
452
- * `typia.http.validateQuery()` will cast the value to the expected type when decoding.
453
- *
454
- * Also, after decoding, `typia.http.validateQuery()` performs type validation to the
455
- * decoded value by combining with {@link validate} function. Therefore, when the
456
- * decoded value is not following the `T` type, {@link IValidation.IFailure} would
457
- * be returned. Otherwise, {@link IValidation.ISuccess} would be returned.
458
- *
459
- * By the way, as URL query is not enough to express complex data structures,
460
- * `typia.http.validateQuery()` function has some limitations. If target type `T` is
461
- * notfollowing those restrictions, compilation errors would be occured.
462
- *
463
- * 1. Type `T` must be an object type
464
- * 2. Do not allow dynamic property
465
- * 3. Only `boolean`, `bigint`, `number`, `string` or their array types are allowed
466
- * 4. By the way, union type never be not allowed
467
- *
468
- * @template T Expected type of decoded value
469
- * @param input Query string or URLSearchParams instance
470
- * @returns Validation result with decoded query object
471
- *
472
- * @author Jeongho Nam - https://github.com/samchon
473
- */
474
- declare function validateQuery(): never;
475
223
  /**
476
224
  * URL query decoder with type validation.
477
225
  *
@@ -503,61 +251,6 @@ declare function validateQuery(): never;
503
251
  declare function validateQuery<T extends object>(input: string | URLSearchParams): IValidation<Resolved<T>>;
504
252
  declare const validateQueryPure: typeof validateQuery;
505
253
  export { validateQueryPure as validateQuery };
506
- /**
507
- * > You must configure the generic argument `T`.
508
- *
509
- * Headers decoder (for express and fastify).
510
- *
511
- * `typia.http.headers()` is a function decoding an header instance, with automatic
512
- * type casting to the expected type. When property type be defined as `boolean` or
513
- * `number` type, `typia.http.headers()` will cast the value to the expected type.
514
- *
515
- * By the way, as HTTP headers are not enough to express complex data structures,
516
- * `typia.http.headers()` function has some limitations. If target type `T` is not
517
- * following those restrictions, compilation errors would be occured.
518
- *
519
- * 1. Type `T` must be an object type
520
- * 2. Do not allow dynamic property
521
- * 3. Property key must be lower case
522
- * 4. Property value cannot be `null`, but `undefined` is possible
523
- * 5. Only `boolean`, `bigint`, `number`, `string` or their array types are allowed
524
- * 6. By the way, union type never be not allowed
525
- * 7. Property `set-cookie` must be array type
526
- * 8. Those properties cannot be array type
527
- * - age
528
- * - authorization
529
- * - content-length
530
- * - content-type
531
- * - etag
532
- * - expires
533
- * - from
534
- * - host
535
- * - if-modified-since
536
- * - if-unmodified-since
537
- * - last-modified
538
- * - location
539
- * - max-forwards
540
- * - proxy-authorization
541
- * - referer
542
- * - retry-after
543
- * - server
544
- * - user-agent
545
- *
546
- * Also, `typia.http.headers()` function does not perform validation about the decoded
547
- * value. Therefore, if you can't sure that input data is following the `T` type,
548
- * it would better to call one of below functions intead.
549
- *
550
- * - {@link assertHeaders}
551
- * - {@link isHeaders}
552
- * - {@link validateHeaders}
553
- *
554
- * @template T Expected type of decoded value
555
- * @param input Query string or URLSearchParams instance
556
- * @returns Decoded headers object
557
- *
558
- * @author Jeongho Nam - https://github.com/samchon
559
- */
560
- declare function headers(): never;
561
254
  /**
562
255
  * Headers decoder (for express and fastify).
563
256
  *
@@ -613,59 +306,6 @@ declare function headers(): never;
613
306
  declare function headers<T extends object>(input: Record<string, string | string[] | undefined>): Resolved<T>;
614
307
  declare const headersPure: typeof headers;
615
308
  export { headersPure as headers };
616
- /**
617
- * > You must configure the generic argument `T`.
618
- *
619
- * Headers decoder with type assertion (for express and fastify).
620
- *
621
- * `typia.http.assertHeaders()` is a function decoding an header instance, with
622
- * automatic type casting to the expected type. When property type be defined as
623
- * `boolean` or `number` type, `typia.http.headers()` will cast the value to the
624
- * expected type.
625
- *
626
- * Also, after decoding, `typia.http.assertHeaders()` performs type assertion to the
627
- * decoded value by combining with {@link assert} function. Therefore, when the
628
- * decoded value is not following the `T` type, {@link TypeGuardError} would be
629
- * thrown.
630
- *
631
- * By the way, as HTTP headers are not enough to express complex data structures,
632
- * `typia.http.headers()` function has some limitations. If target type `T` is not
633
- * following those restrictions, compilation errors would be occured.
634
- *
635
- * 1. Type `T` must be an object type
636
- * 2. Do not allow dynamic property
637
- * 3. Property key must be lower case
638
- * 4. Property value cannot be `null`, but `undefined` is possible
639
- * 5. Only `boolean`, `bigint`, `number`, `string` or their array types are allowed
640
- * 6. By the way, union type never be not allowed
641
- * 7. Property `set-cookie` must be array type
642
- * 8. Those properties cannot be array type
643
- * - age
644
- * - authorization
645
- * - content-length
646
- * - content-type
647
- * - etag
648
- * - expires
649
- * - from
650
- * - host
651
- * - if-modified-since
652
- * - if-unmodified-since
653
- * - last-modified
654
- * - location
655
- * - max-forwards
656
- * - proxy-authorization
657
- * - referer
658
- * - retry-after
659
- * - server
660
- * - user-agent
661
- *
662
- * @template T Expected type of decoded value
663
- * @param input Query string or URLSearchParams instance
664
- * @returns Decoded headers object
665
- *
666
- * @author Jeongho Nam - https://github.com/samchon
667
- */
668
- declare function assertHeaders(): never;
669
309
  /**
670
310
  * Headers decoder with type assertion (for express and fastify).
671
311
  *
@@ -716,61 +356,9 @@ declare function assertHeaders(): never;
716
356
  *
717
357
  * @author Jeongho Nam - https://github.com/samchon
718
358
  */
719
- declare function assertHeaders<T extends object>(input: Record<string, string | string[] | undefined>): Resolved<T>;
359
+ declare function assertHeaders<T extends object>(input: Record<string, string | string[] | undefined>, errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): Resolved<T>;
720
360
  declare const assertHeadersPure: typeof assertHeaders;
721
361
  export { assertHeadersPure as assertHeaders };
722
- /**
723
- * > You must configure the generic argument `T`.
724
- *
725
- * Headers decoder with type checking (for express and fastify).
726
- *
727
- * `typia.http.isHeaders()` is a function decoding an header instance, with
728
- * automatic type casting to the expected type. When property type be defined as
729
- * `boolean` or `number` type, `typia.http.headers()` will cast the value to the
730
- * expected type.
731
- *
732
- * Also, after decoding, `typia.http.isHeaders()` performs type checking to the
733
- * decoded value by combining with {@link is} function. Therefore, when the
734
- * decoded value is not following the `T` type, `null` value would be returned.
735
- *
736
- * By the way, as HTTP headers are not enough to express complex data structures,
737
- * `typia.http.headers()` function has some limitations. If target type `T` is not
738
- * following those restrictions, compilation errors would be occured.
739
- *
740
- * 1. Type `T` must be an object type
741
- * 2. Do not allow dynamic property
742
- * 3. Property key must be lower case
743
- * 4. Property value cannot be `null`, but `undefined` is possible
744
- * 5. Only `boolean`, `bigint`, `number`, `string` or their array types are allowed
745
- * 6. By the way, union type never be not allowed
746
- * 7. Property `set-cookie` must be array type
747
- * 8. Those properties cannot be array type
748
- * - age
749
- * - authorization
750
- * - content-length
751
- * - content-type
752
- * - etag
753
- * - expires
754
- * - from
755
- * - host
756
- * - if-modified-since
757
- * - if-unmodified-since
758
- * - last-modified
759
- * - location
760
- * - max-forwards
761
- * - proxy-authorization
762
- * - referer
763
- * - retry-after
764
- * - server
765
- * - user-agent
766
- *
767
- * @template T Expected type of decoded value
768
- * @param input Query string or URLSearchParams instance
769
- * @returns Decoded headers object or `null` value
770
- *
771
- * @author Jeongho Nam - https://github.com/samchon
772
- */
773
- declare function isHeaders(): never;
774
362
  /**
775
363
  * > You must configure the generic argument `T`.
776
364
  *
@@ -825,59 +413,6 @@ declare function isHeaders(): never;
825
413
  declare function isHeaders<T extends object>(input: Record<string, string | string[] | undefined>): Resolved<T> | null;
826
414
  declare const isHeadersPure: typeof isHeaders;
827
415
  export { isHeadersPure as isHeaders };
828
- /**
829
- * > You must configure the generic argument `T`.
830
- *
831
- * Headers decoder with type validation (for express and fastify).
832
- *
833
- * `typia.http.validateHeaders()` is a function decoding an header instance, with
834
- * automatic type casting to the expected type. When property type be defined as
835
- * `boolean` or `number` type, `typia.http.headers()` will cast the value to the
836
- * expected type.
837
- *
838
- * Also, after decoding, `typia.http.validateHeaders()` performs type assertion to the
839
- * decoded value by combining with {@link validate} function. Therefore, when the
840
- * decoded value is not following the `T` type, {@link IValidation.IError} would be
841
- * returned. Otherwise, {@link IValidation.ISuccess} be returned.
842
- *
843
- * By the way, as HTTP headers are not enough to express complex data structures,
844
- * `typia.http.headers()` function has some limitations. If target type `T` is not
845
- * following those restrictions, compilation errors would be occured.
846
- *
847
- * 1. Type `T` must be an object type
848
- * 2. Do not allow dynamic property
849
- * 3. Property key must be lower case
850
- * 4. Property value cannot be `null`, but `undefined` is possible
851
- * 5. Only `boolean`, `bigint`, `number`, `string` or their array types are allowed
852
- * 6. By the way, union type never be not allowed
853
- * 7. Property `set-cookie` must be array type
854
- * 8. Those properties cannot be array type
855
- * - age
856
- * - authorization
857
- * - content-length
858
- * - content-type
859
- * - etag
860
- * - expires
861
- * - from
862
- * - host
863
- * - if-modified-since
864
- * - if-unmodified-since
865
- * - last-modified
866
- * - location
867
- * - max-forwards
868
- * - proxy-authorization
869
- * - referer
870
- * - retry-after
871
- * - server
872
- * - user-agent
873
- *
874
- * @template T Expected type of decoded value
875
- * @param input Query string or URLSearchParams instance
876
- * @returns Decoded headers object
877
- *
878
- * @author Jeongho Nam - https://github.com/samchon
879
- */
880
- declare function validateHeaders(): never;
881
416
  /**
882
417
  * Headers decoder with type validation (for express and fastify).
883
418
  *
@@ -931,24 +466,6 @@ declare function validateHeaders(): never;
931
466
  declare function validateHeaders<T extends object>(input: Record<string, string | string[] | undefined>): IValidation<Resolved<T>>;
932
467
  declare const validateHeadersPure: typeof validateHeaders;
933
468
  export { validateHeadersPure as validateHeaders };
934
- /**
935
- * > You must configure the generic argument `T`.
936
- *
937
- * URL path parameter decoder.
938
- *
939
- * `typia.http.parameter()` is a function decoding a path parameter, with automatic
940
- * type casting to the expected type. When type `T` has beeen defined as `boolean` or
941
- * `number` type, `typia.http.parameter()` will cast the value to the expected type.
942
- *
943
- * Also, `typia.http.parameter()` performs type assertion to the decoded value by
944
- * combining with {@link assert} function. Therefore, when the decoded value is not
945
- * following the `T` type, {@link TypeGuardError} would be thrown.
946
- *
947
- * @template T Expected type of decoded value
948
- * @param input Path parameter string
949
- * @returns Decoded path parameter value
950
- */
951
- declare function parameter(): never;
952
469
  /**
953
470
  * URL path parameter decoder.
954
471
  *
@@ -997,7 +514,7 @@ export { createFormDataPure as createFormData };
997
514
  *
998
515
  * @author Jeongho Nam - https://github.com/samchon
999
516
  */
1000
- declare function createAssertFormData(): never;
517
+ declare function createAssertFormData(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): never;
1001
518
  /**
1002
519
  * Creates a reusable {@link assertFormData} function.
1003
520
  *
@@ -1006,7 +523,7 @@ declare function createAssertFormData(): never;
1006
523
  *
1007
524
  * @author Jeongho Nam - https://github.com/samchon
1008
525
  */
1009
- declare function createAssertFormData<T extends object>(): (input: FormData) => T;
526
+ declare function createAssertFormData<T extends object>(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): (input: FormData) => T;
1010
527
  declare const createAssertFormDataPure: typeof createAssertFormData;
1011
528
  export { createAssertFormDataPure as createAssertFormData };
1012
529
  /**
@@ -1081,7 +598,7 @@ export { createQueryPure as createQuery };
1081
598
  *
1082
599
  * @author Jeongho Nam - https://github.com/samchon
1083
600
  */
1084
- declare function createAssertQuery(): never;
601
+ declare function createAssertQuery(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): never;
1085
602
  /**
1086
603
  * Creates a reusable {@link assertQuery} function.
1087
604
  *
@@ -1090,7 +607,7 @@ declare function createAssertQuery(): never;
1090
607
  *
1091
608
  * @author Jeongho Nam - https://github.com/samchon
1092
609
  */
1093
- declare function createAssertQuery<T extends object>(): (input: string | URLSearchParams) => T;
610
+ declare function createAssertQuery<T extends object>(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): (input: string | URLSearchParams) => T;
1094
611
  declare const createAssertQueryPure: typeof createAssertQuery;
1095
612
  export { createAssertQueryPure as createAssertQuery };
1096
613
  /**
@@ -1165,7 +682,7 @@ export { createHeadersPure as createHeaders };
1165
682
  *
1166
683
  * @author Jeongho Nam - https://github.com/samchon
1167
684
  */
1168
- declare function createAssertHeaders(): never;
685
+ declare function createAssertHeaders(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): never;
1169
686
  /**
1170
687
  * Creates a reusable {@link assertHeaders} function.
1171
688
  *
@@ -1174,7 +691,7 @@ declare function createAssertHeaders(): never;
1174
691
  *
1175
692
  * @author Jeongho Nam - https://github.com/samchon
1176
693
  */
1177
- declare function createAssertHeaders<T extends object>(): (input: Record<string, string | string[] | undefined>) => T;
694
+ declare function createAssertHeaders<T extends object>(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): (input: Record<string, string | string[] | undefined>) => T;
1178
695
  declare const createAssertHeadersPure: typeof createAssertHeaders;
1179
696
  export { createAssertHeadersPure as createAssertHeaders };
1180
697
  /**
package/lib/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}