@optique/core 0.4.0-dev.51 → 0.4.0-dev.53
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 +2 -3
- package/dist/facade.cjs +16 -16
- package/dist/facade.js +16 -16
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/parser.cjs +90 -1
- package/dist/parser.d.cts +280 -7
- package/dist/parser.d.ts +280 -7
- package/dist/parser.js +90 -2
- package/dist/valueparser.cjs +1 -1
- package/dist/valueparser.js +1 -1
- package/package.json +1 -1
package/dist/parser.d.cts
CHANGED
|
@@ -400,7 +400,7 @@ declare function object<T extends {
|
|
|
400
400
|
* as the input array, where each element is the result of the
|
|
401
401
|
* corresponding parser.
|
|
402
402
|
*/
|
|
403
|
-
declare function tuple<T extends readonly Parser<unknown, unknown>[]>(parsers: T): Parser<{ readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
403
|
+
declare function tuple<const T extends readonly Parser<unknown, unknown>[]>(parsers: T): Parser<{ readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
404
404
|
/**
|
|
405
405
|
* Creates a labeled parser that combines multiple parsers into a sequential
|
|
406
406
|
* tuple parser with an associated label for documentation or error reporting.
|
|
@@ -413,7 +413,7 @@ declare function tuple<T extends readonly Parser<unknown, unknown>[]>(parsers: T
|
|
|
413
413
|
* as the input array, where each element is the result of the
|
|
414
414
|
* corresponding parser.
|
|
415
415
|
*/
|
|
416
|
-
declare function tuple<T extends readonly Parser<unknown, unknown>[]>(label: string, parsers: T): Parser<{ readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
416
|
+
declare function tuple<const T extends readonly Parser<unknown, unknown>[]>(label: string, parsers: T): Parser<{ readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
417
417
|
/**
|
|
418
418
|
* Creates a parser that combines two mutually exclusive parsers into one.
|
|
419
419
|
* The resulting parser will try each of the provided parsers in order,
|
|
@@ -739,7 +739,7 @@ declare function longestMatch<TA, TB, TC, TD, TE, TStateA, TStateB, TStateC, TSt
|
|
|
739
739
|
* Helper type to check if all members of a union are object-like.
|
|
740
740
|
* This allows merge() to work with parsers like withDefault() that produce union types.
|
|
741
741
|
*/
|
|
742
|
-
type AllObjectLike<T> = T extends Record<string | symbol, unknown> ? T : never;
|
|
742
|
+
type AllObjectLike<T> = T extends readonly unknown[] ? never : T extends Record<string | symbol, unknown> ? T : never;
|
|
743
743
|
/**
|
|
744
744
|
* Helper type to extract object-like types from parser value types,
|
|
745
745
|
* including union types where all members are objects.
|
|
@@ -758,7 +758,24 @@ type ExtractObjectTypes<P> = P extends Parser<infer V, unknown> ? [AllObjectLike
|
|
|
758
758
|
* @return A new {@link object} parser that combines the values and states
|
|
759
759
|
* of the two parsers into a single object.
|
|
760
760
|
*/
|
|
761
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>>(a:
|
|
761
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>>(a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB): Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB>, Record<string | symbol, unknown>>;
|
|
762
|
+
/**
|
|
763
|
+
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
764
|
+
* with a label for documentation and help text organization.
|
|
765
|
+
* It is useful for combining multiple {@link object} parsers so that
|
|
766
|
+
* the unified parser produces a single object containing all the values
|
|
767
|
+
* from the individual parsers while separating the fields into multiple
|
|
768
|
+
* groups.
|
|
769
|
+
* @template TA The type of the first parser.
|
|
770
|
+
* @template TB The type of the second parser.
|
|
771
|
+
* @param label A descriptive label for this merged group, used for
|
|
772
|
+
* documentation and help messages.
|
|
773
|
+
* @param a The first {@link object} parser to merge.
|
|
774
|
+
* @param b The second {@link object} parser to merge.
|
|
775
|
+
* @return A new {@link object} parser that combines the values and states
|
|
776
|
+
* of the two parsers into a single object.
|
|
777
|
+
*/
|
|
778
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>>(label: string, a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB): Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB>, Record<string | symbol, unknown>>;
|
|
762
779
|
/**
|
|
763
780
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
764
781
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -774,7 +791,26 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
774
791
|
* @return A new {@link object} parser that combines the values and states
|
|
775
792
|
* of the two parsers into a single object.
|
|
776
793
|
*/
|
|
777
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>>(a:
|
|
794
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>>(a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB, c: ExtractObjectTypes<TC> extends never ? never : TC): Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC>, Record<string | symbol, unknown>>;
|
|
795
|
+
/**
|
|
796
|
+
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
797
|
+
* with a label for documentation and help text organization.
|
|
798
|
+
* It is useful for combining multiple {@link object} parsers so that
|
|
799
|
+
* the unified parser produces a single object containing all the values
|
|
800
|
+
* from the individual parsers while separating the fields into multiple
|
|
801
|
+
* groups.
|
|
802
|
+
* @template TA The type of the first parser.
|
|
803
|
+
* @template TB The type of the second parser.
|
|
804
|
+
* @template TC The type of the third parser.
|
|
805
|
+
* @param label A descriptive label for this merged group, used for
|
|
806
|
+
* documentation and help messages.
|
|
807
|
+
* @param a The first {@link object} parser to merge.
|
|
808
|
+
* @param b The second {@link object} parser to merge.
|
|
809
|
+
* @param c The third {@link object} parser to merge.
|
|
810
|
+
* @return A new {@link object} parser that combines the values and states
|
|
811
|
+
* of the two parsers into a single object.
|
|
812
|
+
*/
|
|
813
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC>, Record<string | symbol, unknown>>;
|
|
778
814
|
/**
|
|
779
815
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
780
816
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -793,6 +829,27 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
793
829
|
* of the two parsers into a single object.
|
|
794
830
|
*/
|
|
795
831
|
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD>, Record<string | symbol, unknown>>;
|
|
832
|
+
/**
|
|
833
|
+
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
834
|
+
* with a label for documentation and help text organization.
|
|
835
|
+
* It is useful for combining multiple {@link object} parsers so that
|
|
836
|
+
* the unified parser produces a single object containing all the values
|
|
837
|
+
* from the individual parsers while separating the fields into multiple
|
|
838
|
+
* groups.
|
|
839
|
+
* @template TA The type of the first parser.
|
|
840
|
+
* @template TB The type of the second parser.
|
|
841
|
+
* @template TC The type of the third parser.
|
|
842
|
+
* @template TD The type of the fourth parser.
|
|
843
|
+
* @param label A descriptive label for this merged group, used for
|
|
844
|
+
* documentation and help messages.
|
|
845
|
+
* @param a The first {@link object} parser to merge.
|
|
846
|
+
* @param b The second {@link object} parser to merge.
|
|
847
|
+
* @param c The third {@link object} parser to merge.
|
|
848
|
+
* @param d The fourth {@link object} parser to merge.
|
|
849
|
+
* @return A new {@link object} parser that combines the values and states
|
|
850
|
+
* of the two parsers into a single object.
|
|
851
|
+
*/
|
|
852
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD>, Record<string | symbol, unknown>>;
|
|
796
853
|
/**
|
|
797
854
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
798
855
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -812,7 +869,30 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
812
869
|
* @return A new {@link object} parser that combines the values and states
|
|
813
870
|
* of the two parsers into a single object.
|
|
814
871
|
*/
|
|
815
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>>(a:
|
|
872
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>>(a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB, c: ExtractObjectTypes<TC> extends never ? never : TC, d: ExtractObjectTypes<TD> extends never ? never : TD, e: ExtractObjectTypes<TE> extends never ? never : TE): Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE>, Record<string | symbol, unknown>>;
|
|
873
|
+
/**
|
|
874
|
+
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
875
|
+
* with a label for documentation and help text organization.
|
|
876
|
+
* It is useful for combining multiple {@link object} parsers so that
|
|
877
|
+
* the unified parser produces a single object containing all the values
|
|
878
|
+
* from the individual parsers while separating the fields into multiple
|
|
879
|
+
* groups.
|
|
880
|
+
* @template TA The type of the first parser.
|
|
881
|
+
* @template TB The type of the second parser.
|
|
882
|
+
* @template TC The type of the third parser.
|
|
883
|
+
* @template TD The type of the fourth parser.
|
|
884
|
+
* @template TE The type of the fifth parser.
|
|
885
|
+
* @param label A descriptive label for this merged group, used for
|
|
886
|
+
* documentation and help messages.
|
|
887
|
+
* @param a The first {@link object} parser to merge.
|
|
888
|
+
* @param b The second {@link object} parser to merge.
|
|
889
|
+
* @param c The third {@link object} parser to merge.
|
|
890
|
+
* @param d The fourth {@link object} parser to merge.
|
|
891
|
+
* @param e The fifth {@link object} parser to merge.
|
|
892
|
+
* @return A new {@link object} parser that combines the values and states
|
|
893
|
+
* of the two parsers into a single object.
|
|
894
|
+
*/
|
|
895
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE>, Record<string | symbol, unknown>>;
|
|
816
896
|
/**
|
|
817
897
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
818
898
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -836,6 +916,32 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
836
916
|
* @since 0.4.0
|
|
837
917
|
*/
|
|
838
918
|
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF>, Record<string | symbol, unknown>>;
|
|
919
|
+
/**
|
|
920
|
+
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
921
|
+
* with a label for documentation and help text organization.
|
|
922
|
+
* It is useful for combining multiple {@link object} parsers so that
|
|
923
|
+
* the unified parser produces a single object containing all the values
|
|
924
|
+
* from the individual parsers while separating the fields into multiple
|
|
925
|
+
* groups.
|
|
926
|
+
* @template TA The type of the first parser.
|
|
927
|
+
* @template TB The type of the second parser.
|
|
928
|
+
* @template TC The type of the third parser.
|
|
929
|
+
* @template TD The type of the fourth parser.
|
|
930
|
+
* @template TE The type of the fifth parser.
|
|
931
|
+
* @template TF The type of the sixth parser.
|
|
932
|
+
* @param label A descriptive label for this merged group, used for
|
|
933
|
+
* documentation and help messages.
|
|
934
|
+
* @param a The first {@link object} parser to merge.
|
|
935
|
+
* @param b The second {@link object} parser to merge.
|
|
936
|
+
* @param c The third {@link object} parser to merge.
|
|
937
|
+
* @param d The fourth {@link object} parser to merge.
|
|
938
|
+
* @param e The fifth {@link object} parser to merge.
|
|
939
|
+
* @param f The sixth {@link object} parser to merge.
|
|
940
|
+
* @return A new {@link object} parser that combines the values and states
|
|
941
|
+
* of the parsers into a single object.
|
|
942
|
+
* @since 0.4.0
|
|
943
|
+
*/
|
|
944
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF>, Record<string | symbol, unknown>>;
|
|
839
945
|
/**
|
|
840
946
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
841
947
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -861,6 +967,34 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
861
967
|
* @since 0.4.0
|
|
862
968
|
*/
|
|
863
969
|
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG>, Record<string | symbol, unknown>>;
|
|
970
|
+
/**
|
|
971
|
+
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
972
|
+
* with a label for documentation and help text organization.
|
|
973
|
+
* It is useful for combining multiple {@link object} parsers so that
|
|
974
|
+
* the unified parser produces a single object containing all the values
|
|
975
|
+
* from the individual parsers while separating the fields into multiple
|
|
976
|
+
* groups.
|
|
977
|
+
* @template TA The type of the first parser.
|
|
978
|
+
* @template TB The type of the second parser.
|
|
979
|
+
* @template TC The type of the third parser.
|
|
980
|
+
* @template TD The type of the fourth parser.
|
|
981
|
+
* @template TE The type of the fifth parser.
|
|
982
|
+
* @template TF The type of the sixth parser.
|
|
983
|
+
* @template TG The type of the seventh parser.
|
|
984
|
+
* @param label A descriptive label for this merged group, used for
|
|
985
|
+
* documentation and help messages.
|
|
986
|
+
* @param a The first {@link object} parser to merge.
|
|
987
|
+
* @param b The second {@link object} parser to merge.
|
|
988
|
+
* @param c The third {@link object} parser to merge.
|
|
989
|
+
* @param d The fourth {@link object} parser to merge.
|
|
990
|
+
* @param e The fifth {@link object} parser to merge.
|
|
991
|
+
* @param f The sixth {@link object} parser to merge.
|
|
992
|
+
* @param g The seventh {@link object} parser to merge.
|
|
993
|
+
* @return A new {@link object} parser that combines the values and states
|
|
994
|
+
* of the parsers into a single object.
|
|
995
|
+
* @since 0.4.0
|
|
996
|
+
*/
|
|
997
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG>, Record<string | symbol, unknown>>;
|
|
864
998
|
/**
|
|
865
999
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
866
1000
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -888,6 +1022,36 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
888
1022
|
* @since 0.4.0
|
|
889
1023
|
*/
|
|
890
1024
|
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH>, Record<string | symbol, unknown>>;
|
|
1025
|
+
/**
|
|
1026
|
+
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
1027
|
+
* with a label for documentation and help text organization.
|
|
1028
|
+
* It is useful for combining multiple {@link object} parsers so that
|
|
1029
|
+
* the unified parser produces a single object containing all the values
|
|
1030
|
+
* from the individual parsers while separating the fields into multiple
|
|
1031
|
+
* groups.
|
|
1032
|
+
* @template TA The type of the first parser.
|
|
1033
|
+
* @template TB The type of the second parser.
|
|
1034
|
+
* @template TC The type of the third parser.
|
|
1035
|
+
* @template TD The type of the fourth parser.
|
|
1036
|
+
* @template TE The type of the fifth parser.
|
|
1037
|
+
* @template TF The type of the sixth parser.
|
|
1038
|
+
* @template TG The type of the seventh parser.
|
|
1039
|
+
* @template TH The type of the eighth parser.
|
|
1040
|
+
* @param label A descriptive label for this merged group, used for
|
|
1041
|
+
* documentation and help messages.
|
|
1042
|
+
* @param a The first {@link object} parser to merge.
|
|
1043
|
+
* @param b The second {@link object} parser to merge.
|
|
1044
|
+
* @param c The third {@link object} parser to merge.
|
|
1045
|
+
* @param d The fourth {@link object} parser to merge.
|
|
1046
|
+
* @param e The fifth {@link object} parser to merge.
|
|
1047
|
+
* @param f The sixth {@link object} parser to merge.
|
|
1048
|
+
* @param g The seventh {@link object} parser to merge.
|
|
1049
|
+
* @param h The eighth {@link object} parser to merge.
|
|
1050
|
+
* @return A new {@link object} parser that combines the values and states
|
|
1051
|
+
* of the parsers into a single object.
|
|
1052
|
+
* @since 0.4.0
|
|
1053
|
+
*/
|
|
1054
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH>, Record<string | symbol, unknown>>;
|
|
891
1055
|
/**
|
|
892
1056
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
893
1057
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -917,6 +1081,38 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
917
1081
|
* @since 0.4.0
|
|
918
1082
|
*/
|
|
919
1083
|
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>, TI extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI>, Record<string | symbol, unknown>>;
|
|
1084
|
+
/**
|
|
1085
|
+
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
1086
|
+
* with a label for documentation and help text organization.
|
|
1087
|
+
* It is useful for combining multiple {@link object} parsers so that
|
|
1088
|
+
* the unified parser produces a single object containing all the values
|
|
1089
|
+
* from the individual parsers while separating the fields into multiple
|
|
1090
|
+
* groups.
|
|
1091
|
+
* @template TA The type of the first parser.
|
|
1092
|
+
* @template TB The type of the second parser.
|
|
1093
|
+
* @template TC The type of the third parser.
|
|
1094
|
+
* @template TD The type of the fourth parser.
|
|
1095
|
+
* @template TE The type of the fifth parser.
|
|
1096
|
+
* @template TF The type of the sixth parser.
|
|
1097
|
+
* @template TG The type of the seventh parser.
|
|
1098
|
+
* @template TH The type of the eighth parser.
|
|
1099
|
+
* @template TI The type of the ninth parser.
|
|
1100
|
+
* @param label A descriptive label for this merged group, used for
|
|
1101
|
+
* documentation and help messages.
|
|
1102
|
+
* @param a The first {@link object} parser to merge.
|
|
1103
|
+
* @param b The second {@link object} parser to merge.
|
|
1104
|
+
* @param c The third {@link object} parser to merge.
|
|
1105
|
+
* @param d The fourth {@link object} parser to merge.
|
|
1106
|
+
* @param e The fifth {@link object} parser to merge.
|
|
1107
|
+
* @param f The sixth {@link object} parser to merge.
|
|
1108
|
+
* @param g The seventh {@link object} parser to merge.
|
|
1109
|
+
* @param h The eighth {@link object} parser to merge.
|
|
1110
|
+
* @param i The ninth {@link object} parser to merge.
|
|
1111
|
+
* @return A new {@link object} parser that combines the values and states
|
|
1112
|
+
* of the parsers into a single object.
|
|
1113
|
+
* @since 0.4.0
|
|
1114
|
+
*/
|
|
1115
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>, TI extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI>, Record<string | symbol, unknown>>;
|
|
920
1116
|
/**
|
|
921
1117
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
922
1118
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -948,6 +1144,40 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
948
1144
|
* @since 0.4.0
|
|
949
1145
|
*/
|
|
950
1146
|
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>, TI extends Parser<unknown, unknown>, TJ extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI, j: TJ): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : ExtractObjectTypes<TJ> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI> & ExtractObjectTypes<TJ>, Record<string | symbol, unknown>>;
|
|
1147
|
+
/**
|
|
1148
|
+
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
1149
|
+
* with a label for documentation and help text organization.
|
|
1150
|
+
* It is useful for combining multiple {@link object} parsers so that
|
|
1151
|
+
* the unified parser produces a single object containing all the values
|
|
1152
|
+
* from the individual parsers while separating the fields into multiple
|
|
1153
|
+
* groups.
|
|
1154
|
+
* @template TA The type of the first parser.
|
|
1155
|
+
* @template TB The type of the second parser.
|
|
1156
|
+
* @template TC The type of the third parser.
|
|
1157
|
+
* @template TD The type of the fourth parser.
|
|
1158
|
+
* @template TE The type of the fifth parser.
|
|
1159
|
+
* @template TF The type of the sixth parser.
|
|
1160
|
+
* @template TG The type of the seventh parser.
|
|
1161
|
+
* @template TH The type of the eighth parser.
|
|
1162
|
+
* @template TI The type of the ninth parser.
|
|
1163
|
+
* @template TJ The type of the tenth parser.
|
|
1164
|
+
* @param label A descriptive label for this merged group, used for
|
|
1165
|
+
* documentation and help messages.
|
|
1166
|
+
* @param a The first {@link object} parser to merge.
|
|
1167
|
+
* @param b The second {@link object} parser to merge.
|
|
1168
|
+
* @param c The third {@link object} parser to merge.
|
|
1169
|
+
* @param d The fourth {@link object} parser to merge.
|
|
1170
|
+
* @param e The fifth {@link object} parser to merge.
|
|
1171
|
+
* @param f The sixth {@link object} parser to merge.
|
|
1172
|
+
* @param g The seventh {@link object} parser to merge.
|
|
1173
|
+
* @param h The eighth {@link object} parser to merge.
|
|
1174
|
+
* @param i The ninth {@link object} parser to merge.
|
|
1175
|
+
* @param j The tenth {@link object} parser to merge.
|
|
1176
|
+
* @return A new {@link object} parser that combines the values and states
|
|
1177
|
+
* of the parsers into a single object.
|
|
1178
|
+
* @since 0.4.0
|
|
1179
|
+
*/
|
|
1180
|
+
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>, TI extends Parser<unknown, unknown>, TJ extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI, j: TJ): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : ExtractObjectTypes<TJ> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI> & ExtractObjectTypes<TJ>, Record<string | symbol, unknown>>;
|
|
951
1181
|
/**
|
|
952
1182
|
* Concatenates two {@link tuple} parsers into a single parser that produces
|
|
953
1183
|
* a flattened tuple containing the values from both parsers in order.
|
|
@@ -1123,6 +1353,49 @@ type Result<T> = {
|
|
|
1123
1353
|
* failure.
|
|
1124
1354
|
*/
|
|
1125
1355
|
declare function parse<T>(parser: Parser<T, unknown>, args: readonly string[]): Result<T>;
|
|
1356
|
+
/**
|
|
1357
|
+
* Wraps a parser with a group label for documentation purposes.
|
|
1358
|
+
*
|
|
1359
|
+
* The `group()` function is a documentation-only wrapper that applies a label
|
|
1360
|
+
* to any parser for help text organization. This allows you to use clean code
|
|
1361
|
+
* structure with combinators like {@link merge} while maintaining well-organized
|
|
1362
|
+
* help text through group labeling.
|
|
1363
|
+
*
|
|
1364
|
+
* The wrapped parser has identical parsing behavior but generates documentation
|
|
1365
|
+
* fragments wrapped in a labeled section. This is particularly useful when
|
|
1366
|
+
* combining parsers using {@link merge}—you can wrap the merged result with
|
|
1367
|
+
* `group()` to add a section header in help output.
|
|
1368
|
+
*
|
|
1369
|
+
* @example
|
|
1370
|
+
* ```typescript
|
|
1371
|
+
* const apiOptions = merge(
|
|
1372
|
+
* object({ endpoint: option("--endpoint", string()) }),
|
|
1373
|
+
* object({ timeout: option("--timeout", integer()) })
|
|
1374
|
+
* );
|
|
1375
|
+
*
|
|
1376
|
+
* const groupedApiOptions = group("API Options", apiOptions);
|
|
1377
|
+
* // Now produces a labeled "API Options" section in help text
|
|
1378
|
+
* ```
|
|
1379
|
+
*
|
|
1380
|
+
* @example
|
|
1381
|
+
* ```typescript
|
|
1382
|
+
* // Can be used with any parser, not just merge()
|
|
1383
|
+
* const verboseGroup = group("Verbosity", object({
|
|
1384
|
+
* verbose: option("-v", "--verbose"),
|
|
1385
|
+
* quiet: option("-q", "--quiet")
|
|
1386
|
+
* }));
|
|
1387
|
+
* ```
|
|
1388
|
+
*
|
|
1389
|
+
* @template TValue The value type of the wrapped parser.
|
|
1390
|
+
* @template TState The state type of the wrapped parser.
|
|
1391
|
+
* @param label A descriptive label for this parser group, used for
|
|
1392
|
+
* documentation and help text organization.
|
|
1393
|
+
* @param parser The parser to wrap with a group label.
|
|
1394
|
+
* @returns A new parser that behaves identically to the input parser
|
|
1395
|
+
* but generates documentation within a labeled section.
|
|
1396
|
+
* @since 0.4.0
|
|
1397
|
+
*/
|
|
1398
|
+
declare function group<TValue, TState>(label: string, parser: Parser<TValue, TState>): Parser<TValue, TState>;
|
|
1126
1399
|
/**
|
|
1127
1400
|
* Generates a documentation page for a parser based on its current state after
|
|
1128
1401
|
* attempting to parse the provided arguments. This function is useful for
|
|
@@ -1158,4 +1431,4 @@ declare function parse<T>(parser: Parser<T, unknown>, args: readonly string[]):
|
|
|
1158
1431
|
*/
|
|
1159
1432
|
declare function getDocPage(parser: Parser<unknown, unknown>, args?: readonly string[]): DocPage | undefined;
|
|
1160
1433
|
//#endregion
|
|
1161
|
-
export { ArgumentOptions, CommandOptions, DocState, FlagOptions, InferValue, MultipleOptions, OptionOptions, Parser, ParserContext, ParserResult, Result, argument, command, concat, constant, flag, getDocPage, longestMatch, map, merge, multiple, object, option, optional, or, parse, tuple, withDefault };
|
|
1434
|
+
export { ArgumentOptions, CommandOptions, DocState, FlagOptions, InferValue, MultipleOptions, OptionOptions, Parser, ParserContext, ParserResult, Result, argument, command, concat, constant, flag, getDocPage, group, longestMatch, map, merge, multiple, object, option, optional, or, parse, tuple, withDefault };
|