@xylabs/zod 5.0.80 → 5.0.81

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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @xylabs/object
1
+ # @xylabs/zod
2
2
 
3
3
  [![logo][]](https://xylabs.com)
4
4
 
@@ -17,1800 +17,462 @@ Base functionality used throughout XY Labs TypeScript/JavaScript libraries
17
17
 
18
18
  ## Reference
19
19
 
20
- **@xylabs/object**
20
+ **@xylabs/zod**
21
21
 
22
22
  ***
23
23
 
24
- ## Classes
25
-
26
- - [IsObjectFactory](#classes/IsObjectFactory)
27
- - [ObjectWrapper](#classes/ObjectWrapper)
28
- - [ValidatorBase](#classes/ValidatorBase)
29
-
30
- ## Interfaces
31
-
32
- - [ObjectTypeConfig](#interfaces/ObjectTypeConfig)
33
- - [Validator](#interfaces/Validator)
34
- - [TypeCheckConfig](#interfaces/TypeCheckConfig)
35
- - [TypeCheckRequiredConfig](#interfaces/TypeCheckRequiredConfig)
36
- - [TypeCheckOptionalConfig](#interfaces/TypeCheckOptionalConfig)
37
-
38
- ## Type Aliases
39
-
40
- - [EmptyObject](#type-aliases/EmptyObject)
41
- - [EmptyObjectOf](#type-aliases/EmptyObjectOf)
42
- - [JsonValue](#type-aliases/JsonValue)
43
- - [JsonObject](#type-aliases/JsonObject)
44
- - [JsonArray](#type-aliases/JsonArray)
45
- - [OmitStartsWith](#type-aliases/OmitStartsWith)
46
- - [DeepOmitStartsWith](#type-aliases/DeepOmitStartsWith)
47
- - [DeepRestrictToStringKeys](#type-aliases/DeepRestrictToStringKeys)
48
- - [Optional](#type-aliases/Optional)
49
- - [Override](#type-aliases/Override)
50
- - [~~PartialRecord~~](#type-aliases/PartialRecord)
51
- - [PickStartsWith](#type-aliases/PickStartsWith)
52
- - [DeepPickStartsWith](#type-aliases/DeepPickStartsWith)
53
- - [StringKeyObject](#type-aliases/StringKeyObject)
54
- - [WithAdditional](#type-aliases/WithAdditional)
55
- - [OmitByPredicate](#type-aliases/OmitByPredicate)
56
- - [PickByPredicate](#type-aliases/PickByPredicate)
57
- - [AnyObject](#type-aliases/AnyObject)
58
- - [AsTypeFunction](#type-aliases/AsTypeFunction)
59
- - [AsOptionalTypeFunction](#type-aliases/AsOptionalTypeFunction)
60
- - [Compare](#type-aliases/Compare)
61
- - [StringOrAlertFunction](#type-aliases/StringOrAlertFunction)
62
- - [TypeCheck](#type-aliases/TypeCheck)
63
-
64
- ## Variables
65
-
66
- - [AsObjectFactory](#variables/AsObjectFactory)
67
- - [AsTypeFactory](#variables/AsTypeFactory)
68
- - [asAnyObject](#variables/asAnyObject)
69
- - [deepMerge](#variables/deepMerge)
70
-
71
- ## Functions
72
-
73
- - [isJsonValue](#functions/isJsonValue)
74
- - [isJsonArray](#functions/isJsonArray)
75
- - [isValidJsonFieldPair](#functions/isValidJsonFieldPair)
76
- - [isJsonObject](#functions/isJsonObject)
77
- - [createDeepMerge](#functions/createDeepMerge)
78
- - [isObject](#functions/isObject)
79
- - [isType](#functions/isType)
80
- - [omitBy](#functions/omitBy)
81
- - [omitByPrefix](#functions/omitByPrefix)
82
- - [pickBy](#functions/pickBy)
83
- - [pickByPrefix](#functions/pickByPrefix)
84
- - [removeFields](#functions/removeFields)
85
- - [toJsonArray](#functions/toJsonArray)
86
- - [toJsonObject](#functions/toJsonObject)
87
- - [toJsonValue](#functions/toJsonValue)
88
- - [toJsonString](#functions/toJsonString)
89
- - [toJson](#functions/toJson)
90
-
91
- ### classes
92
-
93
- ### <a id="IsObjectFactory"></a>IsObjectFactory
94
-
95
- [**@xylabs/object**](#../README)
96
-
97
- ***
98
-
99
- ## Type Parameters
100
-
101
- ### T
102
-
103
- `T` *extends* `TypedObject`
104
-
105
- ## Constructors
106
-
107
- ### Constructor
108
-
109
- ```ts
110
- new IsObjectFactory<T>(): IsObjectFactory<T>;
111
- ```
112
-
113
- ### Returns
114
-
115
- `IsObjectFactory`\<`T`\>
116
-
117
- ## Methods
118
-
119
- ### create()
120
-
121
- ```ts
122
- create(shape?, additionalChecks?): TypeCheck<T>;
123
- ```
124
-
125
- ### Parameters
126
-
127
- #### shape?
128
-
129
- `ObjectTypeShape`
130
-
131
- #### additionalChecks?
132
-
133
- [`TypeCheck`](#../type-aliases/TypeCheck)\<`TypedObject`\>[]
134
-
135
- ### Returns
136
-
137
- [`TypeCheck`](#../type-aliases/TypeCheck)\<`T`\>
138
-
139
- ### <a id="ObjectWrapper"></a>ObjectWrapper
140
-
141
- [**@xylabs/object**](#../README)
142
-
143
- ***
144
-
145
- ## Extended by
146
-
147
- - [`ValidatorBase`](#ValidatorBase)
148
-
149
- ## Type Parameters
150
-
151
- ### T
152
-
153
- `T` *extends* [`EmptyObject`](#../type-aliases/EmptyObject) = [`EmptyObject`](#../type-aliases/EmptyObject)
154
-
155
- ## Constructors
156
-
157
- ### Constructor
158
-
159
- ```ts
160
- new ObjectWrapper<T>(obj): ObjectWrapper<T>;
161
- ```
162
-
163
- ### Parameters
164
-
165
- #### obj
166
-
167
- `T`
168
-
169
- ### Returns
170
-
171
- `ObjectWrapper`\<`T`\>
172
-
173
- ## Properties
174
-
175
- ### obj
176
-
177
- ```ts
178
- readonly obj: T;
179
- ```
180
-
181
- ## Accessors
182
-
183
- ### stringKeyObj
184
-
185
- ### Get Signature
186
-
187
- ```ts
188
- get protected stringKeyObj(): StringKeyObject;
189
- ```
190
-
191
- #### Returns
192
-
193
- [`StringKeyObject`](#../type-aliases/StringKeyObject)
194
-
195
- ### <a id="ValidatorBase"></a>ValidatorBase
196
-
197
- [**@xylabs/object**](#../README)
198
-
199
- ***
200
-
201
- ## Extends
202
-
203
- - [`ObjectWrapper`](#ObjectWrapper)\<`Partial`\<`T`\>\>
204
-
205
- ## Type Parameters
206
-
207
- ### T
208
-
209
- `T` *extends* [`EmptyObject`](#../type-aliases/EmptyObject) = [`AnyObject`](#../type-aliases/AnyObject)
210
-
211
- ## Implements
212
-
213
- - [`Validator`](#../interfaces/Validator)\<`T`\>
214
-
215
- ## Constructors
216
-
217
- ### Constructor
218
-
219
- ```ts
220
- new ValidatorBase<T>(obj): ValidatorBase<T>;
221
- ```
222
-
223
- ### Parameters
224
-
225
- #### obj
226
-
227
- `T`
228
-
229
- ### Returns
230
-
231
- `ValidatorBase`\<`T`\>
232
-
233
- ### Inherited from
234
-
235
- [`ObjectWrapper`](#ObjectWrapper).[`constructor`](ObjectWrapper.md#constructor)
236
-
237
- ## Properties
238
-
239
- ### obj
240
-
241
- ```ts
242
- readonly obj: T;
243
- ```
244
-
245
- ### Inherited from
246
-
247
- [`ObjectWrapper`](#ObjectWrapper).[`obj`](ObjectWrapper.md#obj)
248
-
249
- ## Accessors
250
-
251
- ### stringKeyObj
252
-
253
- ### Get Signature
254
-
255
- ```ts
256
- get protected stringKeyObj(): StringKeyObject;
257
- ```
258
-
259
- #### Returns
260
-
261
- [`StringKeyObject`](#../type-aliases/StringKeyObject)
262
-
263
- ### Inherited from
264
-
265
- [`ObjectWrapper`](#ObjectWrapper).[`stringKeyObj`](ObjectWrapper.md#stringkeyobj)
266
-
267
- ## Methods
268
-
269
- ### validate()
270
-
271
- ```ts
272
- abstract validate(payload): Promisable<Error[]>;
273
- ```
274
-
275
- ### Parameters
276
-
277
- #### payload
278
-
279
- `T`
280
-
281
- ### Returns
282
-
283
- `Promisable`\<`Error`[]\>
284
-
285
- ### Implementation of
286
-
287
- [`Validator`](#../interfaces/Validator).[`validate`](../interfaces/Validator.md#validate)
288
-
289
- ### functions
290
-
291
- ### <a id="createDeepMerge"></a>createDeepMerge
292
-
293
- [**@xylabs/object**](#../README)
294
-
295
- ***
296
-
297
- ```ts
298
- function createDeepMerge(options): <T>(...objects) => MergeAll<T>;
299
- ```
300
-
301
- Creates a deep merge function with the specified options.
302
-
303
- ## Parameters
304
-
305
- ### options
306
-
307
- `MergeOptions`
308
-
309
- Options for merging.
310
-
311
- ## Returns
312
-
313
- A deep merge function configured for the specified options.
314
-
315
- ```ts
316
- <T>(...objects): MergeAll<T>;
317
- ```
318
-
319
- ### Type Parameters
320
-
321
- ### T
322
-
323
- `T` *extends* [`AnyObject`](#../type-aliases/AnyObject)[]
324
-
325
- ### Parameters
326
-
327
- ### objects
328
-
329
- ...`T`
330
-
331
- ### Returns
332
-
333
- `MergeAll`\<`T`\>
334
-
335
- ### <a id="isJsonArray"></a>isJsonArray
336
-
337
- [**@xylabs/object**](#../README)
338
-
339
- ***
340
-
341
- ```ts
342
- function isJsonArray(value): value is JsonArray;
343
- ```
344
-
345
- ## Parameters
346
-
347
- ### value
348
-
349
- `unknown`
350
-
351
- ## Returns
352
-
353
- `value is JsonArray`
354
-
355
- ### <a id="isJsonObject"></a>isJsonObject
356
-
357
- [**@xylabs/object**](#../README)
358
-
359
- ***
360
-
361
- ```ts
362
- function isJsonObject(value): value is JsonObject;
363
- ```
364
-
365
- ## Parameters
366
-
367
- ### value
368
-
369
- `unknown`
370
-
371
- ## Returns
372
-
373
- `value is JsonObject`
374
-
375
- ### <a id="isJsonValue"></a>isJsonValue
376
-
377
- [**@xylabs/object**](#../README)
378
-
379
- ***
380
-
381
- ```ts
382
- function isJsonValue(value): value is JsonValue;
383
- ```
384
-
385
- ## Parameters
386
-
387
- ### value
388
-
389
- `unknown`
390
-
391
- ## Returns
392
-
393
- `value is JsonValue`
394
-
395
- ### <a id="isObject"></a>isObject
396
-
397
- [**@xylabs/object**](#../README)
398
-
399
- ***
400
-
401
- ```ts
402
- function isObject<T>(value): value is T & object;
403
- ```
404
-
405
- ## Type Parameters
406
-
407
- ### T
408
-
409
- `T`
410
-
411
- ## Parameters
412
-
413
- ### value
414
-
415
- `T`
416
-
417
- ## Returns
418
-
419
- `value is T & object`
420
-
421
- ### <a id="isType"></a>isType
422
-
423
- [**@xylabs/object**](#../README)
424
-
425
- ***
426
-
427
- ```ts
428
- function isType(value, expectedType): boolean;
429
- ```
430
-
431
- ## Parameters
432
-
433
- ### value
434
-
435
- `unknown`
436
-
437
- ### expectedType
438
-
439
- `FieldType`
440
-
441
- ## Returns
442
-
443
- `boolean`
444
-
445
- ### <a id="isValidJsonFieldPair"></a>isValidJsonFieldPair
446
-
447
- [**@xylabs/object**](#../README)
448
-
449
- ***
450
-
451
- ```ts
452
- function isValidJsonFieldPair(__namedParameters): boolean;
453
- ```
454
-
455
- ## Parameters
456
-
457
- ### \_\_namedParameters
458
-
459
- \[`unknown`, `unknown`\]
460
-
461
- ## Returns
462
-
463
- `boolean`
464
-
465
- ### <a id="omitBy"></a>omitBy
466
-
467
- [**@xylabs/object**](#../README)
468
-
469
- ***
470
-
471
- ```ts
472
- function omitBy<T>(
473
- obj,
474
- predicate,
475
- maxDepth): Partial<T>;
476
- ```
477
-
478
- ## Type Parameters
479
-
480
- ### T
481
-
482
- `T` *extends* `object`
483
-
484
- ## Parameters
485
-
486
- ### obj
487
-
488
- `T`
489
-
490
- ### predicate
491
-
492
- [`OmitByPredicate`](#../type-aliases/OmitByPredicate)
493
-
494
- ### maxDepth
495
-
496
- `number` = `1`
497
-
498
- ## Returns
499
-
500
- `Partial`\<`T`\>
501
-
502
- ### <a id="omitByPrefix"></a>omitByPrefix
503
-
504
- [**@xylabs/object**](#../README)
505
-
506
- ***
507
-
508
- ```ts
509
- function omitByPrefix<T, P>(
510
- payload,
511
- prefix,
512
- maxDepth): DeepOmitStartsWith<T, P>;
513
- ```
514
-
515
- ## Type Parameters
516
-
517
- ### T
518
-
519
- `T` *extends* `object`
520
-
521
- ### P
522
-
523
- `P` *extends* `string`
524
-
525
- ## Parameters
526
-
527
- ### payload
528
-
529
- `T`
530
-
531
- ### prefix
532
-
533
- `P`
534
-
535
- ### maxDepth
536
-
537
- `number` = `100`
538
-
539
- ## Returns
540
-
541
- [`DeepOmitStartsWith`](#../type-aliases/DeepOmitStartsWith)\<`T`, `P`\>
542
-
543
- ### <a id="pickBy"></a>pickBy
544
-
545
- [**@xylabs/object**](#../README)
546
-
547
- ***
548
-
549
- ```ts
550
- function pickBy<T>(
551
- obj,
552
- predicate,
553
- maxDepth): Partial<T>;
554
- ```
555
-
556
- ## Type Parameters
557
-
558
- ### T
559
-
560
- `T` *extends* `object`
561
-
562
- ## Parameters
563
-
564
- ### obj
565
-
566
- `T`
567
-
568
- ### predicate
569
-
570
- [`PickByPredicate`](#../type-aliases/PickByPredicate)
571
-
572
- ### maxDepth
573
-
574
- `number` = `1`
575
-
576
- ## Returns
577
-
578
- `Partial`\<`T`\>
579
-
580
- ### <a id="pickByPrefix"></a>pickByPrefix
581
-
582
- [**@xylabs/object**](#../README)
583
-
584
- ***
585
-
586
- ```ts
587
- function pickByPrefix<T, P>(
588
- payload,
589
- prefix,
590
- maxDepth): DeepPickStartsWith<T, P>;
591
- ```
592
-
593
- ## Type Parameters
594
-
595
- ### T
596
-
597
- `T` *extends* `object`
598
-
599
- ### P
600
-
601
- `P` *extends* `string`
602
-
603
- ## Parameters
604
-
605
- ### payload
606
-
607
- `T`
608
-
609
- ### prefix
610
-
611
- `P`
612
-
613
- ### maxDepth
614
-
615
- `number` = `100`
616
-
617
- ## Returns
618
-
619
- [`DeepPickStartsWith`](#../type-aliases/DeepPickStartsWith)\<`T`, `P`\>
620
-
621
- ### <a id="removeFields"></a>removeFields
622
-
623
- [**@xylabs/object**](#../README)
624
-
625
- ***
626
-
627
- ```ts
628
- function removeFields<T, K>(obj, fields): Omit<T, K>;
629
- ```
630
-
631
- ## Type Parameters
632
-
633
- ### T
634
-
635
- `T` *extends* `object`
636
-
637
- ### K
638
-
639
- `K` *extends* `string` \| `number` \| `symbol`
640
-
641
- ## Parameters
642
-
643
- ### obj
644
-
645
- `T`
646
-
647
- ### fields
648
-
649
- `K`[]
650
-
651
- ## Returns
652
-
653
- `Omit`\<`T`, `K`\>
654
-
655
- ### <a id="toJson"></a>toJson
656
-
657
- [**@xylabs/object**](#../README)
658
-
659
- ***
660
-
661
- ```ts
662
- function toJson(value, maxDepth): JsonValue;
663
- ```
664
-
665
- ## Parameters
666
-
667
- ### value
668
-
669
- `unknown`
670
-
671
- ### maxDepth
672
-
673
- `number` = `3`
674
-
675
- ## Returns
676
-
677
- [`JsonValue`](#../type-aliases/JsonValue)
678
-
679
- ### <a id="toJsonArray"></a>toJsonArray
680
-
681
- [**@xylabs/object**](#../README)
682
-
683
- ***
684
-
685
- ```ts
686
- function toJsonArray(
687
- value,
688
- cycleList?,
689
- maxDepth?): JsonArray;
690
- ```
691
-
692
- ## Parameters
693
-
694
- ### value
695
-
696
- `unknown`[]
697
-
698
- ### cycleList?
699
-
700
- `unknown`[]
701
-
702
- ### maxDepth?
703
-
704
- `number` = `3`
705
-
706
- ## Returns
707
-
708
- [`JsonArray`](#../type-aliases/JsonArray)
709
-
710
- ### <a id="toJsonObject"></a>toJsonObject
711
-
712
- [**@xylabs/object**](#../README)
713
-
714
- ***
715
-
716
- ```ts
717
- function toJsonObject(
718
- value,
719
- cycleList?,
720
- maxDepth?): JsonObject;
721
- ```
722
-
723
- ## Parameters
724
-
725
- ### value
726
-
727
- `object`
728
-
729
- ### cycleList?
730
-
731
- `unknown`[]
732
-
733
- ### maxDepth?
734
-
735
- `number` = `3`
736
-
737
- ## Returns
738
-
739
- [`JsonObject`](#../type-aliases/JsonObject)
740
-
741
- ### <a id="toJsonString"></a>toJsonString
742
-
743
- [**@xylabs/object**](#../README)
744
-
745
- ***
746
-
747
- ```ts
748
- function toJsonString(value, maxDepth): string;
749
- ```
750
-
751
- ## Parameters
752
-
753
- ### value
754
-
755
- `unknown`
756
-
757
- ### maxDepth
758
-
759
- `number` = `3`
760
-
761
- ## Returns
762
-
763
- `string`
764
-
765
- ### <a id="toJsonValue"></a>toJsonValue
766
-
767
- [**@xylabs/object**](#../README)
768
-
769
- ***
770
-
771
- ```ts
772
- function toJsonValue(
773
- value,
774
- cycleList?,
775
- maxDepth?): JsonValue;
776
- ```
777
-
778
- ## Parameters
779
-
780
- ### value
781
-
782
- `unknown`
783
-
784
- ### cycleList?
785
-
786
- `unknown`[]
787
-
788
- ### maxDepth?
789
-
790
- `number` = `3`
791
-
792
- ## Returns
793
-
794
- [`JsonValue`](#../type-aliases/JsonValue)
795
-
796
- ### interfaces
797
-
798
- ### <a id="ObjectTypeConfig"></a>ObjectTypeConfig
799
-
800
- [**@xylabs/object**](#../README)
801
-
802
- ***
803
-
804
- ## Extends
805
-
806
- - [`TypeCheckConfig`](#TypeCheckConfig)
807
-
808
- ## Properties
809
-
810
- ### log?
811
-
812
- ```ts
813
- optional log: boolean | Logger;
814
- ```
815
-
816
- ### Inherited from
817
-
818
- [`TypeCheckConfig`](#TypeCheckConfig).[`log`](TypeCheckConfig.md#log)
819
-
820
- ### <a id="TypeCheckConfig"></a>TypeCheckConfig
821
-
822
- [**@xylabs/object**](#../README)
823
-
824
- ***
825
-
826
- ## Extended by
827
-
828
- - [`ObjectTypeConfig`](#ObjectTypeConfig)
829
- - [`TypeCheckRequiredConfig`](#TypeCheckRequiredConfig)
830
- - [`TypeCheckOptionalConfig`](#TypeCheckOptionalConfig)
831
-
832
- ## Properties
833
-
834
- ### log?
835
-
836
- ```ts
837
- optional log: boolean | Logger;
838
- ```
839
-
840
- ### <a id="TypeCheckOptionalConfig"></a>TypeCheckOptionalConfig
841
-
842
- [**@xylabs/object**](#../README)
843
-
844
- ***
845
-
846
- ## Extends
847
-
848
- - [`TypeCheckConfig`](#TypeCheckConfig)
849
-
850
- ## Properties
851
-
852
- ### log?
853
-
854
- ```ts
855
- optional log: boolean | Logger;
856
- ```
857
-
858
- ### Inherited from
859
-
860
- [`TypeCheckConfig`](#TypeCheckConfig).[`log`](TypeCheckConfig.md#log)
861
-
862
- ***
863
-
864
- ### required
865
-
866
- ```ts
867
- required: false;
868
- ```
869
-
870
- ### <a id="TypeCheckRequiredConfig"></a>TypeCheckRequiredConfig
871
-
872
- [**@xylabs/object**](#../README)
873
-
874
- ***
875
-
876
- ## Extends
877
-
878
- - [`TypeCheckConfig`](#TypeCheckConfig)
879
-
880
- ## Properties
881
-
882
- ### log?
883
-
884
- ```ts
885
- optional log: boolean | Logger;
886
- ```
887
-
888
- ### Inherited from
889
-
890
- [`TypeCheckConfig`](#TypeCheckConfig).[`log`](TypeCheckConfig.md#log)
891
-
892
- ***
893
-
894
- ### required
895
-
896
- ```ts
897
- required: true;
898
- ```
899
-
900
- ### <a id="Validator"></a>Validator
901
-
902
- [**@xylabs/object**](#../README)
903
-
904
- ***
905
-
906
- ## Type Parameters
907
-
908
- ### T
909
-
910
- `T` *extends* [`EmptyObject`](#../type-aliases/EmptyObject) = [`AnyObject`](#../type-aliases/AnyObject)
911
-
912
- ## Methods
913
-
914
- ### validate()
915
-
916
- ```ts
917
- validate(payload): Promisable<Error[]>;
918
- ```
919
-
920
- ### Parameters
921
-
922
- #### payload
923
-
924
- `T`
925
-
926
- ### Returns
927
-
928
- `Promisable`\<`Error`[]\>
929
-
930
- ### type-aliases
931
-
932
- ### <a id="AnyObject"></a>AnyObject
933
-
934
- [**@xylabs/object**](#../README)
935
-
936
- ***
937
-
938
- ```ts
939
- type AnyObject = Record<TypedKey, unknown>;
940
- ```
941
-
942
- Any object, which means that it does not enforce the set of fields that it has. Extending from AnyObject
943
- will result in a type that includes the universal set of field names
944
-
945
- ### <a id="AsOptionalTypeFunction"></a>AsOptionalTypeFunction
946
-
947
- [**@xylabs/object**](#../README)
948
-
949
- ***
950
-
951
- ```ts
952
- type AsOptionalTypeFunction<T> = <TType>(value) => undefined | TType;
953
- ```
954
-
955
- ## Type Parameters
956
-
957
- ### T
958
-
959
- `T` *extends* `AnyNonPromise` = `AnyNonPromise`
960
-
961
- ## Type Parameters
962
-
963
- ### TType
964
-
965
- `TType` *extends* `AnyNonPromise`
966
-
967
- ## Parameters
968
-
969
- ### value
970
-
971
- `AnyNonPromise`
972
-
973
- ## Returns
974
-
975
- `undefined` \| `TType`
976
-
977
- ### <a id="AsTypeFunction"></a>AsTypeFunction
978
-
979
- [**@xylabs/object**](#../README)
980
-
981
- ***
982
-
983
- ```ts
984
- type AsTypeFunction<T> = {
985
- <TType> (value): undefined | TType;
986
- <TType> (value, config): TType;
987
- <TType> (value, config): undefined | TType;
988
- <TType> (value, assert): undefined | TType;
989
- <TType> (value, assert, config): TType;
990
- <TType> (value, assert, config): undefined | TType;
991
- };
992
- ```
993
-
994
- ## Type Parameters
995
-
996
- ### T
997
-
998
- `T` *extends* `AnyNonPromise` = `AnyNonPromise`
999
-
1000
- ## Call Signature
1001
-
1002
- ```ts
1003
- <TType>(value): undefined | TType;
1004
- ```
1005
-
1006
- ### Type Parameters
1007
-
1008
- ### TType
1009
-
1010
- `TType` *extends* `AnyNonPromise`
1011
-
1012
- ### Parameters
1013
-
1014
- ### value
1015
-
1016
- `AnyNonPromise`
1017
-
1018
- ### Returns
1019
-
1020
- `undefined` \| `TType`
1021
-
1022
- ## Call Signature
1023
-
1024
- ```ts
1025
- <TType>(value, config): TType;
1026
- ```
1027
-
1028
- ### Type Parameters
1029
-
1030
- ### TType
1031
-
1032
- `TType` *extends* `AnyNonPromise`
1033
-
1034
- ### Parameters
1035
-
1036
- ### value
1037
-
1038
- `AnyNonPromise`
1039
-
1040
- ### config
1041
-
1042
- [`TypeCheckRequiredConfig`](#../interfaces/TypeCheckRequiredConfig)
1043
-
1044
- ### Returns
1045
-
1046
- `TType`
1047
-
1048
- ## Call Signature
1049
-
1050
- ```ts
1051
- <TType>(value, config): undefined | TType;
1052
- ```
1053
-
1054
- ### Type Parameters
1055
-
1056
- ### TType
1057
-
1058
- `TType` *extends* `AnyNonPromise`
1059
-
1060
- ### Parameters
1061
-
1062
- ### value
1063
-
1064
- `AnyNonPromise`
1065
-
1066
- ### config
1067
-
1068
- [`TypeCheckConfig`](#../interfaces/TypeCheckConfig) | [`TypeCheckOptionalConfig`](#../interfaces/TypeCheckOptionalConfig)
1069
-
1070
- ### Returns
1071
-
1072
- `undefined` \| `TType`
1073
-
1074
- ## Call Signature
1075
-
1076
- ```ts
1077
- <TType>(value, assert): undefined | TType;
1078
- ```
1079
-
1080
- ### Type Parameters
1081
-
1082
- ### TType
1083
-
1084
- `TType` *extends* `AnyNonPromise`
1085
-
1086
- ### Parameters
1087
-
1088
- ### value
1089
-
1090
- `AnyNonPromise`
1091
-
1092
- ### assert
1093
-
1094
- [`StringOrAlertFunction`](#StringOrAlertFunction)\<`TType`\>
1095
-
1096
- ### Returns
1097
-
1098
- `undefined` \| `TType`
1099
-
1100
- ## Call Signature
1101
-
1102
- ```ts
1103
- <TType>(
1104
- value,
1105
- assert,
1106
- config): TType;
1107
- ```
1108
-
1109
- ### Type Parameters
1110
-
1111
- ### TType
1112
-
1113
- `TType` *extends* `AnyNonPromise`
1114
-
1115
- ### Parameters
1116
-
1117
- ### value
1118
-
1119
- `AnyNonPromise`
1120
-
1121
- ### assert
1122
-
1123
- [`StringOrAlertFunction`](#StringOrAlertFunction)\<`TType`\>
1124
-
1125
- ### config
1126
-
1127
- [`TypeCheckRequiredConfig`](#../interfaces/TypeCheckRequiredConfig)
1128
-
1129
- ### Returns
1130
-
1131
- `TType`
1132
-
1133
- ## Call Signature
1134
-
1135
- ```ts
1136
- <TType>(
1137
- value,
1138
- assert,
1139
- config): undefined | TType;
1140
- ```
1141
-
1142
- ### Type Parameters
1143
-
1144
- ### TType
1145
-
1146
- `TType` *extends* `AnyNonPromise`
1147
-
1148
- ### Parameters
1149
-
1150
- ### value
1151
-
1152
- `AnyNonPromise`
1153
-
1154
- ### assert
1155
-
1156
- [`StringOrAlertFunction`](#StringOrAlertFunction)\<`TType`\>
1157
-
1158
- ### config
1159
-
1160
- [`TypeCheckConfig`](#../interfaces/TypeCheckConfig) | [`TypeCheckOptionalConfig`](#../interfaces/TypeCheckOptionalConfig)
1161
-
1162
- ### Returns
1163
-
1164
- `undefined` \| `TType`
1165
-
1166
- ### <a id="Compare"></a>Compare
1167
-
1168
- [**@xylabs/object**](#../README)
1169
-
1170
- ***
1171
-
1172
- ```ts
1173
- type Compare<T> = (a, b) => number;
1174
- ```
1175
-
1176
- ## Type Parameters
1177
-
1178
- ### T
1179
-
1180
- `T`
1181
-
1182
- ## Parameters
24
+ ## Interfaces
1183
25
 
1184
- ### a
26
+ - [ZodFactoryConfigObject](#interfaces/ZodFactoryConfigObject)
1185
27
 
1186
- `T`
28
+ ## Type Aliases
1187
29
 
1188
- ### b
30
+ - [ZodFactoryConfig](#type-aliases/ZodFactoryConfig)
31
+ - [AllZodFactories](#type-aliases/AllZodFactories)
1189
32
 
1190
- `T`
33
+ ## Functions
1191
34
 
1192
- ## Returns
35
+ - [zodAllFactory](#functions/zodAllFactory)
36
+ - [zodAsAsyncFactory](#functions/zodAsAsyncFactory)
37
+ - [zodAsFactory](#functions/zodAsFactory)
38
+ - [zodIsFactory](#functions/zodIsFactory)
39
+ - [zodToAsyncFactory](#functions/zodToAsyncFactory)
40
+ - [zodToFactory](#functions/zodToFactory)
1193
41
 
1194
- `number`
42
+ ### functions
1195
43
 
1196
- ### <a id="DeepOmitStartsWith"></a>DeepOmitStartsWith
44
+ ### <a id="zodAllFactory"></a>zodAllFactory
1197
45
 
1198
- [**@xylabs/object**](#../README)
46
+ [**@xylabs/zod**](#../README)
1199
47
 
1200
48
  ***
1201
49
 
1202
50
  ```ts
1203
- type DeepOmitStartsWith<T, Prefix> = T extends infer U[] ? DeepOmitStartsWith<U, Prefix>[] : T extends object ? { [K in keyof T as K extends string ? K extends `${Prefix}${string}` ? never : K : K]: DeepOmitStartsWith<T[K], Prefix> } : T;
51
+ function zodAllFactory<T, TName>(zod, name): object;
1204
52
  ```
1205
53
 
54
+ **`Alpha`**
55
+
1206
56
  ## Type Parameters
1207
57
 
1208
58
  ### T
1209
59
 
1210
60
  `T`
1211
61
 
1212
- ### Prefix
1213
-
1214
- `Prefix` *extends* `string`
1215
-
1216
- ### <a id="DeepPickStartsWith"></a>DeepPickStartsWith
62
+ ### TName
1217
63
 
1218
- [**@xylabs/object**](#../README)
64
+ `TName` *extends* `string`
1219
65
 
1220
- ***
66
+ ## Parameters
1221
67
 
1222
- ```ts
1223
- type DeepPickStartsWith<T, Prefix> = T extends infer U[] ? DeepPickStartsWith<U, Prefix>[] : T extends object ? { [K in keyof T as K extends string ? K extends `${Prefix}${string}` ? K : never : K]: DeepPickStartsWith<T[K], Prefix> } : T;
1224
- ```
68
+ ### zod
1225
69
 
1226
- ## Type Parameters
70
+ `ZodType`\<`T`\>
1227
71
 
1228
- ### T
72
+ ### name
1229
73
 
1230
- `T`
74
+ `TName`
1231
75
 
1232
- ### Prefix
76
+ ## Returns
1233
77
 
1234
- `Prefix` *extends* `string`
78
+ `object`
1235
79
 
1236
- ### <a id="DeepRestrictToStringKeys"></a>DeepRestrictToStringKeys
80
+ ### <a id="zodAsAsyncFactory"></a>zodAsAsyncFactory
1237
81
 
1238
- [**@xylabs/object**](#../README)
82
+ [**@xylabs/zod**](#../README)
1239
83
 
1240
84
  ***
1241
85
 
1242
86
  ```ts
1243
- type DeepRestrictToStringKeys<T> = { [K in keyof T as K extends string ? K : never]: T[K] extends (infer U)[] ? DeepRestrictToStringKeys<U>[] : T[K] extends object ? DeepRestrictToStringKeys<T[K]> : T[K] };
87
+ function zodAsAsyncFactory<TZod>(zod, name): {
88
+ <T> (value): Promise<T & TZod | undefined>;
89
+ <T> (value, assert): Promise<T & TZod>;
90
+ };
1244
91
  ```
1245
92
 
1246
93
  ## Type Parameters
1247
94
 
1248
- ### T
1249
-
1250
- `T`
1251
-
1252
- ### <a id="EmptyObject"></a>EmptyObject
1253
-
1254
- [**@xylabs/object**](#../README)
1255
-
1256
- ***
1257
-
1258
- ```ts
1259
- type EmptyObject<T> = { [K in keyof T]?: never };
1260
- ```
95
+ ### TZod
1261
96
 
1262
- An empty object, which means that it does enforce the set of field names, defaulting to an empty set until
1263
- extended from, which then adds only those additional fields
97
+ `TZod`
1264
98
 
1265
- ## Type Parameters
99
+ ## Parameters
1266
100
 
1267
- ### T
101
+ ### zod
1268
102
 
1269
- `T` *extends* `object` = `object`
103
+ `ZodType`\<`TZod`\>
1270
104
 
1271
- ### <a id="EmptyObjectOf"></a>EmptyObjectOf
105
+ ### name
1272
106
 
1273
- [**@xylabs/object**](#../README)
107
+ `string`
1274
108
 
1275
- ***
109
+ ## Returns
1276
110
 
1277
111
  ```ts
1278
- type EmptyObjectOf<T> = EmptyObject<T> extends T ? EmptyObject<T> : never;
112
+ <T>(value): Promise<T & TZod | undefined>;
1279
113
  ```
1280
114
 
1281
- ## Type Parameters
115
+ ### Type Parameters
1282
116
 
1283
117
  ### T
1284
118
 
1285
- `T` *extends* `object`
119
+ `T`
1286
120
 
1287
- ### <a id="JsonArray"></a>JsonArray
121
+ ### Parameters
1288
122
 
1289
- [**@xylabs/object**](#../README)
123
+ ### value
1290
124
 
1291
- ***
125
+ `T`
126
+
127
+ ### Returns
128
+
129
+ `Promise`\<`T` & `TZod` \| `undefined`\>
1292
130
 
1293
131
  ```ts
1294
- type JsonArray = JsonValue[];
132
+ <T>(value, assert): Promise<T & TZod>;
1295
133
  ```
1296
134
 
1297
- ### <a id="JsonObject"></a>JsonObject
135
+ ### Type Parameters
1298
136
 
1299
- [**@xylabs/object**](#../README)
137
+ ### T
1300
138
 
1301
- ***
139
+ `T`
1302
140
 
1303
- ```ts
1304
- type JsonObject = object;
1305
- ```
141
+ ### Parameters
1306
142
 
1307
- ## Index Signature
143
+ ### value
1308
144
 
1309
- ```ts
1310
- [key: string]: JsonValue
1311
- ```
145
+ `T`
1312
146
 
1313
- ### <a id="JsonValue"></a>JsonValue
147
+ ### assert
1314
148
 
1315
- [**@xylabs/object**](#../README)
149
+ [`ZodFactoryConfig`](#../type-aliases/ZodFactoryConfig)
1316
150
 
1317
- ***
151
+ ### Returns
1318
152
 
1319
- ```ts
1320
- type JsonValue =
1321
- | string
1322
- | number
1323
- | boolean
1324
- | null
1325
- | JsonObject
1326
- | JsonArray;
1327
- ```
153
+ `Promise`\<`T` & `TZod`\>
1328
154
 
1329
- ### <a id="OmitByPredicate"></a>OmitByPredicate
155
+ ### <a id="zodAsFactory"></a>zodAsFactory
1330
156
 
1331
- [**@xylabs/object**](#../README)
157
+ [**@xylabs/zod**](#../README)
1332
158
 
1333
159
  ***
1334
160
 
1335
161
  ```ts
1336
- type OmitByPredicate<T> = (value, key) => boolean;
162
+ function zodAsFactory<TZod>(zod, name): {
163
+ <T> (value): T & TZod | undefined;
164
+ <T> (value, assert): T & TZod;
165
+ };
1337
166
  ```
1338
167
 
1339
168
  ## Type Parameters
1340
169
 
1341
- ### T
170
+ ### TZod
1342
171
 
1343
- `T` *extends* [`EmptyObject`](#EmptyObject) = `Record`\<`string`, `unknown`\>
172
+ `TZod`
1344
173
 
1345
174
  ## Parameters
1346
175
 
1347
- ### value
176
+ ### zod
1348
177
 
1349
- `T`\[keyof `T`\]
178
+ `ZodType`\<`TZod`\>
1350
179
 
1351
- ### key
180
+ ### name
1352
181
 
1353
- keyof `T`
182
+ `string`
1354
183
 
1355
184
  ## Returns
1356
185
 
1357
- `boolean`
1358
-
1359
- ### <a id="OmitStartsWith"></a>OmitStartsWith
1360
-
1361
- [**@xylabs/object**](#../README)
1362
-
1363
- ***
1364
-
1365
186
  ```ts
1366
- type OmitStartsWith<T, Prefix> = { [K in keyof T as K extends `${Prefix}${string}` ? never : K]: T[K] };
187
+ <T>(value): T & TZod | undefined;
1367
188
  ```
1368
189
 
1369
- ## Type Parameters
190
+ ### Type Parameters
1370
191
 
1371
192
  ### T
1372
193
 
1373
194
  `T`
1374
195
 
1375
- ### Prefix
196
+ ### Parameters
1376
197
 
1377
- `Prefix` *extends* `string`
198
+ ### value
1378
199
 
1379
- ### <a id="Optional"></a>Optional
200
+ `T`
1380
201
 
1381
- [**@xylabs/object**](#../README)
202
+ ### Returns
1382
203
 
1383
- ***
204
+ `T` & `TZod` \| `undefined`
1384
205
 
1385
206
  ```ts
1386
- type Optional<T, F> = Omit<T, F> & Partial<Pick<T, F>>;
207
+ <T>(value, assert): T & TZod;
1387
208
  ```
1388
209
 
1389
- ## Type Parameters
210
+ ### Type Parameters
1390
211
 
1391
212
  ### T
1392
213
 
1393
- `T` *extends* `object`
1394
-
1395
- ### F
1396
-
1397
- `F` *extends* keyof `T`
1398
-
1399
- ### <a id="Override"></a>Override
1400
-
1401
- [**@xylabs/object**](#../README)
214
+ `T`
1402
215
 
1403
- ***
216
+ ### Parameters
1404
217
 
1405
- ```ts
1406
- type Override<T1, T2> = Omit<T1, keyof T2> & T2;
1407
- ```
218
+ ### value
1408
219
 
1409
- ## Type Parameters
220
+ `T`
1410
221
 
1411
- ### T1
222
+ ### assert
1412
223
 
1413
- `T1`
224
+ [`ZodFactoryConfig`](#../type-aliases/ZodFactoryConfig)
1414
225
 
1415
- ### T2
226
+ ### Returns
1416
227
 
1417
- `T2`
228
+ `T` & `TZod`
1418
229
 
1419
- ### <a id="PartialRecord"></a>PartialRecord
230
+ ### <a id="zodIsFactory"></a>zodIsFactory
1420
231
 
1421
- [**@xylabs/object**](#../README)
232
+ [**@xylabs/zod**](#../README)
1422
233
 
1423
234
  ***
1424
235
 
1425
236
  ```ts
1426
- type PartialRecord<K, T> = { [P in K]?: T };
237
+ function zodIsFactory<TZod>(zod): <T>(value) => value is T & TZod;
1427
238
  ```
1428
239
 
1429
240
  ## Type Parameters
1430
241
 
1431
- ### K
1432
-
1433
- `K` *extends* keyof `any`
1434
-
1435
- ### T
1436
-
1437
- `T`
242
+ ### TZod
1438
243
 
1439
- ## Deprecated
244
+ `TZod`
1440
245
 
1441
- use Partial<Record<>> instead
246
+ ## Parameters
1442
247
 
1443
- ### <a id="PickByPredicate"></a>PickByPredicate
248
+ ### zod
1444
249
 
1445
- [**@xylabs/object**](#../README)
250
+ `ZodType`\<`TZod`\>
1446
251
 
1447
- ***
252
+ ## Returns
1448
253
 
1449
254
  ```ts
1450
- type PickByPredicate<T> = (value, key) => boolean;
255
+ <T>(value): value is T & TZod;
1451
256
  ```
1452
257
 
1453
- ## Type Parameters
258
+ ### Type Parameters
1454
259
 
1455
260
  ### T
1456
261
 
1457
- `T` *extends* [`EmptyObject`](#EmptyObject) = `Record`\<`string`, `unknown`\>
262
+ `T`
1458
263
 
1459
- ## Parameters
264
+ ### Parameters
1460
265
 
1461
266
  ### value
1462
267
 
1463
- `T`\[keyof `T`\]
1464
-
1465
- ### key
1466
-
1467
- keyof `T`
1468
-
1469
- ## Returns
1470
-
1471
- `boolean`
1472
-
1473
- ### <a id="PickStartsWith"></a>PickStartsWith
1474
-
1475
- [**@xylabs/object**](#../README)
1476
-
1477
- ***
1478
-
1479
- ```ts
1480
- type PickStartsWith<T, Prefix> = { [K in keyof T as K extends `${Prefix}${string}` ? K : never]: T[K] };
1481
- ```
1482
-
1483
- ## Type Parameters
1484
-
1485
- ### T
1486
-
1487
268
  `T`
1488
269
 
1489
- ### Prefix
270
+ ### Returns
1490
271
 
1491
- `Prefix` *extends* `string`
272
+ `value is T & TZod`
1492
273
 
1493
- ### <a id="StringKeyObject"></a>StringKeyObject
274
+ ### <a id="zodToAsyncFactory"></a>zodToAsyncFactory
1494
275
 
1495
- [**@xylabs/object**](#../README)
276
+ [**@xylabs/zod**](#../README)
1496
277
 
1497
278
  ***
1498
279
 
1499
280
  ```ts
1500
- type StringKeyObject<T> = object;
281
+ function zodToAsyncFactory<TZod>(zod, name): {
282
+ <T> (value): Promise<T & TZod | undefined>;
283
+ <T> (value, assert): Promise<T & TZod>;
284
+ };
1501
285
  ```
1502
286
 
1503
287
  ## Type Parameters
1504
288
 
1505
- ### T
1506
-
1507
- `T` = `unknown`
1508
-
1509
- ## Index Signature
1510
-
1511
- ```ts
1512
- [key: string]: T
1513
- ```
1514
-
1515
- ### <a id="StringOrAlertFunction"></a>StringOrAlertFunction
1516
-
1517
- [**@xylabs/object**](#../README)
289
+ ### TZod
1518
290
 
1519
- ***
1520
-
1521
- ```ts
1522
- type StringOrAlertFunction<T> = string | AssertExMessageFunc<T>;
1523
- ```
291
+ `TZod`
1524
292
 
1525
- ## Type Parameters
293
+ ## Parameters
1526
294
 
1527
- ### T
295
+ ### zod
1528
296
 
1529
- `T` *extends* `AnyNonPromise`
297
+ `ZodType`\<`TZod`\>
1530
298
 
1531
- ### <a id="TypeCheck"></a>TypeCheck
299
+ ### name
1532
300
 
1533
- [**@xylabs/object**](#../README)
301
+ `string`
1534
302
 
1535
- ***
303
+ ## Returns
1536
304
 
1537
305
  ```ts
1538
- type TypeCheck<T> = {
1539
- (obj): obj is T;
1540
- (obj, config): obj is T;
1541
- (obj, config): obj is T;
1542
- };
306
+ <T>(value): Promise<T & TZod | undefined>;
1543
307
  ```
1544
308
 
1545
- ## Type Parameters
309
+ ### Type Parameters
1546
310
 
1547
311
  ### T
1548
312
 
1549
- `T` *extends* `TypedValue`
1550
-
1551
- ## Call Signature
1552
-
1553
- ```ts
1554
- (obj): obj is T;
1555
- ```
313
+ `T`
1556
314
 
1557
315
  ### Parameters
1558
316
 
1559
- ### obj
317
+ ### value
1560
318
 
1561
- `AnyNonPromise`
319
+ `T`
1562
320
 
1563
321
  ### Returns
1564
322
 
1565
- `obj is T`
1566
-
1567
- ## Call Signature
323
+ `Promise`\<`T` & `TZod` \| `undefined`\>
1568
324
 
1569
325
  ```ts
1570
- (obj, config): obj is T;
326
+ <T>(value, assert): Promise<T & TZod>;
1571
327
  ```
1572
328
 
1573
- ### Parameters
1574
-
1575
- ### obj
1576
-
1577
- `AnyNonPromise`
1578
-
1579
- ### config
1580
-
1581
- [`TypeCheckConfig`](#../interfaces/TypeCheckConfig)
1582
-
1583
- ### Returns
1584
-
1585
- `obj is T`
329
+ ### Type Parameters
1586
330
 
1587
- ## Call Signature
331
+ ### T
1588
332
 
1589
- ```ts
1590
- (obj, config): obj is T;
1591
- ```
333
+ `T`
1592
334
 
1593
335
  ### Parameters
1594
336
 
1595
- ### obj
337
+ ### value
1596
338
 
1597
- `AnyNonPromise`
339
+ `T`
1598
340
 
1599
- ### config
341
+ ### assert
1600
342
 
1601
- `undefined` | `number` | [`TypeCheckConfig`](#../interfaces/TypeCheckConfig)
343
+ [`ZodFactoryConfig`](#../type-aliases/ZodFactoryConfig)
1602
344
 
1603
345
  ### Returns
1604
346
 
1605
- `obj is T`
347
+ `Promise`\<`T` & `TZod`\>
1606
348
 
1607
- ### <a id="WithAdditional"></a>WithAdditional
349
+ ### <a id="zodToFactory"></a>zodToFactory
1608
350
 
1609
- [**@xylabs/object**](#../README)
351
+ [**@xylabs/zod**](#../README)
1610
352
 
1611
353
  ***
1612
354
 
1613
355
  ```ts
1614
- type WithAdditional<T, TAdditional> = TAdditional extends EmptyObject ? T & TAdditional : T;
356
+ function zodToFactory<TZod>(zod, name): {
357
+ <T> (value): T & TZod | undefined;
358
+ <T> (value, assert): T & TZod;
359
+ };
1615
360
  ```
1616
361
 
1617
362
  ## Type Parameters
1618
363
 
1619
- ### T
1620
-
1621
- `T` *extends* [`EmptyObject`](#EmptyObject) \| `void`
364
+ ### TZod
1622
365
 
1623
- ### TAdditional
366
+ `TZod`
1624
367
 
1625
- `TAdditional` *extends* [`EmptyObject`](#EmptyObject) \| `void` = `void`
1626
-
1627
- ### variables
1628
-
1629
- ### <a id="AsObjectFactory"></a>AsObjectFactory
368
+ ## Parameters
1630
369
 
1631
- [**@xylabs/object**](#../README)
370
+ ### zod
1632
371
 
1633
- ***
372
+ `ZodType`\<`TZod`\>
1634
373
 
1635
- ```ts
1636
- const AsObjectFactory: object;
1637
- ```
374
+ ### name
1638
375
 
1639
- ## Type declaration
376
+ `string`
1640
377
 
1641
- ### create()
378
+ ## Returns
1642
379
 
1643
380
  ```ts
1644
- create: <T>(typeCheck) => AsTypeFunction<T>;
381
+ <T>(value): T & TZod | undefined;
1645
382
  ```
1646
383
 
1647
384
  ### Type Parameters
1648
385
 
1649
- #### T
386
+ ### T
1650
387
 
1651
- `T` *extends* `TypedObject`
388
+ `T`
1652
389
 
1653
390
  ### Parameters
1654
391
 
1655
- #### typeCheck
392
+ ### value
1656
393
 
1657
- [`TypeCheck`](#../type-aliases/TypeCheck)\<`T`\>
394
+ `T`
1658
395
 
1659
396
  ### Returns
1660
397
 
1661
- [`AsTypeFunction`](#../type-aliases/AsTypeFunction)\<`T`\>
1662
-
1663
- ### createOptional()
398
+ `T` & `TZod` \| `undefined`
1664
399
 
1665
400
  ```ts
1666
- createOptional: <T>(typeCheck) => (value) => undefined | T;
401
+ <T>(value, assert): T & TZod;
1667
402
  ```
1668
403
 
1669
404
  ### Type Parameters
1670
405
 
1671
- #### T
406
+ ### T
1672
407
 
1673
- `T` *extends* `TypedObject`
408
+ `T`
1674
409
 
1675
410
  ### Parameters
1676
411
 
1677
- #### typeCheck
1678
-
1679
- [`TypeCheck`](#../type-aliases/TypeCheck)\<`T`\>
1680
-
1681
- ### Returns
412
+ ### value
1682
413
 
1683
- ```ts
1684
- (value): undefined | T;
1685
- ```
414
+ `T`
1686
415
 
1687
- #### Parameters
416
+ ### assert
1688
417
 
1689
- ##### value
418
+ [`ZodFactoryConfig`](#../type-aliases/ZodFactoryConfig)
1690
419
 
1691
- `AnyNonPromise`
420
+ ### Returns
1692
421
 
1693
- #### Returns
422
+ `T` & `TZod`
1694
423
 
1695
- `undefined` \| `T`
424
+ ### interfaces
1696
425
 
1697
- ### <a id="AsTypeFactory"></a>AsTypeFactory
426
+ ### <a id="ZodFactoryConfigObject"></a>ZodFactoryConfigObject
1698
427
 
1699
- [**@xylabs/object**](#../README)
428
+ [**@xylabs/zod**](#../README)
1700
429
 
1701
430
  ***
1702
431
 
1703
- ```ts
1704
- const AsTypeFactory: object;
1705
- ```
1706
-
1707
- ## Type declaration
1708
-
1709
- ### create()
1710
-
1711
- ```ts
1712
- create: <T>(typeCheck) => AsTypeFunction<T>;
1713
- ```
1714
-
1715
- ### Type Parameters
1716
-
1717
- #### T
1718
-
1719
- `T` *extends* `AnyNonPromise`
1720
-
1721
- ### Parameters
1722
-
1723
- #### typeCheck
1724
-
1725
- [`TypeCheck`](#../type-aliases/TypeCheck)\<`T`\>
1726
-
1727
- ### Returns
1728
-
1729
- [`AsTypeFunction`](#../type-aliases/AsTypeFunction)\<`T`\>
432
+ ## Properties
1730
433
 
1731
- ### createOptional()
434
+ ### name
1732
435
 
1733
436
  ```ts
1734
- createOptional: <T>(typeCheck) => (value) => undefined | T;
437
+ name: string;
1735
438
  ```
1736
439
 
1737
- ### Type Parameters
1738
-
1739
- #### T
1740
-
1741
- `T` *extends* `AnyNonPromise`
1742
-
1743
- ### Parameters
440
+ ### type-aliases
1744
441
 
1745
- #### typeCheck
442
+ ### <a id="AllZodFactories"></a>AllZodFactories
1746
443
 
1747
- [`TypeCheck`](#../type-aliases/TypeCheck)\<`T`\>
444
+ [**@xylabs/zod**](#../README)
1748
445
 
1749
- ### Returns
446
+ ***
1750
447
 
1751
448
  ```ts
1752
- (value): undefined | T;
449
+ type AllZodFactories<TType, TName> = { [K in `is${TName}`]: ReturnType<typeof zodIsFactory> } & { [K in `as${TName}`]: ReturnType<typeof zodAsFactory> } & { [K in `to${TName}`]: ReturnType<typeof zodToFactory> };
1753
450
  ```
1754
451
 
1755
- #### Parameters
452
+ **`Alpha`**
1756
453
 
1757
- ##### value
1758
-
1759
- `AnyNonPromise`
1760
-
1761
- #### Returns
1762
-
1763
- `undefined` \| `T`
454
+ ## Type Parameters
1764
455
 
1765
- ### <a id="asAnyObject"></a>asAnyObject
456
+ ### TType
1766
457
 
1767
- [**@xylabs/object**](#../README)
458
+ `TType`
1768
459
 
1769
- ***
460
+ ### TName
1770
461
 
1771
- ```ts
1772
- const asAnyObject: AsTypeFunction<AnyObject>;
1773
- ```
462
+ `TName` *extends* `string`
1774
463
 
1775
- ### <a id="deepMerge"></a>deepMerge
464
+ ### <a id="ZodFactoryConfig"></a>ZodFactoryConfig
1776
465
 
1777
- [**@xylabs/object**](#../README)
466
+ [**@xylabs/zod**](#../README)
1778
467
 
1779
468
  ***
1780
469
 
1781
470
  ```ts
1782
- const deepMerge: <T>(...objects) => MergeAll<T>;
471
+ type ZodFactoryConfig =
472
+ | AssertConfig
473
+ | ZodFactoryConfigObject;
1783
474
  ```
1784
475
 
1785
- Deeply merges multiple objects into a new object.
1786
-
1787
- ## Type Parameters
1788
-
1789
- ### T
1790
-
1791
- `T` *extends* [`AnyObject`](#../type-aliases/AnyObject)[]
1792
-
1793
- ## Parameters
1794
-
1795
- ### objects
1796
-
1797
- ...`T`
1798
-
1799
- Multiple objects to merge deeply.
1800
- The function merges properties from all objects into a new object.
1801
- If a property exists in multiple objects, the last object's value will be used.
1802
- If a property is an object, it will be merged recursively.
1803
- If a property is an array, it will be overwritten by the last object's value.
1804
- If a property is a primitive value, it will be overwritten by the last object's value.
1805
- If a property is undefined in the source, it will be skipped.
1806
- If a property is a symbol, it will be merged as well.
1807
-
1808
- ## Returns
1809
-
1810
- `MergeAll`\<`T`\>
1811
-
1812
- A new object with the merged properties.
1813
-
1814
476
 
1815
477
  Part of [sdk-js](https://www.npmjs.com/package/@xyo-network/sdk-js)
1816
478
 
@@ -1833,8 +495,8 @@ Part of [sdk-js](https://www.npmjs.com/package/@xyo-network/sdk-js)
1833
495
 
1834
496
  [main-build]: https://github.com/xylabs/sdk-js/actions/workflows/build.yml/badge.svg
1835
497
  [main-build-link]: https://github.com/xylabs/sdk-js/actions/workflows/build.yml
1836
- [npm-badge]: https://img.shields.io/npm/v/@xylabs/object.svg
1837
- [npm-link]: https://www.npmjs.com/package/@xylabs/object
498
+ [npm-badge]: https://img.shields.io/npm/v/@xylabs/zod.svg
499
+ [npm-link]: https://www.npmjs.com/package/@xylabs/zod
1838
500
  [codacy-badge]: https://app.codacy.com/project/badge/Grade/c8e15e14f37741c18cfb47ac7245c698
1839
501
  [codacy-link]: https://www.codacy.com/gh/xylabs/sdk-js/dashboard?utm_source=github.com&utm_medium=referral&utm_content=xylabs/sdk-js&utm_campaign=Badge_Grade
1840
502
  [codeclimate-badge]: https://api.codeclimate.com/v1/badges/c5eb068f806f0b047ea7/maintainability
@@ -1842,11 +504,11 @@ Part of [sdk-js](https://www.npmjs.com/package/@xyo-network/sdk-js)
1842
504
  [snyk-badge]: https://snyk.io/test/github/xylabs/sdk-js/badge.svg?targetFile=package.json
1843
505
  [snyk-link]: https://snyk.io/test/github/xylabs/sdk-js?targetFile=package.json
1844
506
 
1845
- [npm-downloads-badge]: https://img.shields.io/npm/dw/@xylabs/object
1846
- [npm-license-badge]: https://img.shields.io/npm/l/@xylabs/object
507
+ [npm-downloads-badge]: https://img.shields.io/npm/dw/@xylabs/zod
508
+ [npm-license-badge]: https://img.shields.io/npm/l/@xylabs/zod
1847
509
 
1848
- [jsdelivr-badge]: https://data.jsdelivr.com/v1/package/npm/@xylabs/object/badge
1849
- [jsdelivr-link]: https://www.jsdelivr.com/package/npm/@xylabs/object
510
+ [jsdelivr-badge]: https://data.jsdelivr.com/v1/package/npm/@xylabs/zod/badge
511
+ [jsdelivr-link]: https://www.jsdelivr.com/package/npm/@xylabs/zod
1850
512
 
1851
- [socket-badge]: https://socket.dev/api/badge/npm/package/@xylabs/object
1852
- [socket-link]: https://socket.dev/npm/package/@xylabs/object
513
+ [socket-badge]: https://socket.dev/api/badge/npm/package/@xylabs/zod
514
+ [socket-link]: https://socket.dev/npm/package/@xylabs/zod