@optique/core 0.4.0-dev.50 → 0.4.0-dev.52

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.cjs CHANGED
@@ -1111,7 +1111,9 @@ function longestMatch(...parsers) {
1111
1111
  }
1112
1112
  };
1113
1113
  }
1114
- function merge(...parsers) {
1114
+ function merge(...args) {
1115
+ const label = typeof args[0] === "string" ? args[0] : void 0;
1116
+ let parsers = typeof args[0] === "string" ? args.slice(1) : args;
1115
1117
  parsers = parsers.toSorted((a, b) => b.priority - a.priority);
1116
1118
  const initialState = {};
1117
1119
  for (const parser of parsers) if (parser.initialState && typeof parser.initialState === "object") for (const field in parser.initialState) initialState[field] = parser.initialState[field];
@@ -1204,6 +1206,17 @@ function merge(...parsers) {
1204
1206
  if (fragment.title == null) entries.push(...fragment.entries);
1205
1207
  else sections.push(fragment);
1206
1208
  }
1209
+ if (label) {
1210
+ const labeledSection = {
1211
+ title: label,
1212
+ entries
1213
+ };
1214
+ sections.push(labeledSection);
1215
+ return { fragments: sections.map((s) => ({
1216
+ ...s,
1217
+ type: "section"
1218
+ })) };
1219
+ }
1207
1220
  return { fragments: [...sections.map((s) => ({
1208
1221
  ...s,
1209
1222
  type: "section"
package/dist/parser.d.cts CHANGED
@@ -512,6 +512,7 @@ declare function or<TA, TB, TC, TD, TE, TStateA, TStateB, TStateC, TStateD, TSta
512
512
  * @param f The sixth {@link Parser} to try.
513
513
  * @return A {@link Parser} that tries to parse using the provided parsers
514
514
  * in order, returning the result of the first successful parser.
515
+ * @since 0.3.0
515
516
  */
516
517
  declare function or<TA, TB, TC, TD, TE, TF, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>): Parser<TA | TB | TC | TD | TE | TF, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>]>;
517
518
  /**
@@ -541,6 +542,7 @@ declare function or<TA, TB, TC, TD, TE, TF, TStateA, TStateB, TStateC, TStateD,
541
542
  * @param g The seventh {@link Parser} to try.
542
543
  * @return A {@link Parser} that tries to parse using the provided parsers
543
544
  * in order, returning the result of the first successful parser.
545
+ * @since 0.3.0
544
546
  */
545
547
  declare function or<TA, TB, TC, TD, TE, TF, TG, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>): Parser<TA | TB | TC | TD | TE | TF | TG, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>]>;
546
548
  /**
@@ -573,6 +575,7 @@ declare function or<TA, TB, TC, TD, TE, TF, TG, TStateA, TStateB, TStateC, TStat
573
575
  * @param h The eighth {@link Parser} to try.
574
576
  * @return A {@link Parser} that tries to parse using the provided parsers
575
577
  * in order, returning the result of the first successful parser.
578
+ * @since 0.3.0
576
579
  */
577
580
  declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>, h: Parser<TH, TStateH>): Parser<TA | TB | TC | TD | TE | TF | TG | TH, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>]>;
578
581
  /**
@@ -608,6 +611,7 @@ declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TStateA, TStateB, TStateC, T
608
611
  * @param i The ninth {@link Parser} to try.
609
612
  * @return A {@link Parser} that tries to parse using the provided parsers
610
613
  * in order, returning the result of the first successful parser.
614
+ * @since 0.3.0
611
615
  */
612
616
  declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TI, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH, TStateI>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>, h: Parser<TH, TStateH>, i: Parser<TI, TStateI>): Parser<TA | TB | TC | TD | TE | TF | TG | TH | TI, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>] | [8, ParserResult<TStateI>]>;
613
617
  /**
@@ -646,6 +650,7 @@ declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TI, TStateA, TStateB, TState
646
650
  * @param j The tenth {@link Parser} to try.
647
651
  * @return A {@link Parser} that tries to parse using the provided parsers
648
652
  * in order, returning the result of the first successful parser.
653
+ * @since 0.3.0
649
654
  */
