@optique/core 0.10.0-dev.303 → 0.10.0-dev.307

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.
@@ -616,7 +616,7 @@ async function* suggestObjectAsync(context, prefix, parserPairs) {
616
616
  function collectDependencies(state, registry) {
617
617
  if (state === null || state === void 0) return;
618
618
  if (require_dependency.isDependencySourceState(state)) {
619
- const depId = state[require_dependency.DependencyId];
619
+ const depId = state[require_dependency.dependencyId];
620
620
  const result = state.result;
621
621
  if (result.success) registry.set(depId, result.value);
622
622
  return;
@@ -667,14 +667,14 @@ function resolveDeferred(state, registry) {
667
667
  else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
668
668
  else return deferredState.preliminaryResult;
669
669
  }
670
- const reParseResult = parser[require_dependency.ParseWithDependency](deferredState.rawInput, dependencyValues);
670
+ const reParseResult = parser[require_dependency.parseWithDependency](deferredState.rawInput, dependencyValues);
671
671
  if (reParseResult instanceof Promise) return deferredState.preliminaryResult;
672
672
  return reParseResult;
673
673
  }
674
674
  const depId = deferredState.dependencyId;
675
675
  if (registry.has(depId)) {
676
676
  const dependencyValue = registry.get(depId);
677
- const reParseResult = parser[require_dependency.ParseWithDependency](deferredState.rawInput, dependencyValue);
677
+ const reParseResult = parser[require_dependency.parseWithDependency](deferredState.rawInput, dependencyValue);
678
678
  if (reParseResult instanceof Promise) return deferredState.preliminaryResult;
679
679
  return reParseResult;
680
680
  }
@@ -722,13 +722,13 @@ async function resolveDeferredAsync(state, registry) {
722
722
  else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
723
723
  else return deferredState.preliminaryResult;
724
724
  }
725
- const reParseResult = parser[require_dependency.ParseWithDependency](deferredState.rawInput, dependencyValues);
725
+ const reParseResult = parser[require_dependency.parseWithDependency](deferredState.rawInput, dependencyValues);
726
726
  return Promise.resolve(reParseResult);
727
727
  }
728
728
  const depId = deferredState.dependencyId;
729
729
  if (registry.has(depId)) {
730
730
  const dependencyValue = registry.get(depId);
731
- const reParseResult = parser[require_dependency.ParseWithDependency](deferredState.rawInput, dependencyValue);
731
+ const reParseResult = parser[require_dependency.parseWithDependency](deferredState.rawInput, dependencyValue);
732
732
  return Promise.resolve(reParseResult);
733
733
  }
734
734
  return deferredState.preliminaryResult;
@@ -914,6 +914,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
914
914
  complete(state) {
915
915
  if (!isAsync) {
916
916
  const preCompletedState = {};
917
+ const preCompletedKeys = /* @__PURE__ */ new Set();
917
918
  for (const field of parserKeys) {
918
919
  const fieldKey = field;
919
920
  const fieldState = state[fieldKey];
@@ -921,14 +922,18 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
921
922
  if (Array.isArray(fieldState) && fieldState.length === 1 && require_dependency.isPendingDependencySourceState(fieldState[0])) {
922
923
  const completed = fieldParser.complete(fieldState);
923
924
  preCompletedState[fieldKey] = completed;
925
+ preCompletedKeys.add(fieldKey);
924
926
  } else if (fieldState === void 0 && require_dependency.isPendingDependencySourceState(fieldParser.initialState)) {
925
927
  const completed = fieldParser.complete([fieldParser.initialState]);
926
928
  preCompletedState[fieldKey] = completed;
929
+ preCompletedKeys.add(fieldKey);
927
930
  } else if (fieldState === void 0 && require_dependency.isWrappedDependencySource(fieldParser)) {
928
- const pendingState = fieldParser[require_dependency.WrappedDependencySourceMarker];
931
+ const pendingState = fieldParser[require_dependency.wrappedDependencySourceMarker];
929
932
  const completed = fieldParser.complete([pendingState]);
930
- if (require_dependency.isDependencySourceState(completed)) preCompletedState[fieldKey] = completed;
931
- else preCompletedState[fieldKey] = fieldState;
933
+ if (require_dependency.isDependencySourceState(completed)) {
934
+ preCompletedState[fieldKey] = completed;
935
+ preCompletedKeys.add(fieldKey);
936
+ } else preCompletedState[fieldKey] = fieldState;
932
937
  } else preCompletedState[fieldKey] = fieldState;
933
938
  }
934
939
  const resolvedState = resolveDeferredParseStates(preCompletedState);
@@ -937,11 +942,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
937
942
  const fieldKey = field;
938
943
  const fieldResolvedState = resolvedState[fieldKey];
939
944
  const fieldParser = parsers[field];
940
- const originalFieldState = state[fieldKey];
941
- const wasPreCompletedCase1 = Array.isArray(originalFieldState) && originalFieldState.length === 1 && require_dependency.isPendingDependencySourceState(originalFieldState[0]);
942
- const wasPreCompletedCase2 = originalFieldState === void 0 && require_dependency.isPendingDependencySourceState(fieldParser.initialState);
943
- const wasPreCompletedCase3 = originalFieldState === void 0 && require_dependency.isWrappedDependencySource(fieldParser);
944
- if (require_dependency.isDependencySourceState(fieldResolvedState) && (wasPreCompletedCase1 || wasPreCompletedCase2 || wasPreCompletedCase3)) {
945
+ if (require_dependency.isDependencySourceState(fieldResolvedState) && preCompletedKeys.has(fieldKey)) {
945
946
  const depResult = fieldResolvedState.result;
946
947
  if (depResult.success) result[fieldKey] = depResult.value;
947
948
  else return {
@@ -964,6 +965,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
964
965
  }
965
966
  return (async () => {
966
967
  const preCompletedState = {};
968
+ const preCompletedKeys = /* @__PURE__ */ new Set();
967
969
  for (const field of parserKeys) {
968
970
  const fieldKey = field;
969
971
  const fieldState = state[fieldKey];
@@ -971,14 +973,18 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
971
973
  if (Array.isArray(fieldState) && fieldState.length === 1 && require_dependency.isPendingDependencySourceState(fieldState[0])) {
972
974
  const completed = await fieldParser.complete(fieldState);
973
975
  preCompletedState[fieldKey] = completed;
976
+ preCompletedKeys.add(fieldKey);
974
977
  } else if (fieldState === void 0 && require_dependency.isPendingDependencySourceState(fieldParser.initialState)) {
975
978
  const completed = await fieldParser.complete([fieldParser.initialState]);
976
979
  preCompletedState[fieldKey] = completed;
980
+ preCompletedKeys.add(fieldKey);
977
981
  } else if (fieldState === void 0 && require_dependency.isWrappedDependencySource(fieldParser)) {
978
- const pendingState = fieldParser[require_dependency.WrappedDependencySourceMarker];
982
+ const pendingState = fieldParser[require_dependency.wrappedDependencySourceMarker];
979
983
  const completed = await fieldParser.complete([pendingState]);
980
- if (require_dependency.isDependencySourceState(completed)) preCompletedState[fieldKey] = completed;
981
- else preCompletedState[fieldKey] = fieldState;
984
+ if (require_dependency.isDependencySourceState(completed)) {
985
+ preCompletedState[fieldKey] = completed;
986
+ preCompletedKeys.add(fieldKey);
987
+ } else preCompletedState[fieldKey] = fieldState;
982
988
  } else preCompletedState[fieldKey] = fieldState;
983
989
  }
984
990
  const resolvedState = await resolveDeferredParseStatesAsync(preCompletedState);
@@ -987,11 +993,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
987
993
  const fieldKey = field;
988
994
  const fieldResolvedState = resolvedState[fieldKey];
989
995
  const fieldParser = parsers[field];
990
- const originalFieldState = state[fieldKey];
991
- const wasPreCompletedCase1 = Array.isArray(originalFieldState) && originalFieldState.length === 1 && require_dependency.isPendingDependencySourceState(originalFieldState[0]);
992
- const wasPreCompletedCase2 = originalFieldState === void 0 && require_dependency.isPendingDependencySourceState(fieldParser.initialState);
993
- const wasPreCompletedCase3 = originalFieldState === void 0 && require_dependency.isWrappedDependencySource(fieldParser);
994
- if (require_dependency.isDependencySourceState(fieldResolvedState) && (wasPreCompletedCase1 || wasPreCompletedCase2 || wasPreCompletedCase3)) {
996
+ if (require_dependency.isDependencySourceState(fieldResolvedState) && preCompletedKeys.has(fieldKey)) {
995
997
  const depResult = fieldResolvedState.result;
996
998
  if (depResult.success) result[fieldKey] = depResult.value;
997
999
  else return {
@@ -1240,7 +1242,7 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
1240
1242
  const completed = elementParser.complete([elementParser.initialState]);
1241
1243
  preCompletedState[i] = completed;
1242
1244
  } else if (elementState === void 0 && require_dependency.isWrappedDependencySource(elementParser)) {
1243
- const pendingState = elementParser[require_dependency.WrappedDependencySourceMarker];
1245
+ const pendingState = elementParser[require_dependency.wrappedDependencySourceMarker];
1244
1246
  const completed = elementParser.complete([pendingState]);
1245
1247
  preCompletedState[i] = completed;
1246
1248
  } else preCompletedState[i] = elementState;
@@ -1289,7 +1291,7 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
1289
1291
  const completed = await elementParser.complete([elementParser.initialState]);
1290
1292
  preCompletedState[i] = completed;
1291
1293
  } else if (elementState === void 0 && require_dependency.isWrappedDependencySource(elementParser)) {
1292
- const pendingState = elementParser[require_dependency.WrappedDependencySourceMarker];
1294
+ const pendingState = elementParser[require_dependency.wrappedDependencySourceMarker];
1293
1295
  const completed = await elementParser.complete([pendingState]);
1294
1296
  preCompletedState[i] = completed;
1295
1297
  } else preCompletedState[i] = elementState;
@@ -1,5 +1,5 @@
1
1
  import { message, optionName, values } from "./message.js";
2
- import { DependencyId, DependencyRegistry, ParseWithDependency, WrappedDependencySourceMarker, isDeferredParseState, isDependencySourceState, isPendingDependencySourceState, isWrappedDependencySource } from "./dependency.js";
2
+ import { DependencyRegistry, dependencyId, isDeferredParseState, isDependencySourceState, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, wrappedDependencySourceMarker } from "./dependency.js";
3
3
  import { extractArgumentMetavars, extractCommandNames, extractOptionNames } from "./usage.js";
4
4
  import { createErrorWithSuggestions, deduplicateSuggestions } from "./suggestion.js";
5
5
 
@@ -616,7 +616,7 @@ async function* suggestObjectAsync(context, prefix, parserPairs) {
616
616
  function collectDependencies(state, registry) {
617
617
  if (state === null || state === void 0) return;
618
618
  if (isDependencySourceState(state)) {
619
- const depId = state[DependencyId];
619
+ const depId = state[dependencyId];
620
620
  const result = state.result;
621
621
  if (result.success) registry.set(depId, result.value);
622
622
  return;
@@ -667,14 +667,14 @@ function resolveDeferred(state, registry) {
667
667
  else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
668
668
  else return deferredState.preliminaryResult;
669
669
  }
670
- const reParseResult = parser[ParseWithDependency](deferredState.rawInput, dependencyValues);
670
+ const reParseResult = parser[parseWithDependency](deferredState.rawInput, dependencyValues);
671
671
  if (reParseResult instanceof Promise) return deferredState.preliminaryResult;
672
672
  return reParseResult;
673
673
  }
674
674
  const depId = deferredState.dependencyId;
675
675
  if (registry.has(depId)) {
676
676
  const dependencyValue = registry.get(depId);
677
- const reParseResult = parser[ParseWithDependency](deferredState.rawInput, dependencyValue);
677
+ const reParseResult = parser[parseWithDependency](deferredState.rawInput, dependencyValue);
678
678
  if (reParseResult instanceof Promise) return deferredState.preliminaryResult;
679
679
  return reParseResult;
680
680
  }
@@ -722,13 +722,13 @@ async function resolveDeferredAsync(state, registry) {
722
722
  else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
723
723
  else return deferredState.preliminaryResult;
724
724
  }
725
- const reParseResult = parser[ParseWithDependency](deferredState.rawInput, dependencyValues);
725
+ const reParseResult = parser[parseWithDependency](deferredState.rawInput, dependencyValues);
726
726
  return Promise.resolve(reParseResult);
727
727
  }
728
728
  const depId = deferredState.dependencyId;
729
729
  if (registry.has(depId)) {
730
730
  const dependencyValue = registry.get(depId);
731
- const reParseResult = parser[ParseWithDependency](deferredState.rawInput, dependencyValue);
731
+ const reParseResult = parser[parseWithDependency](deferredState.rawInput, dependencyValue);
732
732
  return Promise.resolve(reParseResult);
733
733
  }
734
734
  return deferredState.preliminaryResult;
@@ -914,6 +914,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
914
914
  complete(state) {
915
915
  if (!isAsync) {
916
916
  const preCompletedState = {};
917
+ const preCompletedKeys = /* @__PURE__ */ new Set();
917
918
  for (const field of parserKeys) {
918
919
  const fieldKey = field;
919
920
  const fieldState = state[fieldKey];
@@ -921,14 +922,18 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
921
922
  if (Array.isArray(fieldState) && fieldState.length === 1 && isPendingDependencySourceState(fieldState[0])) {
922
923
  const completed = fieldParser.complete(fieldState);
923
924
  preCompletedState[fieldKey] = completed;
925
+ preCompletedKeys.add(fieldKey);
924
926
  } else if (fieldState === void 0 && isPendingDependencySourceState(fieldParser.initialState)) {
925
927
  const completed = fieldParser.complete([fieldParser.initialState]);
926
928
  preCompletedState[fieldKey] = completed;
929
+ preCompletedKeys.add(fieldKey);
927
930
  } else if (fieldState === void 0 && isWrappedDependencySource(fieldParser)) {
928
- const pendingState = fieldParser[WrappedDependencySourceMarker];
931
+ const pendingState = fieldParser[wrappedDependencySourceMarker];
929
932
  const completed = fieldParser.complete([pendingState]);
930
- if (isDependencySourceState(completed)) preCompletedState[fieldKey] = completed;
931
- else preCompletedState[fieldKey] = fieldState;
933
+ if (isDependencySourceState(completed)) {
934
+ preCompletedState[fieldKey] = completed;
935
+ preCompletedKeys.add(fieldKey);
936
+ } else preCompletedState[fieldKey] = fieldState;
932
937
  } else preCompletedState[fieldKey] = fieldState;
933
938
  }
934
939
  const resolvedState = resolveDeferredParseStates(preCompletedState);
@@ -937,11 +942,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
937
942
  const fieldKey = field;
938
943
  const fieldResolvedState = resolvedState[fieldKey];
939
944
  const fieldParser = parsers[field];
940
- const originalFieldState = state[fieldKey];
941
- const wasPreCompletedCase1 = Array.isArray(originalFieldState) && originalFieldState.length === 1 && isPendingDependencySourceState(originalFieldState[0]);
942
- const wasPreCompletedCase2 = originalFieldState === void 0 && isPendingDependencySourceState(fieldParser.initialState);
943
- const wasPreCompletedCase3 = originalFieldState === void 0 && isWrappedDependencySource(fieldParser);
944
- if (isDependencySourceState(fieldResolvedState) && (wasPreCompletedCase1 || wasPreCompletedCase2 || wasPreCompletedCase3)) {
945
+ if (isDependencySourceState(fieldResolvedState) && preCompletedKeys.has(fieldKey)) {
945
946
  const depResult = fieldResolvedState.result;
946
947
  if (depResult.success) result[fieldKey] = depResult.value;
947
948
  else return {
@@ -964,6 +965,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
964
965
  }
965
966
  return (async () => {
966
967
  const preCompletedState = {};
968
+ const preCompletedKeys = /* @__PURE__ */ new Set();
967
969
  for (const field of parserKeys) {
968
970
  const fieldKey = field;
969
971
  const fieldState = state[fieldKey];
@@ -971,14 +973,18 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
971
973
  if (Array.isArray(fieldState) && fieldState.length === 1 && isPendingDependencySourceState(fieldState[0])) {
972
974
  const completed = await fieldParser.complete(fieldState);
973
975
  preCompletedState[fieldKey] = completed;
976
+ preCompletedKeys.add(fieldKey);
974
977
  } else if (fieldState === void 0 && isPendingDependencySourceState(fieldParser.initialState)) {
975
978
  const completed = await fieldParser.complete([fieldParser.initialState]);
976
979
  preCompletedState[fieldKey] = completed;
980
+ preCompletedKeys.add(fieldKey);
977
981
  } else if (fieldState === void 0 && isWrappedDependencySource(fieldParser)) {
978
- const pendingState = fieldParser[WrappedDependencySourceMarker];
982
+ const pendingState = fieldParser[wrappedDependencySourceMarker];
979
983
  const completed = await fieldParser.complete([pendingState]);
980
- if (isDependencySourceState(completed)) preCompletedState[fieldKey] = completed;
981
- else preCompletedState[fieldKey] = fieldState;
984
+ if (isDependencySourceState(completed)) {
985
+ preCompletedState[fieldKey] = completed;
986
+ preCompletedKeys.add(fieldKey);
987
+ } else preCompletedState[fieldKey] = fieldState;
982
988
  } else preCompletedState[fieldKey] = fieldState;
983
989
  }
984
990
  const resolvedState = await resolveDeferredParseStatesAsync(preCompletedState);
@@ -987,11 +993,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
987
993
  const fieldKey = field;
988
994
  const fieldResolvedState = resolvedState[fieldKey];
989
995
  const fieldParser = parsers[field];
990
- const originalFieldState = state[fieldKey];
991
- const wasPreCompletedCase1 = Array.isArray(originalFieldState) && originalFieldState.length === 1 && isPendingDependencySourceState(originalFieldState[0]);
992
- const wasPreCompletedCase2 = originalFieldState === void 0 && isPendingDependencySourceState(fieldParser.initialState);
993
- const wasPreCompletedCase3 = originalFieldState === void 0 && isWrappedDependencySource(fieldParser);
994
- if (isDependencySourceState(fieldResolvedState) && (wasPreCompletedCase1 || wasPreCompletedCase2 || wasPreCompletedCase3)) {
996
+ if (isDependencySourceState(fieldResolvedState) && preCompletedKeys.has(fieldKey)) {
995
997
  const depResult = fieldResolvedState.result;
996
998
  if (depResult.success) result[fieldKey] = depResult.value;
997
999
  else return {
@@ -1240,7 +1242,7 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
1240
1242
  const completed = elementParser.complete([elementParser.initialState]);
1241
1243
  preCompletedState[i] = completed;
1242
1244
  } else if (elementState === void 0 && isWrappedDependencySource(elementParser)) {
1243
- const pendingState = elementParser[WrappedDependencySourceMarker];
1245
+ const pendingState = elementParser[wrappedDependencySourceMarker];
1244
1246
  const completed = elementParser.complete([pendingState]);
1245
1247
  preCompletedState[i] = completed;
1246
1248
  } else preCompletedState[i] = elementState;
@@ -1289,7 +1291,7 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
1289
1291
  const completed = await elementParser.complete([elementParser.initialState]);
1290
1292
  preCompletedState[i] = completed;
1291
1293
  } else if (elementState === void 0 && isWrappedDependencySource(elementParser)) {
1292
- const pendingState = elementParser[WrappedDependencySourceMarker];
1294
+ const pendingState = elementParser[wrappedDependencySourceMarker];
1293
1295
  const completed = await elementParser.complete([pendingState]);
1294
1296
  preCompletedState[i] = completed;
1295
1297
  } else preCompletedState[i] = elementState;