@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/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: TA, b: TB): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB>, Record<string | symbol, unknown>>;
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: 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>>;
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: 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>>;
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 };