650
655
  declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TI, TJ, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH, TStateI, TStateJ>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>, h: Parser<TH, TStateH>, i: Parser<TI, TStateI>, j: Parser<TJ, TStateJ>): Parser<TA | TB | TC | TD | TE | TF | TG | TH | TI | TJ, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>] | [8, ParserResult<TStateI>] | [9, ParserResult<TStateJ>]>;
651
656
  /**
@@ -754,6 +759,23 @@ type ExtractObjectTypes<P> = P extends Parser<infer V, unknown> ? [AllObjectLike
754
759
  * of the two parsers into a single object.
755
760
  */
756
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>>;
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: TA, b: TB): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB>, Record<string | symbol, unknown>>;
757
779
  /**
758
780
  * Merges multiple {@link object} parsers into a single {@link object} parser.
759
781
  * It is useful for combining multiple {@link object} parsers so that
@@ -770,6 +792,25 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
770
792
  * of the two parsers into a single object.
771
793
  */
772
794
  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>>;
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>>;
773
814
  /**
774
815
  * Merges multiple {@link object} parsers into a single {@link object} parser.
775
816
  * It is useful for combining multiple {@link object} parsers so that
@@ -788,6 +829,27 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
788
829
  * of the two parsers into a single object.
789
830
  */
790
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>>;
791
853
  /**
792
854
  * Merges multiple {@link object} parsers into a single {@link object} parser.
793
855
  * It is useful for combining multiple {@link object} parsers so that
@@ -808,6 +870,314 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
808
870
  * of the two parsers into a single object.
809
871
  */
