@optique/core 1.0.0-dev.1663 → 1.0.0-dev.1667
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/constructs.cjs +151 -99
- package/dist/constructs.js +151 -99
- package/package.json +1 -1
package/dist/constructs.cjs
CHANGED
|
@@ -158,7 +158,11 @@ function unwrapNestedAnnotationViews(value, seen = /* @__PURE__ */ new WeakMap()
|
|
|
158
158
|
changed$1 = true;
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
-
|
|
161
|
+
if (!changed$1) {
|
|
162
|
+
seen.set(source, source);
|
|
163
|
+
return source;
|
|
164
|
+
}
|
|
165
|
+
return clone$1;
|
|
162
166
|
}
|
|
163
167
|
const proto = Object.getPrototypeOf(source);
|
|
164
168
|
if (proto !== Object.prototype && proto !== null) return source;
|
|
@@ -480,6 +484,26 @@ function generateNoMatchError(context) {
|
|
|
480
484
|
else if (hasArguments && hasCommands && !hasOptions) return require_message.message`No matching command or argument found.`;
|
|
481
485
|
else return require_message.message`No matching option, command, or argument found.`;
|
|
482
486
|
}
|
|
487
|
+
function normalizeExclusiveState(state) {
|
|
488
|
+
if (!Array.isArray(state) || state.length !== 2 || typeof state[0] !== "number") return void 0;
|
|
489
|
+
return state;
|
|
490
|
+
}
|
|
491
|
+
function annotateExclusiveParserResult(parentState, parser, result) {
|
|
492
|
+
if (!result.success) return result;
|
|
493
|
+
const annotatedState = getAnnotatedChildState(parentState, result.next.state, parser);
|
|
494
|
+
if (annotatedState === result.next.state) return result;
|
|
495
|
+
return {
|
|
496
|
+
...result,
|
|
497
|
+
next: {
|
|
498
|
+
...result.next,
|
|
499
|
+
state: annotatedState
|
|
500
|
+
}
|
|
501
|
+
};
|
|
502
|
+
}
|
|
503
|
+
function createExclusiveState(parentState, index, parser, result) {
|
|
504
|
+
const annotatedResult = annotateExclusiveParserResult(parentState, parser, result);
|
|
505
|
+
return require_annotations.annotateFreshArray(parentState, [index, annotatedResult]);
|
|
506
|
+
}
|
|
483
507
|
/**
|
|
484
508
|
* Creates a complete() method shared by or() and longestMatch().
|
|
485
509
|
* @internal
|
|
@@ -487,11 +511,12 @@ function generateNoMatchError(context) {
|
|
|
487
511
|
function createExclusiveComplete(parsers, options, noMatchContext, mode) {
|
|
488
512
|
const syncParsers = parsers;
|
|
489
513
|
return (state, exec) => {
|
|
490
|
-
|
|
514
|
+
const activeState = normalizeExclusiveState(state);
|
|
515
|
+
if (activeState == null) return {
|
|
491
516
|
success: false,
|
|
492
517
|
error: getNoMatchError(options, noMatchContext)
|
|
493
518
|
};
|
|
494
|
-
const [i, result] =
|
|
519
|
+
const [i, result] = activeState;
|
|
495
520
|
if (!result.success) return {
|
|
496
521
|
success: false,
|
|
497
522
|
error: result.error
|
|
@@ -511,32 +536,35 @@ function createExclusiveSuggest(parsers, mode) {
|
|
|
511
536
|
return (context, prefix) => {
|
|
512
537
|
return require_mode_dispatch.dispatchIterableByMode(mode, function* () {
|
|
513
538
|
const suggestions = [];
|
|
514
|
-
|
|
539
|
+
const activeState = normalizeExclusiveState(context.state);
|
|
540
|
+
if (activeState == null) for (let i = 0; i < syncParsers.length; i++) {
|
|
515
541
|
const parser = syncParsers[i];
|
|
516
|
-
const parserSuggestions = parser.suggest(withChildContext(context, i, parser.initialState), prefix);
|
|
542
|
+
const parserSuggestions = parser.suggest(withChildContext(context, i, parser.initialState, parser), prefix);
|
|
517
543
|
suggestions.push(...parserSuggestions);
|
|
518
544
|
}
|
|
519
545
|
else {
|
|
520
|
-
const [index, parserResult] =
|
|
546
|
+
const [index, parserResult] = activeState;
|
|
521
547
|
if (parserResult.success) {
|
|
522
|
-
const
|
|
548
|
+
const parser = syncParsers[index];
|
|
549
|
+
const parserSuggestions = parser.suggest(withChildContext(context, index, parserResult.next.state, parser), prefix);
|
|
523
550
|
suggestions.push(...parserSuggestions);
|
|
524
551
|
}
|
|
525
552
|
}
|
|
526
553
|
yield* require_suggestion.deduplicateSuggestions(suggestions);
|
|
527
554
|
}, async function* () {
|
|
528
555
|
const suggestions = [];
|
|
529
|
-
|
|
556
|
+
const activeState = normalizeExclusiveState(context.state);
|
|
557
|
+
if (activeState == null) for (let i = 0; i < parsers.length; i++) {
|
|
530
558
|
const parser = parsers[i];
|
|
531
|
-
const parserSuggestions = parser.suggest(withChildContext(context, i, parser.initialState), prefix);
|
|
559
|
+
const parserSuggestions = parser.suggest(withChildContext(context, i, parser.initialState, parser), prefix);
|
|
532
560
|
if (parser.$mode === "async") for await (const s of parserSuggestions) suggestions.push(s);
|
|
533
561
|
else suggestions.push(...parserSuggestions);
|
|
534
562
|
}
|
|
535
563
|
else {
|
|
536
|
-
const [index, parserResult] =
|
|
564
|
+
const [index, parserResult] = activeState;
|
|
537
565
|
if (parserResult.success) {
|
|
538
566
|
const parser = parsers[index];
|
|
539
|
-
const parserSuggestions = parser.suggest(withChildContext(context, index, parserResult.next.state), prefix);
|
|
567
|
+
const parserSuggestions = parser.suggest(withChildContext(context, index, parserResult.next.state, parser), prefix);
|
|
540
568
|
if (parser.$mode === "async") for await (const s of parserSuggestions) suggestions.push(s);
|
|
541
569
|
else suggestions.push(...parserSuggestions);
|
|
542
570
|
}
|
|
@@ -546,8 +574,9 @@ function createExclusiveSuggest(parsers, mode) {
|
|
|
546
574
|
};
|
|
547
575
|
}
|
|
548
576
|
function getExclusiveSuggestRuntimeNodes(parsers, state, path) {
|
|
549
|
-
|
|
550
|
-
|
|
577
|
+
const activeState = normalizeExclusiveState(state);
|
|
578
|
+
if (activeState == null) return [];
|
|
579
|
+
const [index, parserResult] = activeState;
|
|
551
580
|
if (!parserResult?.success || index < 0 || index >= parsers.length) return [];
|
|
552
581
|
const parser = parsers[index];
|
|
553
582
|
return require_parser.getParserSuggestRuntimeNodes(parser, parserResult.next.state, [...path, index]);
|
|
@@ -610,34 +639,32 @@ function or(...args) {
|
|
|
610
639
|
});
|
|
611
640
|
const parseSync = (context) => {
|
|
612
641
|
let error = getInitialError(context);
|
|
642
|
+
const activeState = normalizeExclusiveState(context.state);
|
|
613
643
|
const orderedParsers = syncParsers.map((p, i) => [p, i]);
|
|
614
|
-
orderedParsers.sort(([_, a], [__, b]) =>
|
|
644
|
+
orderedParsers.sort(([_, a], [__, b]) => activeState?.[0] === a ? -1 : activeState?.[0] === b ? 1 : a - b);
|
|
615
645
|
for (const [parser, i] of orderedParsers) {
|
|
616
|
-
const result = parser.parse(withChildContext(context, i,
|
|
646
|
+
const result = parser.parse(withChildContext(context, i, activeState == null || activeState[0] !== i || !activeState[1].success ? parser.initialState : activeState[1].next.state, parser));
|
|
617
647
|
if (result.success && result.consumed.length > 0) {
|
|
618
|
-
if (
|
|
619
|
-
const previouslyConsumed =
|
|
648
|
+
if (activeState?.[0] !== i && activeState?.[1].success) {
|
|
649
|
+
const previouslyConsumed = activeState[1].consumed;
|
|
620
650
|
const checkResult = parser.parse({
|
|
621
|
-
...withChildContext(context, i, parser.initialState),
|
|
651
|
+
...withChildContext(context, i, parser.initialState, parser),
|
|
622
652
|
buffer: previouslyConsumed
|
|
623
653
|
});
|
|
624
654
|
const canConsumeShared = checkResult.success && checkResult.consumed.length === previouslyConsumed.length && checkResult.consumed.every((c, idx) => c === previouslyConsumed[idx]);
|
|
625
655
|
if (!canConsumeShared) return {
|
|
626
656
|
success: false,
|
|
627
657
|
consumed: context.buffer.length - result.next.buffer.length,
|
|
628
|
-
error: require_message.message`${require_message.values(
|
|
658
|
+
error: require_message.message`${require_message.values(activeState[1].consumed)} and ${require_message.values(result.consumed)} cannot be used together.`
|
|
629
659
|
};
|
|
630
660
|
const replayExec = mergeChildExec(context.exec, checkResult.next.exec);
|
|
631
|
-
const replayedResult = parser.parse({
|
|
632
|
-
...
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
}, i, checkResult.next.state),
|
|
639
|
-
state: checkResult.next.state
|
|
640
|
-
});
|
|
661
|
+
const replayedResult = parser.parse(withChildContext({
|
|
662
|
+
...context,
|
|
663
|
+
...replayExec != null ? {
|
|
664
|
+
exec: replayExec,
|
|
665
|
+
dependencyRegistry: replayExec.dependencyRegistry
|
|
666
|
+
} : {}
|
|
667
|
+
}, i, checkResult.next.state, parser));
|
|
641
668
|
if (!replayedResult.success) return replayedResult;
|
|
642
669
|
const mergedExec$1 = mergeChildExec(replayExec, replayedResult.next.exec);
|
|
643
670
|
return {
|
|
@@ -646,10 +673,10 @@ function or(...args) {
|
|
|
646
673
|
...context,
|
|
647
674
|
buffer: replayedResult.next.buffer,
|
|
648
675
|
optionsTerminated: replayedResult.next.optionsTerminated,
|
|
649
|
-
state:
|
|
676
|
+
state: createExclusiveState(context.state, i, parser, {
|
|
650
677
|
...replayedResult,
|
|
651
678
|
consumed: [...previouslyConsumed, ...replayedResult.consumed]
|
|
652
|
-
}
|
|
679
|
+
}),
|
|
653
680
|
...mergedExec$1 != null ? {
|
|
654
681
|
exec: mergedExec$1,
|
|
655
682
|
dependencyRegistry: mergedExec$1.dependencyRegistry
|
|
@@ -665,7 +692,7 @@ function or(...args) {
|
|
|
665
692
|
...context,
|
|
666
693
|
buffer: result.next.buffer,
|
|
667
694
|
optionsTerminated: result.next.optionsTerminated,
|
|
668
|
-
state:
|
|
695
|
+
state: createExclusiveState(context.state, i, parser, result),
|
|
669
696
|
...mergedExec != null ? {
|
|
670
697
|
exec: mergedExec,
|
|
671
698
|
dependencyRegistry: mergedExec.dependencyRegistry
|
|
@@ -682,16 +709,17 @@ function or(...args) {
|
|
|
682
709
|
};
|
|
683
710
|
const parseAsync = async (context) => {
|
|
684
711
|
let error = getInitialError(context);
|
|
712
|
+
const activeState = normalizeExclusiveState(context.state);
|
|
685
713
|
const orderedParsers = parsers.map((p, i) => [p, i]);
|
|
686
|
-
orderedParsers.sort(([_, a], [__, b]) =>
|
|
714
|
+
orderedParsers.sort(([_, a], [__, b]) => activeState?.[0] === a ? -1 : activeState?.[0] === b ? 1 : a - b);
|
|
687
715
|
for (const [parser, i] of orderedParsers) {
|
|
688
|
-
const resultOrPromise = parser.parse(withChildContext(context, i,
|
|
716
|
+
const resultOrPromise = parser.parse(withChildContext(context, i, activeState == null || activeState[0] !== i || !activeState[1].success ? parser.initialState : activeState[1].next.state, parser));
|
|
689
717
|
const result = await resultOrPromise;
|
|
690
718
|
if (result.success && result.consumed.length > 0) {
|
|
691
|
-
if (
|
|
692
|
-
const previouslyConsumed =
|
|
719
|
+
if (activeState?.[0] !== i && activeState?.[1].success) {
|
|
720
|
+
const previouslyConsumed = activeState[1].consumed;
|
|
693
721
|
const checkResultOrPromise = parser.parse({
|
|
694
|
-
...withChildContext(context, i, parser.initialState),
|
|
722
|
+
...withChildContext(context, i, parser.initialState, parser),
|
|
695
723
|
buffer: previouslyConsumed
|
|
696
724
|
});
|
|
697
725
|
const checkResult = await checkResultOrPromise;
|
|
@@ -699,16 +727,16 @@ function or(...args) {
|
|
|
699
727
|
if (!canConsumeShared) return {
|
|
700
728
|
success: false,
|
|
701
729
|
consumed: context.buffer.length - result.next.buffer.length,
|
|
702
|
-
error: require_message.message`${require_message.values(
|
|
730
|
+
error: require_message.message`${require_message.values(activeState[1].consumed)} and ${require_message.values(result.consumed)} cannot be used together.`
|
|
703
731
|
};
|
|
704
732
|
const replayExec = mergeChildExec(context.exec, checkResult.next.exec);
|
|
705
|
-
const replayedResultOrPromise = parser.parse(
|
|
733
|
+
const replayedResultOrPromise = parser.parse(withChildContext({
|
|
706
734
|
...context,
|
|
707
735
|
...replayExec != null ? {
|
|
708
736
|
exec: replayExec,
|
|
709
737
|
dependencyRegistry: replayExec.dependencyRegistry
|
|
710
738
|
} : {}
|
|
711
|
-
}, i, checkResult.next.state
|
|
739
|
+
}, i, checkResult.next.state, parser));
|
|
712
740
|
const replayedResult = await replayedResultOrPromise;
|
|
713
741
|
if (!replayedResult.success) return replayedResult;
|
|
714
742
|
const mergedExec$1 = mergeChildExec(replayExec, replayedResult.next.exec);
|
|
@@ -718,10 +746,10 @@ function or(...args) {
|
|
|
718
746
|
...context,
|
|
719
747
|
buffer: replayedResult.next.buffer,
|
|
720
748
|
optionsTerminated: replayedResult.next.optionsTerminated,
|
|
721
|
-
state:
|
|
749
|
+
state: createExclusiveState(context.state, i, parser, {
|
|
722
750
|
...replayedResult,
|
|
723
751
|
consumed: [...previouslyConsumed, ...replayedResult.consumed]
|
|
724
|
-
}
|
|
752
|
+
}),
|
|
725
753
|
...mergedExec$1 != null ? {
|
|
726
754
|
exec: mergedExec$1,
|
|
727
755
|
dependencyRegistry: mergedExec$1.dependencyRegistry
|
|
@@ -737,7 +765,7 @@ function or(...args) {
|
|
|
737
765
|
...context,
|
|
738
766
|
buffer: result.next.buffer,
|
|
739
767
|
optionsTerminated: result.next.optionsTerminated,
|
|
740
|
-
state:
|
|
768
|
+
state: createExclusiveState(context.state, i, parser, result),
|
|
741
769
|
...mergedExec != null ? {
|
|
742
770
|
exec: mergedExec,
|
|
743
771
|
dependencyRegistry: mergedExec.dependencyRegistry
|
|
@@ -801,6 +829,7 @@ function or(...args) {
|
|
|
801
829
|
};
|
|
802
830
|
const singleDependencyMetadata = composeExclusiveDependencyMetadata(parsers);
|
|
803
831
|
if (singleDependencyMetadata != null) singleResult.dependencyMetadata = singleDependencyMetadata;
|
|
832
|
+
require_parser.defineInheritedAnnotationParser(singleResult);
|
|
804
833
|
return singleResult;
|
|
805
834
|
}
|
|
806
835
|
/**
|
|
@@ -833,13 +862,15 @@ function longestMatch(...args) {
|
|
|
833
862
|
const parseSync = (context) => {
|
|
834
863
|
let bestMatch = null;
|
|
835
864
|
let error = getInitialError(context);
|
|
865
|
+
const activeState = normalizeExclusiveState(context.state);
|
|
836
866
|
for (let i = 0; i < syncParsers.length; i++) {
|
|
837
867
|
const parser = syncParsers[i];
|
|
838
|
-
const result = parser.parse(withChildContext(context, i,
|
|
868
|
+
const result = parser.parse(withChildContext(context, i, activeState == null || activeState[0] !== i || !activeState[1].success ? parser.initialState : activeState[1].next.state, parser));
|
|
839
869
|
if (result.success) {
|
|
840
870
|
const consumed = context.buffer.length - result.next.buffer.length;
|
|
841
871
|
if (bestMatch === null || consumed > bestMatch.consumed) bestMatch = {
|
|
842
872
|
index: i,
|
|
873
|
+
parser,
|
|
843
874
|
result,
|
|
844
875
|
consumed
|
|
845
876
|
};
|
|
@@ -853,7 +884,7 @@ function longestMatch(...args) {
|
|
|
853
884
|
...context,
|
|
854
885
|
buffer: bestMatch.result.next.buffer,
|
|
855
886
|
optionsTerminated: bestMatch.result.next.optionsTerminated,
|
|
856
|
-
state:
|
|
887
|
+
state: createExclusiveState(context.state, bestMatch.index, bestMatch.parser, bestMatch.result),
|
|
857
888
|
...mergedExec != null ? {
|
|
858
889
|
exec: mergedExec,
|
|
859
890
|
dependencyRegistry: mergedExec.dependencyRegistry
|
|
@@ -870,14 +901,16 @@ function longestMatch(...args) {
|
|
|
870
901
|
const parseAsync = async (context) => {
|
|
871
902
|
let bestMatch = null;
|
|
872
903
|
let error = getInitialError(context);
|
|
904
|
+
const activeState = normalizeExclusiveState(context.state);
|
|
873
905
|
for (let i = 0; i < parsers.length; i++) {
|
|
874
906
|
const parser = parsers[i];
|
|
875
|
-
const resultOrPromise = parser.parse(withChildContext(context, i,
|
|
907
|
+
const resultOrPromise = parser.parse(withChildContext(context, i, activeState == null || activeState[0] !== i || !activeState[1].success ? parser.initialState : activeState[1].next.state, parser));
|
|
876
908
|
const result = await resultOrPromise;
|
|
877
909
|
if (result.success) {
|
|
878
910
|
const consumed = context.buffer.length - result.next.buffer.length;
|
|
879
911
|
if (bestMatch === null || consumed > bestMatch.consumed) bestMatch = {
|
|
880
912
|
index: i,
|
|
913
|
+
parser,
|
|
881
914
|
result,
|
|
882
915
|
consumed
|
|
883
916
|
};
|
|
@@ -891,7 +924,7 @@ function longestMatch(...args) {
|
|
|
891
924
|
...context,
|
|
892
925
|
buffer: bestMatch.result.next.buffer,
|
|
893
926
|
optionsTerminated: bestMatch.result.next.optionsTerminated,
|
|
894
|
-
state:
|
|
927
|
+
state: createExclusiveState(context.state, bestMatch.index, bestMatch.parser, bestMatch.result),
|
|
895
928
|
...mergedExec != null ? {
|
|
896
929
|
exec: mergedExec,
|
|
897
930
|
dependencyRegistry: mergedExec.dependencyRegistry
|
|
@@ -961,6 +994,7 @@ function longestMatch(...args) {
|
|
|
961
994
|
};
|
|
962
995
|
const multiDependencyMetadata = composeExclusiveDependencyMetadata(parsers);
|
|
963
996
|
if (multiDependencyMetadata != null) multiResult.dependencyMetadata = multiDependencyMetadata;
|
|
997
|
+
require_parser.defineInheritedAnnotationParser(multiResult);
|
|
964
998
|
return multiResult;
|
|
965
999
|
}
|
|
966
1000
|
/**
|
|
@@ -986,15 +1020,15 @@ function* suggestObjectSync(context, prefix, parserPairs) {
|
|
|
986
1020
|
if (context.buffer.length > 0) {
|
|
987
1021
|
const lastToken = context.buffer[context.buffer.length - 1];
|
|
988
1022
|
for (const [field, parser] of parserPairs) if (isOptionRequiringValue(parser.usage, lastToken)) {
|
|
989
|
-
const
|
|
990
|
-
yield* parser.suggest(withChildContext(contextWithRegistry, field,
|
|
1023
|
+
const annotatedFieldState = getAnnotatedFieldState(context.state, field, parser);
|
|
1024
|
+
yield* parser.suggest(withChildContext(contextWithRegistry, field, annotatedFieldState, parser), prefix);
|
|
991
1025
|
return;
|
|
992
1026
|
}
|
|
993
1027
|
}
|
|
994
1028
|
const suggestions = [];
|
|
995
1029
|
for (const [field, parser] of parserPairs) {
|
|
996
|
-
const
|
|
997
|
-
const fieldSuggestions = parser.suggest(withChildContext(contextWithRegistry, field,
|
|
1030
|
+
const annotatedFieldState = getAnnotatedFieldState(context.state, field, parser);
|
|
1031
|
+
const fieldSuggestions = parser.suggest(withChildContext(contextWithRegistry, field, annotatedFieldState, parser), prefix);
|
|
998
1032
|
suggestions.push(...fieldSuggestions);
|
|
999
1033
|
}
|
|
1000
1034
|
yield* require_suggestion.deduplicateSuggestions(suggestions);
|
|
@@ -1022,16 +1056,16 @@ async function* suggestObjectAsync(context, prefix, parserPairs) {
|
|
|
1022
1056
|
if (context.buffer.length > 0) {
|
|
1023
1057
|
const lastToken = context.buffer[context.buffer.length - 1];
|
|
1024
1058
|
for (const [field, parser] of parserPairs) if (isOptionRequiringValue(parser.usage, lastToken)) {
|
|
1025
|
-
const
|
|
1026
|
-
const suggestions$1 = parser.suggest(withChildContext(contextWithRegistry, field,
|
|
1059
|
+
const annotatedFieldState = getAnnotatedFieldState(context.state, field, parser);
|
|
1060
|
+
const suggestions$1 = parser.suggest(withChildContext(contextWithRegistry, field, annotatedFieldState, parser), prefix);
|
|
1027
1061
|
for await (const s of suggestions$1) yield s;
|
|
1028
1062
|
return;
|
|
1029
1063
|
}
|
|
1030
1064
|
}
|
|
1031
1065
|
const suggestions = [];
|
|
1032
1066
|
for (const [field, parser] of parserPairs) {
|
|
1033
|
-
const
|
|
1034
|
-
const fieldSuggestions = parser.suggest(withChildContext(contextWithRegistry, field,
|
|
1067
|
+
const annotatedFieldState = getAnnotatedFieldState(context.state, field, parser);
|
|
1068
|
+
const fieldSuggestions = parser.suggest(withChildContext(contextWithRegistry, field, annotatedFieldState, parser), prefix);
|
|
1035
1069
|
for await (const s of fieldSuggestions) suggestions.push(s);
|
|
1036
1070
|
}
|
|
1037
1071
|
yield* require_suggestion.deduplicateSuggestions(suggestions);
|
|
@@ -1378,7 +1412,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1378
1412
|
madeProgress = false;
|
|
1379
1413
|
const getFieldState = createFieldStateGetter(currentContext.state, getObjectParseChildState);
|
|
1380
1414
|
for (const [field, parser] of parserPairs) {
|
|
1381
|
-
const result = parser.parse(withChildContext(currentContext, field, getFieldState(field, parser)));
|
|
1415
|
+
const result = parser.parse(withChildContext(currentContext, field, getFieldState(field, parser), parser));
|
|
1382
1416
|
if (result.success && result.consumed.length > 0) {
|
|
1383
1417
|
const mergedExec = mergeChildExec(currentContext.exec, result.next.exec);
|
|
1384
1418
|
currentContext = {
|
|
@@ -1439,7 +1473,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1439
1473
|
madeProgress = false;
|
|
1440
1474
|
const getFieldState = createFieldStateGetter(currentContext.state, getObjectParseChildState);
|
|
1441
1475
|
for (const [field, parser] of parserPairs) {
|
|
1442
|
-
const resultOrPromise = parser.parse(withChildContext(currentContext, field, getFieldState(field, parser)));
|
|
1476
|
+
const resultOrPromise = parser.parse(withChildContext(currentContext, field, getFieldState(field, parser), parser));
|
|
1443
1477
|
const result = await resultOrPromise;
|
|
1444
1478
|
if (result.success && result.consumed.length > 0) {
|
|
1445
1479
|
const mergedExec = mergeChildExec(currentContext.exec, result.next.exec);
|
|
@@ -1506,6 +1540,10 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1506
1540
|
parse(context) {
|
|
1507
1541
|
return require_mode_dispatch.dispatchByMode(combinedMode, () => parseSync(context), () => parseAsync(context));
|
|
1508
1542
|
},
|
|
1543
|
+
getSuggestRuntimeNodes(state, path) {
|
|
1544
|
+
const stateRecord = state != null && typeof state === "object" ? state : objectParser.initialState;
|
|
1545
|
+
return buildSuggestRuntimeNodesFromPairs(parserPairs, stateRecord, path);
|
|
1546
|
+
},
|
|
1509
1547
|
complete(state, exec) {
|
|
1510
1548
|
return require_mode_dispatch.dispatchByMode(combinedMode, () => {
|
|
1511
1549
|
const runtime = exec?.dependencyRuntime ?? require_dependency_runtime.createDependencyRuntimeContext(exec?.dependencyRegistry);
|
|
@@ -1749,7 +1787,7 @@ async function* suggestTupleAsync(context, prefix, parsers) {
|
|
|
1749
1787
|
state: createAnnotatedArrayStateRecord(stateArray)
|
|
1750
1788
|
}, buildIndexedParserPairs(parsers), runtime.registry, advancedContext.exec);
|
|
1751
1789
|
}
|
|
1752
|
-
|
|
1790
|
+
await markFailedTupleSuggestSourcesAsync(parsers, stateArray, advanced.failedParserIndexes, runtime, advancedContext.exec?.path);
|
|
1753
1791
|
const contextWithRegistry = {
|
|
1754
1792
|
...advancedContext,
|
|
1755
1793
|
dependencyRegistry: runtime.registry,
|
|
@@ -1903,18 +1941,36 @@ async function advanceTupleSuggestContextAsync(context, parsers) {
|
|
|
1903
1941
|
function markFailedTupleSuggestSources(parsers, stateArray, failedParserIndexes, runtime, parentPath) {
|
|
1904
1942
|
if (failedParserIndexes.length < 1) return;
|
|
1905
1943
|
const prefix = parentPath ?? [];
|
|
1906
|
-
const failedSourceIds = /* @__PURE__ */ new Set();
|
|
1907
1944
|
for (const index of failedParserIndexes) {
|
|
1908
1945
|
const parser = parsers[index];
|
|
1909
1946
|
if (parser == null) continue;
|
|
1910
1947
|
const parserState = stateArray && Array.isArray(stateArray) ? stateArray[index] : parser.initialState;
|
|
1911
1948
|
const nodes = require_parser.getParserSuggestRuntimeNodes(parser, getAnnotatedChildState(stateArray, parserState, parser), [...prefix, index]);
|
|
1949
|
+
if (nodes.length < 1) continue;
|
|
1950
|
+
const failedRuntime = require_dependency_runtime.createDependencyRuntimeContext();
|
|
1951
|
+
require_dependency_runtime.collectExplicitSourceValues(nodes, failedRuntime);
|
|
1912
1952
|
for (const node of nodes) {
|
|
1913
1953
|
const sourceId = node.parser.dependencyMetadata?.source?.sourceId;
|
|
1914
|
-
if (sourceId != null)
|
|
1954
|
+
if (sourceId != null && failedRuntime.isSourceFailed(sourceId)) runtime.markSourceFailed(sourceId);
|
|
1955
|
+
}
|
|
1956
|
+
}
|
|
1957
|
+
}
|
|
1958
|
+
async function markFailedTupleSuggestSourcesAsync(parsers, stateArray, failedParserIndexes, runtime, parentPath) {
|
|
1959
|
+
if (failedParserIndexes.length < 1) return;
|
|
1960
|
+
const prefix = parentPath ?? [];
|
|
1961
|
+
for (const index of failedParserIndexes) {
|
|
1962
|
+
const parser = parsers[index];
|
|
1963
|
+
if (parser == null) continue;
|
|
1964
|
+
const parserState = stateArray && Array.isArray(stateArray) ? stateArray[index] : parser.initialState;
|
|
1965
|
+
const nodes = require_parser.getParserSuggestRuntimeNodes(parser, getAnnotatedChildState(stateArray, parserState, parser), [...prefix, index]);
|
|
1966
|
+
if (nodes.length < 1) continue;
|
|
1967
|
+
const failedRuntime = require_dependency_runtime.createDependencyRuntimeContext();
|
|
1968
|
+
await require_dependency_runtime.collectExplicitSourceValuesAsync(nodes, failedRuntime);
|
|
1969
|
+
for (const node of nodes) {
|
|
1970
|
+
const sourceId = node.parser.dependencyMetadata?.source?.sourceId;
|
|
1971
|
+
if (sourceId != null && failedRuntime.isSourceFailed(sourceId)) runtime.markSourceFailed(sourceId);
|
|
1915
1972
|
}
|
|
1916
1973
|
}
|
|
1917
|
-
for (const sourceId of failedSourceIds) runtime.markSourceFailed(sourceId);
|
|
1918
1974
|
}
|
|
1919
1975
|
function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
1920
1976
|
const label = typeof labelOrParsers === "string" ? labelOrParsers : void 0;
|
|
@@ -2313,7 +2369,7 @@ function merge(...args) {
|
|
|
2313
2369
|
for (let i = 0; i < syncParsers.length; i++) {
|
|
2314
2370
|
const parser = syncParsers[i];
|
|
2315
2371
|
const parserState = extractParserState(parser, currentContext, i);
|
|
2316
|
-
const result = parser.parse(withChildContext(currentContext, i, parserState));
|
|
2372
|
+
const result = parser.parse(withChildContext(currentContext, i, parserState, parser));
|
|
2317
2373
|
if (result.success) {
|
|
2318
2374
|
const mergedExec = mergeChildExec(currentContext.exec, result.next.exec);
|
|
2319
2375
|
const newState = mergeResultState(parser, currentContext, parserState, result, i);
|
|
@@ -2358,7 +2414,7 @@ function merge(...args) {
|
|
|
2358
2414
|
for (let i = 0; i < parsers.length; i++) {
|
|
2359
2415
|
const parser = parsers[i];
|
|
2360
2416
|
const parserState = extractParserState(parser, currentContext, i);
|
|
2361
|
-
const resultOrPromise = parser.parse(withChildContext(currentContext, i, parserState));
|
|
2417
|
+
const resultOrPromise = parser.parse(withChildContext(currentContext, i, parserState, parser));
|
|
2362
2418
|
const result = await resultOrPromise;
|
|
2363
2419
|
if (result.success) {
|
|
2364
2420
|
const mergedExec = mergeChildExec(currentContext.exec, result.next.exec);
|
|
@@ -2607,7 +2663,7 @@ function merge(...args) {
|
|
|
2607
2663
|
for (let i = 0; i < parsers.length; i++) {
|
|
2608
2664
|
const parser = parsers[i];
|
|
2609
2665
|
const parserState = extractState(parser, i);
|
|
2610
|
-
const childContext = withChildContext(contextWithRegistry$1, i, parserState);
|
|
2666
|
+
const childContext = withChildContext(contextWithRegistry$1, i, parserState, parser);
|
|
2611
2667
|
const excludedSourceFields = perChildExcludedSourceFields$1[i];
|
|
2612
2668
|
const contextForChild = excludedSourceFields == null ? childContext : (() => {
|
|
2613
2669
|
const childRuntime = require_dependency_runtime.createDependencyRuntimeContext(runtime$1.registry.clone());
|
|
@@ -2648,7 +2704,7 @@ function merge(...args) {
|
|
|
2648
2704
|
for (let i = 0; i < syncParsers.length; i++) {
|
|
2649
2705
|
const parser = syncParsers[i];
|
|
2650
2706
|
const parserState = extractState(parser, i);
|
|
2651
|
-
const childContext = withChildContext(contextWithRegistry, i, parserState);
|
|
2707
|
+
const childContext = withChildContext(contextWithRegistry, i, parserState, parser);
|
|
2652
2708
|
const excludedSourceFields = perChildExcludedSourceFields[i];
|
|
2653
2709
|
const contextForChild = excludedSourceFields == null ? childContext : (() => {
|
|
2654
2710
|
const childRuntime = require_dependency_runtime.createDependencyRuntimeContext(runtime.registry.clone());
|
|
@@ -3441,7 +3497,7 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3441
3497
|
...branchResult.next,
|
|
3442
3498
|
state: {
|
|
3443
3499
|
...state,
|
|
3444
|
-
branchState: branchResult.next.state
|
|
3500
|
+
branchState: getAnnotatedChildState(state, branchResult.next.state, branchParser)
|
|
3445
3501
|
},
|
|
3446
3502
|
...mergedExec != null ? {
|
|
3447
3503
|
exec: mergedExec,
|
|
@@ -3485,7 +3541,7 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3485
3541
|
kind: "branch",
|
|
3486
3542
|
key: value
|
|
3487
3543
|
},
|
|
3488
|
-
branchState: branchParseResult.next.state
|
|
3544
|
+
branchState: getAnnotatedChildState(state, branchParseResult.next.state, branchParser)
|
|
3489
3545
|
},
|
|
3490
3546
|
...mergedExec != null ? {
|
|
3491
3547
|
exec: mergedExec,
|
|
@@ -3506,7 +3562,7 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3506
3562
|
kind: "branch",
|
|
3507
3563
|
key: value
|
|
3508
3564
|
},
|
|
3509
|
-
branchState: branchParser.initialState
|
|
3565
|
+
branchState: getAnnotatedChildState(state, branchParser.initialState, branchParser)
|
|
3510
3566
|
},
|
|
3511
3567
|
...discriminatorExec != null ? {
|
|
3512
3568
|
exec: discriminatorExec,
|
|
@@ -3529,7 +3585,7 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3529
3585
|
state: {
|
|
3530
3586
|
...state,
|
|
3531
3587
|
selectedBranch: { kind: "default" },
|
|
3532
|
-
branchState: defaultResult.next.state
|
|
3588
|
+
branchState: getAnnotatedChildState(state, defaultResult.next.state, syncDefaultBranch)
|
|
3533
3589
|
},
|
|
3534
3590
|
...mergedExec != null ? {
|
|
3535
3591
|
exec: mergedExec,
|
|
@@ -3559,7 +3615,7 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3559
3615
|
...branchResult.next,
|
|
3560
3616
|
state: {
|
|
3561
3617
|
...state,
|
|
3562
|
-
branchState: branchResult.next.state
|
|
3618
|
+
branchState: getAnnotatedChildState(state, branchResult.next.state, branchParser)
|
|
3563
3619
|
},
|
|
3564
3620
|
...mergedExec != null ? {
|
|
3565
3621
|
exec: mergedExec,
|
|
@@ -3603,7 +3659,7 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3603
3659
|
kind: "branch",
|
|
3604
3660
|
key: value
|
|
3605
3661
|
},
|
|
3606
|
-
branchState: branchParseResult.next.state
|
|
3662
|
+
branchState: getAnnotatedChildState(state, branchParseResult.next.state, branchParser)
|
|
3607
3663
|
},
|
|
3608
3664
|
...mergedExec != null ? {
|
|
3609
3665
|
exec: mergedExec,
|
|
@@ -3624,7 +3680,7 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3624
3680
|
kind: "branch",
|
|
3625
3681
|
key: value
|
|
3626
3682
|
},
|
|
3627
|
-
branchState: branchParser.initialState
|
|
3683
|
+
branchState: getAnnotatedChildState(state, branchParser.initialState, branchParser)
|
|
3628
3684
|
},
|
|
3629
3685
|
...discriminatorExec != null ? {
|
|
3630
3686
|
exec: discriminatorExec,
|
|
@@ -3647,7 +3703,7 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3647
3703
|
state: {
|
|
3648
3704
|
...state,
|
|
3649
3705
|
selectedBranch: { kind: "default" },
|
|
3650
|
-
branchState: defaultResult.next.state
|
|
3706
|
+
branchState: getAnnotatedChildState(state, defaultResult.next.state, defaultBranch)
|
|
3651
3707
|
},
|
|
3652
3708
|
...mergedExec != null ? {
|
|
3653
3709
|
exec: mergedExec,
|
|
@@ -3670,7 +3726,7 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3670
3726
|
const syncBranches = branches;
|
|
3671
3727
|
if (state.selectedBranch === void 0) {
|
|
3672
3728
|
if (syncDefaultBranch !== void 0) {
|
|
3673
|
-
const branchState = state.branchState ?? syncDefaultBranch.initialState;
|
|
3729
|
+
const branchState = getAnnotatedChildState(state, state.branchState ?? syncDefaultBranch.initialState, syncDefaultBranch);
|
|
3674
3730
|
const defaultResult = unwrapCompleteResult(syncDefaultBranch.complete(branchState, withChildExecPath(exec, "_branch")));
|
|
3675
3731
|
if (!defaultResult.success) return defaultResult;
|
|
3676
3732
|
return {
|
|
@@ -3690,12 +3746,12 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3690
3746
|
const branchParser = state.selectedBranch.kind === "default" ? syncDefaultBranch : syncBranches[state.selectedBranch.key];
|
|
3691
3747
|
const combinedState = {
|
|
3692
3748
|
_discriminator: state.discriminatorState,
|
|
3693
|
-
_branch: state.branchState
|
|
3749
|
+
_branch: getAnnotatedChildState(state, state.branchState, branchParser)
|
|
3694
3750
|
};
|
|
3695
3751
|
const runtime = require_dependency_runtime.createDependencyRuntimeContext(exec?.dependencyRegistry?.clone());
|
|
3696
3752
|
require_dependency_runtime.collectExplicitSourceValues(require_dependency_runtime.buildRuntimeNodesFromPairs([["_discriminator", discriminator], ["_branch", branchParser]], combinedState, exec?.path), runtime);
|
|
3697
3753
|
require_dependency_runtime.collectSourcesFromState(combinedState, runtime);
|
|
3698
|
-
const resolvedBranchState = require_dependency_runtime.resolveStateWithRuntime(state.branchState, runtime);
|
|
3754
|
+
const resolvedBranchState = getAnnotatedChildState(state, require_dependency_runtime.resolveStateWithRuntime(state.branchState, runtime), branchParser);
|
|
3699
3755
|
const completionExec = {
|
|
3700
3756
|
...exec ?? {
|
|
3701
3757
|
usage: branchParser.usage,
|
|
@@ -3733,7 +3789,7 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3733
3789
|
const completeAsync = async (state, exec) => {
|
|
3734
3790
|
if (state.selectedBranch === void 0) {
|
|
3735
3791
|
if (defaultBranch !== void 0) {
|
|
3736
|
-
const branchState = state.branchState ?? defaultBranch.initialState;
|
|
3792
|
+
const branchState = getAnnotatedChildState(state, state.branchState ?? defaultBranch.initialState, defaultBranch);
|
|
3737
3793
|
const defaultResult = unwrapCompleteResult(await defaultBranch.complete(branchState, withChildExecPath(exec, "_branch")));
|
|
3738
3794
|
if (!defaultResult.success) return defaultResult;
|
|
3739
3795
|
return {
|
|
@@ -3753,12 +3809,12 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3753
3809
|
const branchParser = state.selectedBranch.kind === "default" ? defaultBranch : branches[state.selectedBranch.key];
|
|
3754
3810
|
const combinedState = {
|
|
3755
3811
|
_discriminator: state.discriminatorState,
|
|
3756
|
-
_branch: state.branchState
|
|
3812
|
+
_branch: getAnnotatedChildState(state, state.branchState, branchParser)
|
|
3757
3813
|
};
|
|
3758
3814
|
const runtime = require_dependency_runtime.createDependencyRuntimeContext(exec?.dependencyRegistry?.clone());
|
|
3759
3815
|
await require_dependency_runtime.collectExplicitSourceValuesAsync(require_dependency_runtime.buildRuntimeNodesFromPairs([["_discriminator", discriminator], ["_branch", branchParser]], combinedState, exec?.path), runtime);
|
|
3760
3816
|
require_dependency_runtime.collectSourcesFromState(combinedState, runtime);
|
|
3761
|
-
const resolvedBranchState = await require_dependency_runtime.resolveStateWithRuntimeAsync(state.branchState, runtime);
|
|
3817
|
+
const resolvedBranchState = getAnnotatedChildState(state, await require_dependency_runtime.resolveStateWithRuntimeAsync(state.branchState, runtime), branchParser);
|
|
3762
3818
|
const completionExec = {
|
|
3763
3819
|
...exec ?? {
|
|
3764
3820
|
usage: branchParser.usage,
|
|
@@ -3800,14 +3856,12 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3800
3856
|
const syncDefaultBranch = defaultBranch;
|
|
3801
3857
|
if (state.selectedBranch === void 0) {
|
|
3802
3858
|
const runtime = require_dependency_runtime.createDependencyRuntimeContext(context.dependencyRegistry?.clone());
|
|
3803
|
-
|
|
3859
|
+
const defaultCombinedState = {
|
|
3804
3860
|
_discriminator: state.discriminatorState,
|
|
3805
|
-
_branch: state.branchState
|
|
3806
|
-
}
|
|
3807
|
-
require_dependency_runtime.
|
|
3808
|
-
|
|
3809
|
-
_branch: state.branchState
|
|
3810
|
-
}, runtime);
|
|
3861
|
+
_branch: syncDefaultBranch == null ? state.branchState : getAnnotatedChildState(state, state.branchState, syncDefaultBranch)
|
|
3862
|
+
};
|
|
3863
|
+
require_dependency_runtime.collectExplicitSourceValues(require_dependency_runtime.buildRuntimeNodesFromPairs(syncDefaultBranch == null ? [["_discriminator", discriminator]] : [["_discriminator", discriminator], ["_branch", syncDefaultBranch]], defaultCombinedState, context.exec?.path), runtime);
|
|
3864
|
+
require_dependency_runtime.collectSourcesFromState(defaultCombinedState, runtime);
|
|
3811
3865
|
const suggestContext = {
|
|
3812
3866
|
...context,
|
|
3813
3867
|
dependencyRegistry: runtime.registry,
|
|
@@ -3818,13 +3872,13 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3818
3872
|
} } : {}
|
|
3819
3873
|
};
|
|
3820
3874
|
yield* syncDiscriminator.suggest(withChildContext(suggestContext, "_discriminator", state.discriminatorState), prefix);
|
|
3821
|
-
if (syncDefaultBranch !== void 0) yield* syncDefaultBranch.suggest(withChildContext(suggestContext, "_branch", state.branchState ?? syncDefaultBranch.initialState), prefix);
|
|
3875
|
+
if (syncDefaultBranch !== void 0) yield* syncDefaultBranch.suggest(withChildContext(suggestContext, "_branch", state.branchState ?? syncDefaultBranch.initialState, syncDefaultBranch), prefix);
|
|
3822
3876
|
} else {
|
|
3823
3877
|
const branchParser = state.selectedBranch.kind === "default" ? syncDefaultBranch : syncBranches[state.selectedBranch.key];
|
|
3824
3878
|
const runtime = require_dependency_runtime.createDependencyRuntimeContext(context.dependencyRegistry?.clone());
|
|
3825
3879
|
const combinedState = {
|
|
3826
3880
|
_discriminator: state.discriminatorState,
|
|
3827
|
-
_branch: state.branchState
|
|
3881
|
+
_branch: getAnnotatedChildState(state, state.branchState, branchParser)
|
|
3828
3882
|
};
|
|
3829
3883
|
require_dependency_runtime.collectExplicitSourceValues(require_dependency_runtime.buildRuntimeNodesFromPairs([["_discriminator", discriminator], ["_branch", branchParser]], combinedState, context.exec?.path), runtime);
|
|
3830
3884
|
require_dependency_runtime.collectSourcesFromState(combinedState, runtime);
|
|
@@ -3837,21 +3891,19 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3837
3891
|
dependencyRegistry: runtime.registry
|
|
3838
3892
|
} } : {}
|
|
3839
3893
|
};
|
|
3840
|
-
yield* branchParser.suggest(withChildContext(suggestContext, "_branch", state.branchState), prefix);
|
|
3894
|
+
yield* branchParser.suggest(withChildContext(suggestContext, "_branch", state.branchState, branchParser), prefix);
|
|
3841
3895
|
}
|
|
3842
3896
|
}
|
|
3843
3897
|
async function* suggestAsync(context, prefix) {
|
|
3844
3898
|
const state = context.state ?? initialState;
|
|
3845
3899
|
if (state.selectedBranch === void 0) {
|
|
3846
3900
|
const runtime = require_dependency_runtime.createDependencyRuntimeContext(context.dependencyRegistry?.clone());
|
|
3847
|
-
|
|
3901
|
+
const defaultCombinedState = {
|
|
3848
3902
|
_discriminator: state.discriminatorState,
|
|
3849
|
-
_branch: state.branchState
|
|
3850
|
-
}
|
|
3851
|
-
require_dependency_runtime.
|
|
3852
|
-
|
|
3853
|
-
_branch: state.branchState
|
|
3854
|
-
}, runtime);
|
|
3903
|
+
_branch: defaultBranch == null ? state.branchState : getAnnotatedChildState(state, state.branchState, defaultBranch)
|
|
3904
|
+
};
|
|
3905
|
+
await require_dependency_runtime.collectExplicitSourceValuesAsync(require_dependency_runtime.buildRuntimeNodesFromPairs(defaultBranch == null ? [["_discriminator", discriminator]] : [["_discriminator", discriminator], ["_branch", defaultBranch]], defaultCombinedState, context.exec?.path), runtime);
|
|
3906
|
+
require_dependency_runtime.collectSourcesFromState(defaultCombinedState, runtime);
|
|
3855
3907
|
const suggestContext = {
|
|
3856
3908
|
...context,
|
|
3857
3909
|
dependencyRegistry: runtime.registry,
|
|
@@ -3862,13 +3914,13 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3862
3914
|
} } : {}
|
|
3863
3915
|
};
|
|
3864
3916
|
yield* discriminator.suggest(withChildContext(suggestContext, "_discriminator", state.discriminatorState), prefix);
|
|
3865
|
-
if (defaultBranch !== void 0) yield* defaultBranch.suggest(withChildContext(suggestContext, "_branch", state.branchState ?? defaultBranch.initialState), prefix);
|
|
3917
|
+
if (defaultBranch !== void 0) yield* defaultBranch.suggest(withChildContext(suggestContext, "_branch", state.branchState ?? defaultBranch.initialState, defaultBranch), prefix);
|
|
3866
3918
|
} else {
|
|
3867
3919
|
const branchParser = state.selectedBranch.kind === "default" ? defaultBranch : branches[state.selectedBranch.key];
|
|
3868
3920
|
const runtime = require_dependency_runtime.createDependencyRuntimeContext(context.dependencyRegistry?.clone());
|
|
3869
3921
|
const combinedState = {
|
|
3870
3922
|
_discriminator: state.discriminatorState,
|
|
3871
|
-
_branch: state.branchState
|
|
3923
|
+
_branch: getAnnotatedChildState(state, state.branchState, branchParser)
|
|
3872
3924
|
};
|
|
3873
3925
|
await require_dependency_runtime.collectExplicitSourceValuesAsync(require_dependency_runtime.buildRuntimeNodesFromPairs([["_discriminator", discriminator], ["_branch", branchParser]], combinedState, context.exec?.path), runtime);
|
|
3874
3926
|
require_dependency_runtime.collectSourcesFromState(combinedState, runtime);
|
|
@@ -3881,7 +3933,7 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
3881
3933
|
dependencyRegistry: runtime.registry
|
|
3882
3934
|
} } : {}
|
|
3883
3935
|
};
|
|
3884
|
-
yield* branchParser.suggest(withChildContext(suggestContext, "_branch", state.branchState), prefix);
|
|
3936
|
+
yield* branchParser.suggest(withChildContext(suggestContext, "_branch", state.branchState, branchParser), prefix);
|
|
3885
3937
|
}
|
|
3886
3938
|
}
|
|
3887
3939
|
const conditionalParser = {
|