@optique/core 1.3.0-dev.2398 → 1.3.0-dev.2399

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.
@@ -1807,7 +1807,7 @@ function* suggestObjectSync(context, prefix, parserPairs) {
1807
1807
  const nodes = require_dependency_runtime.buildRuntimeNodesFromPairs(sourceParserPairs, context.state && typeof context.state === "object" ? context.state : {}, context.exec?.path);
1808
1808
  require_dependency_runtime.collectExplicitSourceValues(expandSourceCollectionNodes(nodes), runtime);
1809
1809
  if (context.state && typeof context.state === "object") require_dependency_runtime.collectSourcesFromState(context.state, runtime, /* @__PURE__ */ new WeakSet(), context.exec?.excludedSourceFields);
1810
- completeDependencySourceDefaults(context, sourceParserPairs, runtime.registry, context.exec);
1810
+ completeDependencySourceDefaults(context, sourceParserPairs, runtime, context.exec);
1811
1811
  const contextWithRegistry = {
1812
1812
  ...context,
1813
1813
  dependencyRegistry: runtime.registry,
@@ -1843,7 +1843,7 @@ async function* suggestObjectAsync(context, prefix, parserPairs) {
1843
1843
  const nodes = require_dependency_runtime.buildRuntimeNodesFromPairs(sourceParserPairs, context.state && typeof context.state === "object" ? context.state : {}, context.exec?.path);
1844
1844
  await require_dependency_runtime.collectExplicitSourceValuesAsync(expandSourceCollectionNodes(nodes), runtime);
1845
1845
  if (context.state && typeof context.state === "object") require_dependency_runtime.collectSourcesFromState(context.state, runtime, /* @__PURE__ */ new WeakSet(), context.exec?.excludedSourceFields);
1846
- await completeDependencySourceDefaultsAsync(context, sourceParserPairs, runtime.registry, context.exec);
1846
+ await completeDependencySourceDefaultsAsync(context, sourceParserPairs, runtime, context.exec);
1847
1847
  const contextWithRegistry = {
1848
1848
  ...context,
1849
1849
  dependencyRegistry: runtime.registry,
@@ -1935,12 +1935,14 @@ function* pendingDependencyDefaults(context, parserPairs, registry) {
1935
1935
  * @see https://github.com/dahlia/optique/issues/186
1936
1936
  * @internal
1937
1937
  */
1938
- function completeDependencySourceDefaults(context, parserPairs, registry, exec) {
1939
- for (const { parser, state } of pendingDependencyDefaults(context, parserPairs, registry)) {
1938
+ function completeDependencySourceDefaults(context, parserPairs, runtime, exec) {
1939
+ for (const { parser, state } of pendingDependencyDefaults(context, parserPairs, runtime.registry)) {
1940
1940
  const completed = parser.complete(state, exec);
1941
1941
  const depState = wrapAsDependencySourceState(completed, parser);
1942
- if (depState) registerCompletedDependency(depState, registry);
1942
+ if (depState) registerCompletedDependency(depState, runtime.registry);
1943
1943
  }
1944
+ const stateRecord = context.state != null && typeof context.state === "object" ? context.state : {};
1945
+ require_dependency_runtime.resolveDerivedSourceValues(expandSourceCollectionNodes(require_dependency_runtime.buildRuntimeNodesFromPairs(parserPairs, stateRecord, exec?.path)), runtime, { effectfulProviders: "inactive" });
1944
1946
  }
1945
1947
  /**
1946
1948
  * Wraps a completed result as a {@link DependencySourceState} if the parser
@@ -1973,12 +1975,14 @@ function wrapAsDependencySourceState(completed, parser) {
1973
1975
  * @see https://github.com/dahlia/optique/issues/186
1974
1976
  * @internal
1975
1977
  */
1976
- async function completeDependencySourceDefaultsAsync(context, parserPairs, registry, exec) {
1977
- for (const { parser, state } of pendingDependencyDefaults(context, parserPairs, registry)) {
1978
+ async function completeDependencySourceDefaultsAsync(context, parserPairs, runtime, exec) {
1979
+ for (const { parser, state } of pendingDependencyDefaults(context, parserPairs, runtime.registry)) {
1978
1980
  const completed = await parser.complete(state, exec);
1979
1981
  const depState = wrapAsDependencySourceState(completed, parser);
1980
- if (depState) registerCompletedDependency(depState, registry);
1982
+ if (depState) registerCompletedDependency(depState, runtime.registry);
1981
1983
  }
1984
+ const stateRecord = context.state != null && typeof context.state === "object" ? context.state : {};
1985
+ await require_dependency_runtime.resolveDerivedSourceValuesAsync(expandSourceCollectionNodes(require_dependency_runtime.buildRuntimeNodesFromPairs(parserPairs, stateRecord, exec?.path)), runtime, { effectfulProviders: "inactive" });
1982
1986
  }
1983
1987
  /**
1984
1988
  * Collects field-level parser pairs from child parsers that expose them
@@ -3154,7 +3158,7 @@ function suggestTupleSync(context, prefix, parsers) {
3154
3158
  completeDependencySourceDefaults({
3155
3159
  ...advancedContext,
3156
3160
  state: createAnnotatedArrayStateRecord(stateArray)
3157
- }, buildIndexedParserPairs(parsers), runtime.registry, advancedContext.exec);
3161
+ }, buildIndexedParserPairs(parsers), runtime, advancedContext.exec);
3158
3162
  }
3159
3163
  markFailedTupleSuggestSources(parsers, stateArray, advanced.failedParserIndexes, runtime, advancedContext.exec?.path);
3160
3164
  const contextWithRegistry = {
@@ -3188,7 +3192,7 @@ async function* suggestTupleAsync(context, prefix, parsers) {
3188
3192
  await completeDependencySourceDefaultsAsync({
3189
3193
  ...advancedContext,
3190
3194
  state: createAnnotatedArrayStateRecord(stateArray)
3191
- }, buildIndexedParserPairs(parsers), runtime.registry, advancedContext.exec);
3195
+ }, buildIndexedParserPairs(parsers), runtime, advancedContext.exec);
3192
3196
  }
3193
3197
  await markFailedTupleSuggestSourcesAsync(parsers, stateArray, advanced.failedParserIndexes, runtime, advancedContext.exec?.path);
3194
3198
  const contextWithRegistry = {
@@ -4003,7 +4007,7 @@ function seq(...rawArgs) {
4003
4007
  completeDependencySourceDefaults({
4004
4008
  ...advancedContext,
4005
4009
  state: createAnnotatedArrayStateRecord(stateArray)
4006
- }, buildIndexedParserPairs(syncParsers), runtime.registry, advancedContext.exec);
4010
+ }, buildIndexedParserPairs(syncParsers), runtime, advancedContext.exec);
4007
4011
  const contextWithRegistry = {
4008
4012
  ...advancedContext,
4009
4013
  dependencyRegistry: runtime.registry,
@@ -4033,7 +4037,7 @@ function seq(...rawArgs) {
4033
4037
  await completeDependencySourceDefaultsAsync({
4034
4038
  ...advancedContext,
4035
4039
  state: createAnnotatedArrayStateRecord(stateArray)
4036
- }, buildIndexedParserPairs(parsers), runtime.registry, advancedContext.exec);
4040
+ }, buildIndexedParserPairs(parsers), runtime, advancedContext.exec);
4037
4041
  const contextWithRegistry = {
4038
4042
  ...advancedContext,
4039
4043
  dependencyRegistry: runtime.registry,
@@ -4975,7 +4979,7 @@ function merge(...args) {
4975
4979
  });
4976
4980
  if (context.state && typeof context.state === "object") await require_dependency_runtime.collectExplicitSourceValuesAsync(expandSourceCollectionNodes(require_dependency_runtime.buildRuntimeNodesFromPairs(childFieldPairs$1, context.state, context.exec?.path)), runtime$1);
4977
4981
  if (context.state && typeof context.state === "object") require_dependency_runtime.collectSourcesFromState(context.state, runtime$1, /* @__PURE__ */ new WeakSet(), duplicateFieldNames$1);
4978
- await completeDependencySourceDefaultsAsync(context, childFieldPairs$1, runtime$1.registry, context.exec);
4982
+ await completeDependencySourceDefaultsAsync(context, childFieldPairs$1, runtime$1, context.exec);
4979
4983
  const contextWithRegistry$1 = {
4980
4984
  ...context,
4981
4985
  dependencyRegistry: runtime$1.registry
@@ -5015,7 +5019,7 @@ function merge(...args) {
5015
5019
  });
5016
5020
  if (context.state && typeof context.state === "object") require_dependency_runtime.collectExplicitSourceValues(expandSourceCollectionNodes(require_dependency_runtime.buildRuntimeNodesFromPairs(childFieldPairs, context.state, context.exec?.path)), runtime);
5017
5021
  if (context.state && typeof context.state === "object") require_dependency_runtime.collectSourcesFromState(context.state, runtime, /* @__PURE__ */ new WeakSet(), duplicateFieldNames);
5018
- completeDependencySourceDefaults(context, childFieldPairs, runtime.registry, context.exec);
5022
+ completeDependencySourceDefaults(context, childFieldPairs, runtime, context.exec);
5019
5023
  const contextWithRegistry = {
5020
5024
  ...context,
5021
5025
  dependencyRegistry: runtime.registry
@@ -5126,7 +5130,7 @@ function buildSuggestRegistry(preParsedContext, parsers) {
5126
5130
  completeDependencySourceDefaults({
5127
5131
  ...preParsedContext,
5128
5132
  state: createAnnotatedArrayStateRecord(stateArray)
5129
- }, buildIndexedParserPairs(parsers), runtime.registry, preParsedContext.exec);
5133
+ }, buildIndexedParserPairs(parsers), runtime, preParsedContext.exec);
5130
5134
  const prefix = preParsedContext.exec?.path ?? [];
5131
5135
  for (let i = 0; i < parsers.length; i++) seedSuggestRuntimeFromFieldParsers(parsers[i], require_annotation_state.getWrappedChildState(stateArray, stateArray[i], parsers[i]), runtime, [...prefix, i]);
5132
5136
  }
@@ -5154,7 +5158,7 @@ async function buildSuggestRegistryAsync(preParsedContext, parsers) {
5154
5158
  await completeDependencySourceDefaultsAsync({
5155
5159
  ...preParsedContext,
5156
5160
  state: createAnnotatedArrayStateRecord(stateArray)
5157
- }, buildIndexedParserPairs(parsers), runtime.registry, preParsedContext.exec);
5161
+ }, buildIndexedParserPairs(parsers), runtime, preParsedContext.exec);
5158
5162
  const prefix = preParsedContext.exec?.path ?? [];
5159
5163
  for (let i = 0; i < parsers.length; i++) await seedSuggestRuntimeFromFieldParsersAsync(parsers[i], require_annotation_state.getWrappedChildState(stateArray, stateArray[i], parsers[i]), runtime, [...prefix, i]);
5160
5164
  }
@@ -5194,7 +5198,7 @@ function seedSuggestRuntimeFromFieldParsers(parser, state, runtime, parentPath)
5194
5198
  dependencyRuntime: runtime,
5195
5199
  dependencyRegistry: runtime.registry
5196
5200
  }
5197
- }, pairs, runtime.registry, {
5201
+ }, pairs, runtime, {
5198
5202
  usage: parser.usage,
5199
5203
  phase: "suggest",
5200
5204
  path: parentPath,
@@ -5226,7 +5230,7 @@ async function seedSuggestRuntimeFromFieldParsersAsync(parser, state, runtime, p
5226
5230
  dependencyRuntime: runtime,
5227
5231
  dependencyRegistry: runtime.registry
5228
5232
  }
5229
- }, pairs, runtime.registry, {
5233
+ }, pairs, runtime, {
5230
5234
  usage: parser.usage,
5231
5235
  phase: "suggest",
5232
5236
  path: parentPath,
@@ -5,7 +5,7 @@ import { extractArgumentMetavars, extractCommandNames, extractOptionNames, isDoc
5
5
  import { deduplicateDocFragments } from "./doc.js";
6
6
  import { dispatchByMode, dispatchIterableByMode } from "./internal/mode-dispatch.js";
7
7
  import { createDependencySourceState, dependencyId, isDependencySourceState, isPendingDependencySourceState, isWrappedDependencySource, wrappedDependencySourceMarker } from "./internal/dependency.js";
8
- import { buildRuntimeNodesFromArray, buildRuntimeNodesFromPairs, collectExplicitSourceValues, collectExplicitSourceValuesAsync, collectSourcesFromState, completeEffectfulSourcesAsync, createDependencyRuntimeContext, effectfulSchedulingNodesKey, fillMissingSourceDefaults, fillMissingSourceDefaultsAsync, resolveStateWithRuntime, resolveStateWithRuntimeAsync, serializeSchedulingPath, sourceCollectionExpansionKey, staticSourceScopeKey } from "./dependency-runtime.js";
8
+ import { buildRuntimeNodesFromArray, buildRuntimeNodesFromPairs, collectExplicitSourceValues, collectExplicitSourceValuesAsync, collectSourcesFromState, completeEffectfulSourcesAsync, createDependencyRuntimeContext, effectfulSchedulingNodesKey, fillMissingSourceDefaults, fillMissingSourceDefaultsAsync, resolveDerivedSourceValues, resolveDerivedSourceValuesAsync, resolveStateWithRuntime, resolveStateWithRuntimeAsync, serializeSchedulingPath, sourceCollectionExpansionKey, staticSourceScopeKey } from "./dependency-runtime.js";
9
9
  import { defineInheritedAnnotationParser, defineParseLanes, getOwnParseLanes, getParserSuggestRuntimeNodes, unmatchedNonCliDependencySourceStateMarker } from "./internal/parser.js";
10
10
  import { annotationViewTargets, getWrappedChildParseState, getWrappedChildState, reconcileObjectChildState, unwrapAnnotationView } from "./annotation-state.js";
11
11
  import { allowDuplicateLeadingCommandNamesKey } from "./internal/command-alias.js";
@@ -1807,7 +1807,7 @@ function* suggestObjectSync(context, prefix, parserPairs) {
1807
1807
  const nodes = buildRuntimeNodesFromPairs(sourceParserPairs, context.state && typeof context.state === "object" ? context.state : {}, context.exec?.path);
1808
1808
  collectExplicitSourceValues(expandSourceCollectionNodes(nodes), runtime);
1809
1809
  if (context.state && typeof context.state === "object") collectSourcesFromState(context.state, runtime, /* @__PURE__ */ new WeakSet(), context.exec?.excludedSourceFields);
1810
- completeDependencySourceDefaults(context, sourceParserPairs, runtime.registry, context.exec);
1810
+ completeDependencySourceDefaults(context, sourceParserPairs, runtime, context.exec);
1811
1811
  const contextWithRegistry = {
1812
1812
  ...context,
1813
1813
  dependencyRegistry: runtime.registry,
@@ -1843,7 +1843,7 @@ async function* suggestObjectAsync(context, prefix, parserPairs) {
1843
1843
  const nodes = buildRuntimeNodesFromPairs(sourceParserPairs, context.state && typeof context.state === "object" ? context.state : {}, context.exec?.path);
1844
1844
  await collectExplicitSourceValuesAsync(expandSourceCollectionNodes(nodes), runtime);
1845
1845
  if (context.state && typeof context.state === "object") collectSourcesFromState(context.state, runtime, /* @__PURE__ */ new WeakSet(), context.exec?.excludedSourceFields);
1846
- await completeDependencySourceDefaultsAsync(context, sourceParserPairs, runtime.registry, context.exec);
1846
+ await completeDependencySourceDefaultsAsync(context, sourceParserPairs, runtime, context.exec);
1847
1847
  const contextWithRegistry = {
1848
1848
  ...context,
1849
1849
  dependencyRegistry: runtime.registry,
@@ -1935,12 +1935,14 @@ function* pendingDependencyDefaults(context, parserPairs, registry) {
1935
1935
  * @see https://github.com/dahlia/optique/issues/186
1936
1936
  * @internal
1937
1937
  */
1938
- function completeDependencySourceDefaults(context, parserPairs, registry, exec) {
1939
- for (const { parser, state } of pendingDependencyDefaults(context, parserPairs, registry)) {
1938
+ function completeDependencySourceDefaults(context, parserPairs, runtime, exec) {
1939
+ for (const { parser, state } of pendingDependencyDefaults(context, parserPairs, runtime.registry)) {
1940
1940
  const completed = parser.complete(state, exec);
1941
1941
  const depState = wrapAsDependencySourceState(completed, parser);
1942
- if (depState) registerCompletedDependency(depState, registry);
1942
+ if (depState) registerCompletedDependency(depState, runtime.registry);
1943
1943
  }
1944
+ const stateRecord = context.state != null && typeof context.state === "object" ? context.state : {};
1945
+ resolveDerivedSourceValues(expandSourceCollectionNodes(buildRuntimeNodesFromPairs(parserPairs, stateRecord, exec?.path)), runtime, { effectfulProviders: "inactive" });
1944
1946
  }
1945
1947
  /**
1946
1948
  * Wraps a completed result as a {@link DependencySourceState} if the parser
@@ -1973,12 +1975,14 @@ function wrapAsDependencySourceState(completed, parser) {
1973
1975
  * @see https://github.com/dahlia/optique/issues/186
1974
1976
  * @internal
1975
1977
  */
1976
- async function completeDependencySourceDefaultsAsync(context, parserPairs, registry, exec) {
1977
- for (const { parser, state } of pendingDependencyDefaults(context, parserPairs, registry)) {
1978
+ async function completeDependencySourceDefaultsAsync(context, parserPairs, runtime, exec) {
1979
+ for (const { parser, state } of pendingDependencyDefaults(context, parserPairs, runtime.registry)) {
1978
1980
  const completed = await parser.complete(state, exec);
1979
1981
  const depState = wrapAsDependencySourceState(completed, parser);
1980
- if (depState) registerCompletedDependency(depState, registry);
1982
+ if (depState) registerCompletedDependency(depState, runtime.registry);
1981
1983
  }
1984
+ const stateRecord = context.state != null && typeof context.state === "object" ? context.state : {};
1985
+ await resolveDerivedSourceValuesAsync(expandSourceCollectionNodes(buildRuntimeNodesFromPairs(parserPairs, stateRecord, exec?.path)), runtime, { effectfulProviders: "inactive" });
1982
1986
  }
1983
1987
  /**
1984
1988
  * Collects field-level parser pairs from child parsers that expose them
@@ -3154,7 +3158,7 @@ function suggestTupleSync(context, prefix, parsers) {
3154
3158
  completeDependencySourceDefaults({
3155
3159
  ...advancedContext,
3156
3160
  state: createAnnotatedArrayStateRecord(stateArray)
3157
- }, buildIndexedParserPairs(parsers), runtime.registry, advancedContext.exec);
3161
+ }, buildIndexedParserPairs(parsers), runtime, advancedContext.exec);
3158
3162
  }
3159
3163
  markFailedTupleSuggestSources(parsers, stateArray, advanced.failedParserIndexes, runtime, advancedContext.exec?.path);
3160
3164
  const contextWithRegistry = {
@@ -3188,7 +3192,7 @@ async function* suggestTupleAsync(context, prefix, parsers) {
3188
3192
  await completeDependencySourceDefaultsAsync({
3189
3193
  ...advancedContext,
3190
3194
  state: createAnnotatedArrayStateRecord(stateArray)
3191
- }, buildIndexedParserPairs(parsers), runtime.registry, advancedContext.exec);
3195
+ }, buildIndexedParserPairs(parsers), runtime, advancedContext.exec);
3192
3196
  }
3193
3197
  await markFailedTupleSuggestSourcesAsync(parsers, stateArray, advanced.failedParserIndexes, runtime, advancedContext.exec?.path);
3194
3198
  const contextWithRegistry = {
@@ -4003,7 +4007,7 @@ function seq(...rawArgs) {
4003
4007
  completeDependencySourceDefaults({
4004
4008
  ...advancedContext,
4005
4009
  state: createAnnotatedArrayStateRecord(stateArray)
4006
- }, buildIndexedParserPairs(syncParsers), runtime.registry, advancedContext.exec);
4010
+ }, buildIndexedParserPairs(syncParsers), runtime, advancedContext.exec);
4007
4011
  const contextWithRegistry = {
4008
4012
  ...advancedContext,
4009
4013
  dependencyRegistry: runtime.registry,
@@ -4033,7 +4037,7 @@ function seq(...rawArgs) {
4033
4037
  await completeDependencySourceDefaultsAsync({
4034
4038
  ...advancedContext,
4035
4039
  state: createAnnotatedArrayStateRecord(stateArray)
4036
- }, buildIndexedParserPairs(parsers), runtime.registry, advancedContext.exec);
4040
+ }, buildIndexedParserPairs(parsers), runtime, advancedContext.exec);
4037
4041
  const contextWithRegistry = {
4038
4042
  ...advancedContext,
4039
4043
  dependencyRegistry: runtime.registry,
@@ -4975,7 +4979,7 @@ function merge(...args) {
4975
4979
  });
4976
4980
  if (context.state && typeof context.state === "object") await collectExplicitSourceValuesAsync(expandSourceCollectionNodes(buildRuntimeNodesFromPairs(childFieldPairs$1, context.state, context.exec?.path)), runtime$1);
4977
4981
  if (context.state && typeof context.state === "object") collectSourcesFromState(context.state, runtime$1, /* @__PURE__ */ new WeakSet(), duplicateFieldNames$1);
4978
- await completeDependencySourceDefaultsAsync(context, childFieldPairs$1, runtime$1.registry, context.exec);
4982
+ await completeDependencySourceDefaultsAsync(context, childFieldPairs$1, runtime$1, context.exec);
4979
4983
  const contextWithRegistry$1 = {
4980
4984
  ...context,
4981
4985
  dependencyRegistry: runtime$1.registry
@@ -5015,7 +5019,7 @@ function merge(...args) {
5015
5019
  });
5016
5020
  if (context.state && typeof context.state === "object") collectExplicitSourceValues(expandSourceCollectionNodes(buildRuntimeNodesFromPairs(childFieldPairs, context.state, context.exec?.path)), runtime);
5017
5021
  if (context.state && typeof context.state === "object") collectSourcesFromState(context.state, runtime, /* @__PURE__ */ new WeakSet(), duplicateFieldNames);
5018
- completeDependencySourceDefaults(context, childFieldPairs, runtime.registry, context.exec);
5022
+ completeDependencySourceDefaults(context, childFieldPairs, runtime, context.exec);
5019
5023
  const contextWithRegistry = {
5020
5024
  ...context,
5021
5025
  dependencyRegistry: runtime.registry
@@ -5126,7 +5130,7 @@ function buildSuggestRegistry(preParsedContext, parsers) {
5126
5130
  completeDependencySourceDefaults({
5127
5131
  ...preParsedContext,
5128
5132
  state: createAnnotatedArrayStateRecord(stateArray)
5129
- }, buildIndexedParserPairs(parsers), runtime.registry, preParsedContext.exec);
5133
+ }, buildIndexedParserPairs(parsers), runtime, preParsedContext.exec);
5130
5134
  const prefix = preParsedContext.exec?.path ?? [];
5131
5135
  for (let i = 0; i < parsers.length; i++) seedSuggestRuntimeFromFieldParsers(parsers[i], getWrappedChildState(stateArray, stateArray[i], parsers[i]), runtime, [...prefix, i]);
5132
5136
  }
@@ -5154,7 +5158,7 @@ async function buildSuggestRegistryAsync(preParsedContext, parsers) {
5154
5158
  await completeDependencySourceDefaultsAsync({
5155
5159
  ...preParsedContext,
5156
5160
  state: createAnnotatedArrayStateRecord(stateArray)
5157
- }, buildIndexedParserPairs(parsers), runtime.registry, preParsedContext.exec);
5161
+ }, buildIndexedParserPairs(parsers), runtime, preParsedContext.exec);
5158
5162
  const prefix = preParsedContext.exec?.path ?? [];
5159
5163
  for (let i = 0; i < parsers.length; i++) await seedSuggestRuntimeFromFieldParsersAsync(parsers[i], getWrappedChildState(stateArray, stateArray[i], parsers[i]), runtime, [...prefix, i]);
5160
5164
  }
@@ -5194,7 +5198,7 @@ function seedSuggestRuntimeFromFieldParsers(parser, state, runtime, parentPath)
5194
5198
  dependencyRuntime: runtime,
5195
5199
  dependencyRegistry: runtime.registry
5196
5200
  }
5197
- }, pairs, runtime.registry, {
5201
+ }, pairs, runtime, {
5198
5202
  usage: parser.usage,
5199
5203
  phase: "suggest",
5200
5204
  path: parentPath,
@@ -5226,7 +5230,7 @@ async function seedSuggestRuntimeFromFieldParsersAsync(parser, state, runtime, p
5226
5230
  dependencyRuntime: runtime,
5227
5231
  dependencyRegistry: runtime.registry
5228
5232
  }
5229
- }, pairs, runtime.registry, {
5233
+ }, pairs, runtime, {
5230
5234
  usage: parser.usage,
5231
5235
  phase: "suggest",
5232
5236
  path: parentPath,
@@ -14,12 +14,15 @@ const require_internal_dependency = require('./internal/dependency.cjs');
14
14
  * @since 1.0.0
15
15
  */
16
16
  function extractDependencyMetadata(valueParser) {
17
- if (require_internal_dependency.isDependencySource(valueParser)) return { source: {
17
+ let source;
18
+ if (require_internal_dependency.isDependencySource(valueParser)) source = {
18
19
  kind: "source",
19
- sourceId: valueParser[require_internal_dependency.dependencyId],
20
+ sourceId: valueParser[require_internal_dependency.dependencySourceId],
21
+ metavar: valueParser.metavar,
20
22
  extractSourceValue: extractFromBareState,
21
23
  preservesSourceValue: true
22
- } };
24
+ };
25
+ let derived;
23
26
  if (require_internal_dependency.isDerivedValueParser(valueParser)) {
24
27
  const isMultiSource = require_internal_dependency.dependencyIds in valueParser && valueParser[require_internal_dependency.dependencyIds] != null;
25
28
  const allIds = isMultiSource ? valueParser[require_internal_dependency.dependencyIds] : [valueParser[require_internal_dependency.dependencyId]];
@@ -39,15 +42,19 @@ function extractDependencyMetadata(valueParser) {
39
42
  const depArg = isMultiSource ? depValues : depValues[0];
40
43
  return suggestFn(prefix, depArg);
41
44
  } : void 0;
42
- return { derived: {
45
+ derived = {
43
46
  kind: "derived",
44
47
  dependencyIds: allIds,
48
+ metavar: valueParser.metavar,
45
49
  getDefaultDependencyValues: defaultValuesFn,
46
50
  replayParse,
47
51
  replaySuggest
48
- } };
52
+ };
49
53
  }
50
- return void 0;
54
+ return source == null && derived == null ? void 0 : {
55
+ source,
56
+ derived
57
+ };
51
58
  }
52
59
  /**
53
60
  * Extracts the source parse result from a plain source state.
@@ -14,6 +14,8 @@ interface DependencySourceCapability {
14
14
  readonly kind: "source";
15
15
  /** The unique dependency source identifier. */
16
16
  readonly sourceId: symbol;
17
+ /** Metavariable used to identify this source in diagnostics. */
18
+ readonly metavar?: string;
17
19
  /**
18
20
  * Extracts the dependency source parse result from the parser's state.
19
21
  *
@@ -73,6 +75,8 @@ interface DerivedDependencyCapability {
73
75
  readonly kind: "derived";
74
76
  /** The dependency source IDs this parser depends on. */
75
77
  readonly dependencyIds: readonly symbol[];
78
+ /** Metavariable used to identify this parser in diagnostics. */
79
+ readonly metavar?: string;
76
80
  /**
77
81
  * Returns default values for each dependency, used when the
78
82
  * corresponding sources are not provided.
@@ -14,6 +14,8 @@ interface DependencySourceCapability {
14
14
  readonly kind: "source";
15
15
  /** The unique dependency source identifier. */
16
16
  readonly sourceId: symbol;
17
+ /** Metavariable used to identify this source in diagnostics. */
18
+ readonly metavar?: string;
17
19
  /**
18
20
  * Extracts the dependency source parse result from the parser's state.
19
21
  *
@@ -73,6 +75,8 @@ interface DerivedDependencyCapability {
73
75
  readonly kind: "derived";
74
76
  /** The dependency source IDs this parser depends on. */
75
77
  readonly dependencyIds: readonly symbol[];
78
+ /** Metavariable used to identify this parser in diagnostics. */
79
+ readonly metavar?: string;
76
80
  /**
77
81
  * Returns default values for each dependency, used when the
78
82
  * corresponding sources are not provided.
@@ -1,4 +1,4 @@
1
- import { defaultValues, dependencyId, dependencyIds, isDependencySource, isDependencySourceState, isDerivedValueParser, parseWithDependency, singleDefaultValue, suggestWithDependency } from "./internal/dependency.js";
1
+ import { defaultValues, dependencyId, dependencyIds, dependencySourceId, isDependencySource, isDependencySourceState, isDerivedValueParser, parseWithDependency, singleDefaultValue, suggestWithDependency } from "./internal/dependency.js";
2
2
 
3
3
  //#region src/dependency-metadata.ts
4
4
  /**
@@ -14,12 +14,15 @@ import { defaultValues, dependencyId, dependencyIds, isDependencySource, isDepen
14
14
  * @since 1.0.0
15
15
  */
16
16
  function extractDependencyMetadata(valueParser) {
17
- if (isDependencySource(valueParser)) return { source: {
17
+ let source;
18
+ if (isDependencySource(valueParser)) source = {
18
19
  kind: "source",
19
- sourceId: valueParser[dependencyId],
20
+ sourceId: valueParser[dependencySourceId],
21
+ metavar: valueParser.metavar,
20
22
  extractSourceValue: extractFromBareState,
21
23
  preservesSourceValue: true
22
- } };
24
+ };
25
+ let derived;
23
26
  if (isDerivedValueParser(valueParser)) {
24
27
  const isMultiSource = dependencyIds in valueParser && valueParser[dependencyIds] != null;
25
28
  const allIds = isMultiSource ? valueParser[dependencyIds] : [valueParser[dependencyId]];
@@ -39,15 +42,19 @@ function extractDependencyMetadata(valueParser) {
39
42
  const depArg = isMultiSource ? depValues : depValues[0];
40
43
  return suggestFn(prefix, depArg);
41
44
  } : void 0;
42
- return { derived: {
45
+ derived = {
43
46
  kind: "derived",
44
47
  dependencyIds: allIds,
48
+ metavar: valueParser.metavar,
45
49
  getDefaultDependencyValues: defaultValuesFn,
46
50
  replayParse,
47
51
  replaySuggest
48
- } };
52
+ };
49
53
  }
50
- return void 0;
54
+ return source == null && derived == null ? void 0 : {
55
+ source,
56
+ derived
57
+ };
51
58
  }
52
59
  /**
53
60
  * Extracts the source parse result from a plain source state.