810
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: 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>>;
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>>;
896
+ /**
897
+ * Merges multiple {@link object} parsers into a single {@link object} parser.
898
+ * It is useful for combining multiple {@link object} parsers so that
899
+ * the unified parser produces a single object containing all the values
900
+ * from the individual parsers while separating the fields into multiple
901
+ * groups.
902
+ * @template TA The type of the first parser.
903
+ * @template TB The type of the second parser.
904
+ * @template TC The type of the third parser.
905
+ * @template TD The type of the fourth parser.
906
+ * @template TE The type of the fifth parser.
907
+ * @template TF The type of the sixth parser.
908
+ * @param a The first {@link object} parser to merge.
909
+ * @param b The second {@link object} parser to merge.
910
+ * @param c The third {@link object} parser to merge.
911
+ * @param d The fourth {@link object} parser to merge.
912
+ * @param e The fifth {@link object} parser to merge.
913
+ * @param f The sixth {@link object} parser to merge.
914
+ * @return A new {@link object} parser that combines the values and states
915
+ * of the parsers into a single object.
916
+ * @since 0.4.0
917
+ */
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>>;
945
+ /**
946
+ * Merges multiple {@link object} parsers into a single {@link object} parser.
947
+ * It is useful for combining multiple {@link object} parsers so that
948
+ * the unified parser produces a single object containing all the values
949
+ * from the individual parsers while separating the fields into multiple
950
+ * groups.
951
+ * @template TA The type of the first parser.
952
+ * @template TB The type of the second parser.
953
+ * @template TC The type of the third parser.
954
+ * @template TD The type of the fourth parser.
955
+ * @template TE The type of the fifth parser.
956
+ * @template TF The type of the sixth parser.
957
+ * @template TG The type of the seventh parser.
958
+ * @param a The first {@link object} parser to merge.
959
+ * @param b The second {@link object} parser to merge.
960
+ * @param c The third {@link object} parser to merge.
961
+ * @param d The fourth {@link object} parser to merge.
962
+ * @param e The fifth {@link object} parser to merge.
963
+ * @param f The sixth {@link object} parser to merge.
964
+ * @param g The seventh {@link object} parser to merge.
965
+ * @return A new {@link object} parser that combines the values and states
966
+ * of the parsers into a single object.
967
+ * @since 0.4.0
968
+ */
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>>;
998
+ /**
999
+ * Merges multiple {@link object} parsers into a single {@link object} parser.
1000
+ * It is useful for combining multiple {@link object} parsers so that
1001
+ * the unified parser produces a single object containing all the values
1002
+ * from the individual parsers while separating the fields into multiple
1003
+ * groups.
1004
+ * @template TA The type of the first parser.
1005
+ * @template TB The type of the second parser.
1006
+ * @template TC The type of the third parser.
1007
+ * @template TD The type of the fourth parser.
1008
+ * @template TE The type of the fifth parser.
1009
+ * @template TF The type of the sixth parser.
1010
+ * @template TG The type of the seventh parser.
1011
+ * @template TH The type of the eighth parser.
1012
+ * @param a The first {@link object} parser to merge.
1013
+ * @param b The second {@link object} parser to merge.
1014
+ * @param c The third {@link object} parser to merge.
1015
+ * @param d The fourth {@link object} parser to merge.
1016
+ * @param e The fifth {@link object} parser to merge.
1017
+ * @param f The sixth {@link object} parser to merge.
1018
+ * @param g The seventh {@link object} parser to merge.
1019
+ * @param h The eighth {@link object} parser to merge.
1020
+ * @return A new {@link object} parser that combines the values and states
1021
+ * of the parsers into a single object.
1022
+ * @since 0.4.0
1023
+ */
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>>;
1055
+ /**
1056
+ * Merges multiple {@link object} parsers into a single {@link object} parser.
1057
+ * It is useful for combining multiple {@link object} parsers so that
1058
+ * the unified parser produces a single object containing all the values
1059
+ * from the individual parsers while separating the fields into multiple
1060
+ * groups.
1061
+ * @template TA The type of the first parser.
1062
+ * @template TB The type of the second parser.
1063
+ * @template TC The type of the third parser.
1064
+ * @template TD The type of the fourth parser.
1065
+ * @template TE The type of the fifth parser.
1066
+ * @template TF The type of the sixth parser.
1067
+ * @template TG The type of the seventh parser.
1068
+ * @template TH The type of the eighth parser.
1069
+ * @template TI The type of the ninth parser.
1070
+ * @param a The first {@link object} parser to merge.
1071
+ * @param b The second {@link object} parser to merge.
1072
+ * @param c The third {@link object} parser to merge.
1073
+ * @param d The fourth {@link object} parser to merge.
1074
+ * @param e The fifth {@link object} parser to merge.
1075
+ * @param f The sixth {@link object} parser to merge.
1076
+ * @param g The seventh {@link object} parser to merge.
1077
+ * @param h The eighth {@link object} parser to merge.
1078
+ * @param i The ninth {@link object} parser to merge.
1079
+ * @return A new {@link object} parser that combines the values and states
1080
+ * of the parsers into a single object.
1081
+ * @since 0.4.0
1082
+ */
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>>;
1116
+ /**
1117
+ * Merges multiple {@link object} parsers into a single {@link object} parser.
1118
+ * It is useful for combining multiple {@link object} parsers so that
1119
+ * the unified parser produces a single object containing all the values
1120
+ * from the individual parsers while separating the fields into multiple
1121
+ * groups.
1122
+ * @template TA The type of the first parser.
1123
+ * @template TB The type of the second parser.
1124
+ * @template TC The type of the third parser.
1125
+ * @template TD The type of the fourth parser.
1126
+ * @template TE The type of the fifth parser.
1127
+ * @template TF The type of the sixth parser.
1128
+ * @template TG The type of the seventh parser.
1129
+ * @template TH The type of the eighth parser.
1130
+ * @template TI The type of the ninth parser.
1131
+ * @template TJ The type of the tenth parser.
1132
+ * @param a The first {@link object} parser to merge.
1133
+ * @param b The second {@link object} parser to merge.
1134
+ * @param c The third {@link object} parser to merge.
1135
+ * @param d The fourth {@link object} parser to merge.
1136
+ * @param e The fifth {@link object} parser to merge.
1137
+ * @param f The sixth {@link object} parser to merge.
1138
+ * @param g The seventh {@link object} parser to merge.
1139
+ * @param h The eighth {@link object} parser to merge.
1140
+ * @param i The ninth {@link object} parser to merge.
1141
+ * @param j The tenth {@link object} parser to merge.
1142
+ * @return A new {@link object} parser that combines the values and states
1143
+ * of the parsers into a single object.
1144
+ * @since 0.4.0
1145
+ */
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>>;
811
1181
  /**
812
1182
  * Concatenates two {@link tuple} parsers into a single parser that produces
813
1183
  * a flattened tuple containing the values from both parsers in order.
package/dist/parser.d.ts CHANGED
@@ -512,6 +512,7 @@ declare function or<TA, TB, TC, TD, TE, TStateA, TStateB, TStateC, TStateD, TSta
512
512
  * @param f The sixth {@link Parser} to try.
513
513
  * @return A {@link Parser} that tries to parse using the provided parsers
514
514
  * in order, returning the result of the first successful parser.
515
+ * @since 0.3.0
515
516
  */
516
517
  declare function or<TA, TB, TC, TD, TE, TF, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>): Parser<TA | TB | TC | TD | TE | TF, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>]>;
517
518
  /**
@@ -541,6 +542,7 @@ declare function or<TA, TB, TC, TD, TE, TF, TStateA, TStateB, TStateC, TStateD,
541
542
  * @param g The seventh {@link Parser} to try.
542
543
  * @return A {@link Parser} that tries to parse using the provided parsers
543
544
  * in order, returning the result of the first successful parser.
545
+ * @since 0.3.0
544
546
  */
545
547
  declare function or<TA, TB, TC, TD, TE, TF, TG, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>): Parser<TA | TB | TC | TD | TE | TF | TG, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>]>;
546
548
  /**
@@ -573,6 +575,7 @@ declare function or<TA, TB, TC, TD, TE, TF, TG, TStateA, TStateB, TStateC, TStat
573
575
  * @param h The eighth {@link Parser} to try.
574
576
  * @return A {@link Parser} that tries to parse using the provided parsers
575
577
  * in order, returning the result of the first successful parser.
578
+ * @since 0.3.0
576
579
  */
577
580
  declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>, h: Parser<TH, TStateH>): Parser<TA | TB | TC | TD | TE | TF | TG | TH, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>]>;
578
581
  /**
@@ -608,6 +611,7 @@ declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TStateA, TStateB, TStateC, T
608
611
  * @param i The ninth {@link Parser} to try.
609
612
  * @return A {@link Parser} that tries to parse using the provided parsers
610
613
  * in order, returning the result of the first successful parser.
614
+ * @since 0.3.0
611
615
  */
612
616
  declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TI, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH, TStateI>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>, h: Parser<TH, TStateH>, i: Parser<TI, TStateI>): Parser<TA | TB | TC | TD | TE | TF | TG | TH | TI, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>] | [8, ParserResult<TStateI>]>;
613
617
  /**
@@ -646,6 +650,7 @@ declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TI, TStateA, TStateB, TState
646
650
  * @param j The tenth {@link Parser} to try.
647
651
  * @return A {@link Parser} that tries to parse using the provided parsers
648
652
  * in order, returning the result of the first successful parser.
653
+ * @since 0.3.0
649
654
  */
650
655
  declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TI, TJ, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH, TStateI, TStateJ>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>, h: Parser<TH, TStateH>, i: Parser<TI, TStateI>, j: Parser<TJ, TStateJ>): Parser<TA | TB | TC | TD | TE | TF | TG | TH | TI | TJ, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>] | [8, ParserResult<TStateI>] | [9, ParserResult<TStateJ>]>;
651
656
  /**
@@ -754,6 +759,23 @@ type ExtractObjectTypes<P> = P extends Parser<infer V, unknown> ? [AllObjectLike
754
759
  * of the two parsers into a single object.
755
760
  */
756
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>>;
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: TA, b: TB): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB>, Record<string | symbol, unknown>>;
757
779
  /**
758
780
  * Merges multiple {@link object} parsers into a single {@link object} parser.
759
781
  * It is useful for combining multiple {@link object} parsers so that
@@ -770,6 +792,25 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
770
792
  * of the two parsers into a single object.
771
793
  */
772
794
  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>>;
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>>;
773
814
  /**
774
815
  * Merges multiple {@link object} parsers into a single {@link object} parser.
775
816
  * It is useful for combining multiple {@link object} parsers so that
@@ -788,6 +829,27 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
788
829
  * of the two parsers into a single object.
789
830
  */
790
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>>;
791
853
  /**
792
854
  * Merges multiple {@link object} parsers into a single {@link object} parser.
793
855
  * It is useful for combining multiple {@link object} parsers so that
@@ -808,6 +870,314 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
808
870
  * of the two parsers into a single object.
809
871
  */
810
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: 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>>;
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>>;
896
+ /**
897
+ * Merges multiple {@link object} parsers into a single {@link object} parser.
898
+ * It is useful for combining multiple {@link object} parsers so that
899
+ * the unified parser produces a single object containing all the values
900
+ * from the individual parsers while separating the fields into multiple
901
+ * groups.
902
+ * @template TA The type of the first parser.
903
+ * @template TB The type of the second parser.
904
+ * @template TC The type of the third parser.
905
+ * @template TD The type of the fourth parser.
906
+ * @template TE The type of the fifth parser.
907
+ * @template TF The type of the sixth parser.
908
+ * @param a The first {@link object} parser to merge.
909
+ * @param b The second {@link object} parser to merge.
910
+ * @param c The third {@link object} parser to merge.
911
+ * @param d The fourth {@link object} parser to merge.
912
+ * @param e The fifth {@link object} parser to merge.
913
+ * @param f The sixth {@link object} parser to merge.
914
+ * @return A new {@link object} parser that combines the values and states
915
+ * of the parsers into a single object.
916
+ * @since 0.4.0
917
+ */
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>>;
945
+ /**
946
+ * Merges multiple {@link object} parsers into a single {@link object} parser.
947
+ * It is useful for combining multiple {@link object} parsers so that
948
+ * the unified parser produces a single object containing all the values
949
+ * from the individual parsers while separating the fields into multiple
950
+ * groups.
951
+ * @template TA The type of the first parser.
952
+ * @template TB The type of the second parser.
953
+ * @template TC The type of the third parser.
954
+ * @template TD The type of the fourth parser.
955
+ * @template TE The type of the fifth parser.
956
+ * @template TF The type of the sixth parser.
957
+ * @template TG The type of the seventh parser.
958
+ * @param a The first {@link object} parser to merge.
959
+ * @param b The second {@link object} parser to merge.
960
+ * @param c The third {@link object} parser to merge.
961
+ * @param d The fourth {@link object} parser to merge.
962
+ * @param e The fifth {@link object} parser to merge.
963
+ * @param f The sixth {@link object} parser to merge.
964
+ * @param g The seventh {@link object} parser to merge.
965
+ * @return A new {@link object} parser that combines the values and states
966
+ * of the parsers into a single object.
967
+ * @since 0.4.0
968
+ */
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>>;
998
+ /**
999
+ * Merges multiple {@link object} parsers into a single {@link object} parser.
1000
+ * It is useful for combining multiple {@link object} parsers so that
1001
+ * the unified parser produces a single object containing all the values
1002
+ * from the individual parsers while separating the fields into multiple
1003
+ * groups.
1004
+ * @template TA The type of the first parser.
1005
+ * @template TB The type of the second parser.
1006
+ * @template TC The type of the third parser.
1007
+ * @template TD The type of the fourth parser.
1008
+ * @template TE The type of the fifth parser.
1009
+ * @template TF The type of the sixth parser.
1010
+ * @template TG The type of the seventh parser.
1011
+ * @template TH The type of the eighth parser.
1012
+ * @param a The first {@link object} parser to merge.
1013
+ * @param b The second {@link object} parser to merge.
1014
+ * @param c The third {@link object} parser to merge.
1015
+ * @param d The fourth {@link object} parser to merge.
1016
+ * @param e The fifth {@link object} parser to merge.
1017
+ * @param f The sixth {@link object} parser to merge.
1018
+ * @param g The seventh {@link object} parser to merge.
1019
+ * @param h The eighth {@link object} parser to merge.
1020
+ * @return A new {@link object} parser that combines the values and states
1021
+ * of the parsers into a single object.
1022
+ * @since 0.4.0
1023
+ */
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>>;
1055
+ /**
1056
+ * Merges multiple {@link object} parsers into a single {@link object} parser.
1057
+ * It is useful for combining multiple {@link object} parsers so that
1058
+ * the unified parser produces a single object containing all the values
1059
+ * from the individual parsers while separating the fields into multiple
1060
+ * groups.
1061
+ * @template TA The type of the first parser.
1062
+ * @template TB The type of the second parser.
1063
+ * @template TC The type of the third parser.
1064
+ * @template TD The type of the fourth parser.
1065
+ * @template TE The type of the fifth parser.
1066
+ * @template TF The type of the sixth parser.
1067
+ * @template TG The type of the seventh parser.
1068
+ * @template TH The type of the eighth parser.
1069
+ * @template TI The type of the ninth parser.
1070
+ * @param a The first {@link object} parser to merge.
1071
+ * @param b The second {@link object} parser to merge.
1072
+ * @param c The third {@link object} parser to merge.
1073
+ * @param d The fourth {@link object} parser to merge.
1074
+ * @param e The fifth {@link object} parser to merge.
1075
+ * @param f The sixth {@link object} parser to merge.
1076
+ * @param g The seventh {@link object} parser to merge.
1077
+ * @param h The eighth {@link object} parser to merge.
1078
+ * @param i The ninth {@link object} parser to merge.
1079
+ * @return A new {@link object} parser that combines the values and states
1080
+ * of the parsers into a single object.
1081
+ * @since 0.4.0
1082
+ */
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>>;
1116
+ /**
1117
+ * Merges multiple {@link object} parsers into a single {@link object} parser.
1118
+ * It is useful for combining multiple {@link object} parsers so that
1119
+ * the unified parser produces a single object containing all the values
1120
+ * from the individual parsers while separating the fields into multiple
1121
+ * groups.
1122
+ * @template TA The type of the first parser.
1123
+ * @template TB The type of the second parser.
1124
+ * @template TC The type of the third parser.
1125
+ * @template TD The type of the fourth parser.
1126
+ * @template TE The type of the fifth parser.
1127
+ * @template TF The type of the sixth parser.
1128
+ * @template TG The type of the seventh parser.
1129
+ * @template TH The type of the eighth parser.
1130
+ * @template TI The type of the ninth parser.
1131
+ * @template TJ The type of the tenth parser.
1132
+ * @param a The first {@link object} parser to merge.
1133
+ * @param b The second {@link object} parser to merge.
1134
+ * @param c The third {@link object} parser to merge.
1135
+ * @param d The fourth {@link object} parser to merge.
1136
+ * @param e The fifth {@link object} parser to merge.
1137
+ * @param f The sixth {@link object} parser to merge.
1138
+ * @param g The seventh {@link object} parser to merge.
1139
+ * @param h The eighth {@link object} parser to merge.
1140
+ * @param i The ninth {@link object} parser to merge.
1141
+ * @param j The tenth {@link object} parser to merge.
1142
+ * @return A new {@link object} parser that combines the values and states
1143
+ * of the parsers into a single object.
1144
+ * @since 0.4.0
1145
+ */
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>>;
811
1181
  /**
812
1182
  * Concatenates two {@link tuple} parsers into a single parser that produces
813
1183
  * a flattened tuple containing the values from both parsers in order.
package/dist/parser.js CHANGED
@@ -1111,7 +1111,9 @@ function longestMatch(...parsers) {
1111
1111
  }
1112
1112
  };
1113
1113
  }
1114
- function merge(...parsers) {
1114
+ function merge(...args) {
1115
+ const label = typeof args[0] === "string" ? args[0] : void 0;
1116
+ let parsers = typeof args[0] === "string" ? args.slice(1) : args;
1115
1117
  parsers = parsers.toSorted((a, b) => b.priority - a.priority);
1116
1118
  const initialState = {};
1117
1119
  for (const parser of parsers) if (parser.initialState && typeof parser.initialState === "object") for (const field in parser.initialState) initialState[field] = parser.initialState[field];
@@ -1204,6 +1206,17 @@ function merge(...parsers) {
1204
1206
  if (fragment.title == null) entries.push(...fragment.entries);
1205
1207
  else sections.push(fragment);
1206
1208
  }
1209
+ if (label) {
1210
+ const labeledSection = {
1211
+ title: label,
1212
+ entries
1213
+ };
1214
+ sections.push(labeledSection);
1215
+ return { fragments: sections.map((s) => ({
1216
+ ...s,
1217
+ type: "section"
1218
+ })) };
1219
+ }
1207
1220
  return { fragments: [...sections.map((s) => ({
1208
1221
  ...s,
1209
1222
  type: "section"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optique/core",
3
- "version": "0.4.0-dev.50+48ccdd8d",
3
+ "version": "0.4.0-dev.52+12ee9e92",
4
4
  "description": "Type-safe combinatorial command-line interface parser",
5
5
  "keywords": [
6
6
  "CLI",