@optique/core 1.3.0-dev.2417 → 1.3.0-dev.2418
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/dependency-metadata.d.cts +25 -1
- package/dist/dependency-metadata.d.ts +25 -1
- package/dist/dependency-runtime.cjs +41 -4
- package/dist/dependency-runtime.js +41 -4
- package/dist/dependency.cjs +1 -0
- package/dist/dependency.d.cts +2 -2
- package/dist/dependency.d.ts +2 -2
- package/dist/dependency.js +2 -2
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/internal/dependency.cjs +23 -0
- package/dist/internal/dependency.d.cts +28 -1
- package/dist/internal/dependency.d.ts +28 -1
- package/dist/internal/dependency.js +23 -1
- package/package.json +2 -2
- package/skills/optique/SKILL.md +5 -0
|
@@ -91,6 +91,24 @@ interface DerivedDependencyCapability {
|
|
|
91
91
|
*/
|
|
92
92
|
readonly replaySuggest?: (prefix: string, dependencyValues: readonly unknown[]) => Iterable<Suggestion> | AsyncIterable<Suggestion>;
|
|
93
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Metadata for a parser whose effectful completion consumes dependency
|
|
96
|
+
* source values without replaying a parse.
|
|
97
|
+
*
|
|
98
|
+
* A prompt with a derived configuration is the canonical case: resolving
|
|
99
|
+
* the configuration reads previously published dependency values, so the
|
|
100
|
+
* named sources must publish before the parser's effectful completion may
|
|
101
|
+
* run. The scheduler adds provider edges for these IDs, propagates
|
|
102
|
+
* demand through them when the owning source is demanded, and includes
|
|
103
|
+
* them in failure lineage.
|
|
104
|
+
*
|
|
105
|
+
* @internal
|
|
106
|
+
* @since 1.3.0
|
|
107
|
+
*/
|
|
108
|
+
interface CompletionDependencyCapability {
|
|
109
|
+
/** The dependency source IDs the effectful completion reads. */
|
|
110
|
+
readonly dependencyIds: readonly symbol[];
|
|
111
|
+
}
|
|
94
112
|
/**
|
|
95
113
|
* Metadata indicating that a wrapper transforms the dependency source value.
|
|
96
114
|
*
|
|
@@ -116,6 +134,12 @@ interface ParserDependencyMetadata {
|
|
|
116
134
|
readonly source?: DependencySourceCapability;
|
|
117
135
|
/** Present if the parser depends on one or more sources. */
|
|
118
136
|
readonly derived?: DerivedDependencyCapability;
|
|
137
|
+
/**
|
|
138
|
+
* Present if the parser's effectful completion consumes dependency
|
|
139
|
+
* values (e.g., a prompt with a derived configuration).
|
|
140
|
+
* @since 1.3.0
|
|
141
|
+
*/
|
|
142
|
+
readonly completion?: CompletionDependencyCapability;
|
|
119
143
|
/** Present if a transform has been applied. */
|
|
120
144
|
readonly transform?: DependencyTransformCapability;
|
|
121
145
|
}
|
|
@@ -163,4 +187,4 @@ interface WithDefaultCompositionOptions {
|
|
|
163
187
|
*/
|
|
164
188
|
declare function composeDependencyMetadata(inner: ParserDependencyMetadata | undefined, wrapperKind: "optional" | "withDefault" | "map", options?: WithDefaultCompositionOptions): ParserDependencyMetadata | undefined;
|
|
165
189
|
//#endregion
|
|
166
|
-
export { DependencySourceCapability, DependencyTransformCapability, DerivedDependencyCapability, ParserDependencyMetadata, WithDefaultCompositionOptions, composeDependencyMetadata, extractDependencyMetadata };
|
|
190
|
+
export { CompletionDependencyCapability, DependencySourceCapability, DependencyTransformCapability, DerivedDependencyCapability, ParserDependencyMetadata, WithDefaultCompositionOptions, composeDependencyMetadata, extractDependencyMetadata };
|
|
@@ -91,6 +91,24 @@ interface DerivedDependencyCapability {
|
|
|
91
91
|
*/
|
|
92
92
|
readonly replaySuggest?: (prefix: string, dependencyValues: readonly unknown[]) => Iterable<Suggestion> | AsyncIterable<Suggestion>;
|
|
93
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Metadata for a parser whose effectful completion consumes dependency
|
|
96
|
+
* source values without replaying a parse.
|
|
97
|
+
*
|
|
98
|
+
* A prompt with a derived configuration is the canonical case: resolving
|
|
99
|
+
* the configuration reads previously published dependency values, so the
|
|
100
|
+
* named sources must publish before the parser's effectful completion may
|
|
101
|
+
* run. The scheduler adds provider edges for these IDs, propagates
|
|
102
|
+
* demand through them when the owning source is demanded, and includes
|
|
103
|
+
* them in failure lineage.
|
|
104
|
+
*
|
|
105
|
+
* @internal
|
|
106
|
+
* @since 1.3.0
|
|
107
|
+
*/
|
|
108
|
+
interface CompletionDependencyCapability {
|
|
109
|
+
/** The dependency source IDs the effectful completion reads. */
|
|
110
|
+
readonly dependencyIds: readonly symbol[];
|
|
111
|
+
}
|
|
94
112
|
/**
|
|
95
113
|
* Metadata indicating that a wrapper transforms the dependency source value.
|
|
96
114
|
*
|
|
@@ -116,6 +134,12 @@ interface ParserDependencyMetadata {
|
|
|
116
134
|
readonly source?: DependencySourceCapability;
|
|
117
135
|
/** Present if the parser depends on one or more sources. */
|
|
118
136
|
readonly derived?: DerivedDependencyCapability;
|
|
137
|
+
/**
|
|
138
|
+
* Present if the parser's effectful completion consumes dependency
|
|
139
|
+
* values (e.g., a prompt with a derived configuration).
|
|
140
|
+
* @since 1.3.0
|
|
141
|
+
*/
|
|
142
|
+
readonly completion?: CompletionDependencyCapability;
|
|
119
143
|
/** Present if a transform has been applied. */
|
|
120
144
|
readonly transform?: DependencyTransformCapability;
|
|
121
145
|
}
|
|
@@ -163,4 +187,4 @@ interface WithDefaultCompositionOptions {
|
|
|
163
187
|
*/
|
|
164
188
|
declare function composeDependencyMetadata(inner: ParserDependencyMetadata | undefined, wrapperKind: "optional" | "withDefault" | "map", options?: WithDefaultCompositionOptions): ParserDependencyMetadata | undefined;
|
|
165
189
|
//#endregion
|
|
166
|
-
export { DependencySourceCapability, DependencyTransformCapability, DerivedDependencyCapability, ParserDependencyMetadata, WithDefaultCompositionOptions, composeDependencyMetadata, extractDependencyMetadata };
|
|
190
|
+
export { CompletionDependencyCapability, DependencySourceCapability, DependencyTransformCapability, DerivedDependencyCapability, ParserDependencyMetadata, WithDefaultCompositionOptions, composeDependencyMetadata, extractDependencyMetadata };
|
|
@@ -426,6 +426,14 @@ function orderDependencyNodes(nodes) {
|
|
|
426
426
|
for (const node of nodes) {
|
|
427
427
|
const derived = node.parser.dependencyMetadata?.derived;
|
|
428
428
|
if (derived != null) for (const dependencySourceId of derived.dependencyIds) for (const provider of providers.get(dependencySourceId) ?? []) addEdge(provider, node);
|
|
429
|
+
const completion = node.parser.dependencyMetadata?.completion;
|
|
430
|
+
if (completion != null && !hasInactiveCompletion(node)) {
|
|
431
|
+
const ownSourceId = node.parser.dependencyMetadata?.source?.sourceId;
|
|
432
|
+
for (const dependencySourceId of completion.dependencyIds) {
|
|
433
|
+
if (dependencySourceId === ownSourceId) continue;
|
|
434
|
+
for (const provider of providers.get(dependencySourceId) ?? []) if (provider !== node) addEdge(provider, node);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
429
437
|
if (node.requiresSourceId != null) {
|
|
430
438
|
for (const provider of providers.get(node.requiresSourceId) ?? []) if (provider !== node) addEdge(provider, node);
|
|
431
439
|
}
|
|
@@ -446,7 +454,7 @@ function orderDependencyNodes(nodes) {
|
|
|
446
454
|
if (ordered.length !== nodes.length) {
|
|
447
455
|
const cycle = nodes.filter((node) => (indegree.get(node) ?? 0) > 0);
|
|
448
456
|
const labels = cycle.map(formatDependencyNodeLabel).join(" -> ");
|
|
449
|
-
throw new TypeError(`Circular dependency detected among
|
|
457
|
+
throw new TypeError(`Circular dependency detected among dependency sources: ${labels}.`);
|
|
450
458
|
}
|
|
451
459
|
return ordered;
|
|
452
460
|
}
|
|
@@ -527,18 +535,42 @@ function hasPendingProvider(node, providers, settled, runtime, options) {
|
|
|
527
535
|
function getNodeRawInput(node) {
|
|
528
536
|
return node.rawInput ?? extractRawInputFromState(node.state);
|
|
529
537
|
}
|
|
538
|
+
/**
|
|
539
|
+
* Whether a node's completion dependencies are inactive because this
|
|
540
|
+
* occurrence's own state already extracts a value: a field satisfied by
|
|
541
|
+
* the command line or a binding never runs its configuration resolver,
|
|
542
|
+
* so its completion dependencies must not order scheduling, demand
|
|
543
|
+
* upstream sources, or join failure lineage. A failed extraction keeps
|
|
544
|
+
* the completion active (the effectful completion is its recovery
|
|
545
|
+
* path), and an asynchronous extraction is conservatively treated as
|
|
546
|
+
* active because it cannot be decided synchronously.
|
|
547
|
+
*/
|
|
548
|
+
function hasInactiveCompletion(node) {
|
|
549
|
+
const metadata = node.parser.dependencyMetadata;
|
|
550
|
+
if (metadata?.completion == null || metadata.source == null) return false;
|
|
551
|
+
const extracted = metadata.source.extractSourceValue?.(node.state);
|
|
552
|
+
if (isPromiseLike(extracted)) {
|
|
553
|
+
Promise.resolve(extracted).catch(() => {});
|
|
554
|
+
return false;
|
|
555
|
+
}
|
|
556
|
+
return extracted != null && extracted.success === true;
|
|
557
|
+
}
|
|
530
558
|
function registerRuntimeSourceMetadata(nodes, runtime) {
|
|
531
559
|
for (const node of nodes) {
|
|
532
560
|
const metadata = node.parser.dependencyMetadata;
|
|
533
561
|
if (metadata?.source == null) continue;
|
|
534
|
-
|
|
562
|
+
const completion = hasInactiveCompletion(node) ? void 0 : metadata.completion;
|
|
563
|
+
const dependencyIds = completion == null ? metadata.derived?.dependencyIds : [...metadata.derived?.dependencyIds ?? [], ...completion.dependencyIds.filter((id) => !(metadata.derived?.dependencyIds ?? []).includes(id))];
|
|
564
|
+
runtime.registerSourceMetadata(metadata.source.sourceId, formatDependencyNodeMetavar(node), dependencyIds);
|
|
535
565
|
}
|
|
536
566
|
}
|
|
537
567
|
function propagateRuntimeSourceFailures(nodes, runtime) {
|
|
538
568
|
for (const node of orderDependencyNodes(nodes)) {
|
|
539
569
|
const metadata = node.parser.dependencyMetadata;
|
|
540
|
-
if (metadata
|
|
541
|
-
|
|
570
|
+
if (metadata == null) continue;
|
|
571
|
+
const completion = hasInactiveCompletion(node) ? void 0 : metadata.completion;
|
|
572
|
+
if (metadata.derived == null && completion == null) continue;
|
|
573
|
+
runtime.propagateSourceFailure([...metadata.derived?.dependencyIds ?? [], ...completion?.dependencyIds ?? []], formatDependencyNodeMetavar(node), metadata.source?.sourceId);
|
|
542
574
|
}
|
|
543
575
|
}
|
|
544
576
|
/**
|
|
@@ -1009,6 +1041,11 @@ async function completeEffectfulSourcesAsync(nodes, state, runtime, exec, option
|
|
|
1009
1041
|
session.demanded.add(dependencySourceId);
|
|
1010
1042
|
demandAdded = true;
|
|
1011
1043
|
}
|
|
1044
|
+
if (metadata?.source != null && metadata.completion != null && session.demanded.has(metadata.source.sourceId) && !hasInactiveCompletion(node)) for (const dependencySourceId of metadata.completion.dependencyIds) {
|
|
1045
|
+
if (session.demanded.has(dependencySourceId)) continue;
|
|
1046
|
+
session.demanded.add(dependencySourceId);
|
|
1047
|
+
demandAdded = true;
|
|
1048
|
+
}
|
|
1012
1049
|
if (node.requiresSourceId == null || node.providesSourceIds == null) continue;
|
|
1013
1050
|
if (session.demanded.has(node.requiresSourceId)) continue;
|
|
1014
1051
|
for (const provided of node.providesSourceIds) if (session.demanded.has(provided)) {
|
|
@@ -426,6 +426,14 @@ function orderDependencyNodes(nodes) {
|
|
|
426
426
|
for (const node of nodes) {
|
|
427
427
|
const derived = node.parser.dependencyMetadata?.derived;
|
|
428
428
|
if (derived != null) for (const dependencySourceId of derived.dependencyIds) for (const provider of providers.get(dependencySourceId) ?? []) addEdge(provider, node);
|
|
429
|
+
const completion = node.parser.dependencyMetadata?.completion;
|
|
430
|
+
if (completion != null && !hasInactiveCompletion(node)) {
|
|
431
|
+
const ownSourceId = node.parser.dependencyMetadata?.source?.sourceId;
|
|
432
|
+
for (const dependencySourceId of completion.dependencyIds) {
|
|
433
|
+
if (dependencySourceId === ownSourceId) continue;
|
|
434
|
+
for (const provider of providers.get(dependencySourceId) ?? []) if (provider !== node) addEdge(provider, node);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
429
437
|
if (node.requiresSourceId != null) {
|
|
430
438
|
for (const provider of providers.get(node.requiresSourceId) ?? []) if (provider !== node) addEdge(provider, node);
|
|
431
439
|
}
|
|
@@ -446,7 +454,7 @@ function orderDependencyNodes(nodes) {
|
|
|
446
454
|
if (ordered.length !== nodes.length) {
|
|
447
455
|
const cycle = nodes.filter((node) => (indegree.get(node) ?? 0) > 0);
|
|
448
456
|
const labels = cycle.map(formatDependencyNodeLabel).join(" -> ");
|
|
449
|
-
throw new TypeError(`Circular dependency detected among
|
|
457
|
+
throw new TypeError(`Circular dependency detected among dependency sources: ${labels}.`);
|
|
450
458
|
}
|
|
451
459
|
return ordered;
|
|
452
460
|
}
|
|
@@ -527,18 +535,42 @@ function hasPendingProvider(node, providers, settled, runtime, options) {
|
|
|
527
535
|
function getNodeRawInput(node) {
|
|
528
536
|
return node.rawInput ?? extractRawInputFromState(node.state);
|
|
529
537
|
}
|
|
538
|
+
/**
|
|
539
|
+
* Whether a node's completion dependencies are inactive because this
|
|
540
|
+
* occurrence's own state already extracts a value: a field satisfied by
|
|
541
|
+
* the command line or a binding never runs its configuration resolver,
|
|
542
|
+
* so its completion dependencies must not order scheduling, demand
|
|
543
|
+
* upstream sources, or join failure lineage. A failed extraction keeps
|
|
544
|
+
* the completion active (the effectful completion is its recovery
|
|
545
|
+
* path), and an asynchronous extraction is conservatively treated as
|
|
546
|
+
* active because it cannot be decided synchronously.
|
|
547
|
+
*/
|
|
548
|
+
function hasInactiveCompletion(node) {
|
|
549
|
+
const metadata = node.parser.dependencyMetadata;
|
|
550
|
+
if (metadata?.completion == null || metadata.source == null) return false;
|
|
551
|
+
const extracted = metadata.source.extractSourceValue?.(node.state);
|
|
552
|
+
if (isPromiseLike(extracted)) {
|
|
553
|
+
Promise.resolve(extracted).catch(() => {});
|
|
554
|
+
return false;
|
|
555
|
+
}
|
|
556
|
+
return extracted != null && extracted.success === true;
|
|
557
|
+
}
|
|
530
558
|
function registerRuntimeSourceMetadata(nodes, runtime) {
|
|
531
559
|
for (const node of nodes) {
|
|
532
560
|
const metadata = node.parser.dependencyMetadata;
|
|
533
561
|
if (metadata?.source == null) continue;
|
|
534
|
-
|
|
562
|
+
const completion = hasInactiveCompletion(node) ? void 0 : metadata.completion;
|
|
563
|
+
const dependencyIds = completion == null ? metadata.derived?.dependencyIds : [...metadata.derived?.dependencyIds ?? [], ...completion.dependencyIds.filter((id) => !(metadata.derived?.dependencyIds ?? []).includes(id))];
|
|
564
|
+
runtime.registerSourceMetadata(metadata.source.sourceId, formatDependencyNodeMetavar(node), dependencyIds);
|
|
535
565
|
}
|
|
536
566
|
}
|
|
537
567
|
function propagateRuntimeSourceFailures(nodes, runtime) {
|
|
538
568
|
for (const node of orderDependencyNodes(nodes)) {
|
|
539
569
|
const metadata = node.parser.dependencyMetadata;
|
|
540
|
-
if (metadata
|
|
541
|
-
|
|
570
|
+
if (metadata == null) continue;
|
|
571
|
+
const completion = hasInactiveCompletion(node) ? void 0 : metadata.completion;
|
|
572
|
+
if (metadata.derived == null && completion == null) continue;
|
|
573
|
+
runtime.propagateSourceFailure([...metadata.derived?.dependencyIds ?? [], ...completion?.dependencyIds ?? []], formatDependencyNodeMetavar(node), metadata.source?.sourceId);
|
|
542
574
|
}
|
|
543
575
|
}
|
|
544
576
|
/**
|
|
@@ -1009,6 +1041,11 @@ async function completeEffectfulSourcesAsync(nodes, state, runtime, exec, option
|
|
|
1009
1041
|
session.demanded.add(dependencySourceId);
|
|
1010
1042
|
demandAdded = true;
|
|
1011
1043
|
}
|
|
1044
|
+
if (metadata?.source != null && metadata.completion != null && session.demanded.has(metadata.source.sourceId) && !hasInactiveCompletion(node)) for (const dependencySourceId of metadata.completion.dependencyIds) {
|
|
1045
|
+
if (session.demanded.has(dependencySourceId)) continue;
|
|
1046
|
+
session.demanded.add(dependencySourceId);
|
|
1047
|
+
demandAdded = true;
|
|
1048
|
+
}
|
|
1012
1049
|
if (node.requiresSourceId == null || node.providesSourceIds == null) continue;
|
|
1013
1050
|
if (session.demanded.has(node.requiresSourceId)) continue;
|
|
1014
1051
|
for (const provided of node.providesSourceIds) if (session.demanded.has(provided)) {
|
package/dist/dependency.cjs
CHANGED
|
@@ -4,5 +4,6 @@ exports.dependency = require_internal_dependency.dependency;
|
|
|
4
4
|
exports.deriveFrom = require_internal_dependency.deriveFrom;
|
|
5
5
|
exports.deriveFromAsync = require_internal_dependency.deriveFromAsync;
|
|
6
6
|
exports.deriveFromSync = require_internal_dependency.deriveFromSync;
|
|
7
|
+
exports.getDependencySourceInfo = require_internal_dependency.getDependencySourceInfo;
|
|
7
8
|
exports.isDependencySource = require_internal_dependency.isDependencySource;
|
|
8
9
|
exports.isDerivedValueParser = require_internal_dependency.isDerivedValueParser;
|
package/dist/dependency.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMode, DependencySource, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser } from "./internal/dependency.cjs";
|
|
2
|
-
export { type AnyDependencySource, type CombineMode, type CombinedDependencyMode, type DependencyMode, type DependencySource, type DependencyValue, type DependencyValues, type DeriveAsyncOptions, type DeriveFromAsyncOptions, type DeriveFromOptions, type DeriveFromSyncOptions, type DeriveOptions, type DeriveSyncOptions, type DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser };
|
|
1
|
+
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMode, DependencySource, DependencySourceInfo, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, getDependencySourceInfo, isDependencySource, isDerivedValueParser } from "./internal/dependency.cjs";
|
|
2
|
+
export { type AnyDependencySource, type CombineMode, type CombinedDependencyMode, type DependencyMode, type DependencySource, type DependencySourceInfo, type DependencyValue, type DependencyValues, type DeriveAsyncOptions, type DeriveFromAsyncOptions, type DeriveFromOptions, type DeriveFromSyncOptions, type DeriveOptions, type DeriveSyncOptions, type DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, getDependencySourceInfo, isDependencySource, isDerivedValueParser };
|
package/dist/dependency.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMode, DependencySource, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser } from "./internal/dependency.js";
|
|
2
|
-
export { type AnyDependencySource, type CombineMode, type CombinedDependencyMode, type DependencyMode, type DependencySource, type DependencyValue, type DependencyValues, type DeriveAsyncOptions, type DeriveFromAsyncOptions, type DeriveFromOptions, type DeriveFromSyncOptions, type DeriveOptions, type DeriveSyncOptions, type DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser };
|
|
1
|
+
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMode, DependencySource, DependencySourceInfo, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, getDependencySourceInfo, isDependencySource, isDerivedValueParser } from "./internal/dependency.js";
|
|
2
|
+
export { type AnyDependencySource, type CombineMode, type CombinedDependencyMode, type DependencyMode, type DependencySource, type DependencySourceInfo, type DependencyValue, type DependencyValues, type DeriveAsyncOptions, type DeriveFromAsyncOptions, type DeriveFromOptions, type DeriveFromSyncOptions, type DeriveOptions, type DeriveSyncOptions, type DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, getDependencySourceInfo, isDependencySource, isDerivedValueParser };
|
package/dist/dependency.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser } from "./internal/dependency.js";
|
|
1
|
+
import { dependency, deriveFrom, deriveFromAsync, deriveFromSync, getDependencySourceInfo, isDependencySource, isDerivedValueParser } from "./internal/dependency.js";
|
|
2
2
|
|
|
3
|
-
export { dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser };
|
|
3
|
+
export { dependency, deriveFrom, deriveFromAsync, deriveFromSync, getDependencySourceInfo, isDependencySource, isDerivedValueParser };
|
package/dist/index.cjs
CHANGED
|
@@ -60,6 +60,7 @@ exports.formatMessage = require_message.formatMessage;
|
|
|
60
60
|
exports.formatUsage = require_usage.formatUsage;
|
|
61
61
|
exports.formatUsageTerm = require_usage.formatUsageTerm;
|
|
62
62
|
exports.getAnnotations = require_internal_annotations.getAnnotations;
|
|
63
|
+
exports.getDependencySourceInfo = require_internal_dependency.getDependencySourceInfo;
|
|
63
64
|
exports.getDocPage = require_internal_parser.getDocPage;
|
|
64
65
|
exports.getDocPageAsync = require_internal_parser.getDocPageAsync;
|
|
65
66
|
exports.getDocPageSync = require_internal_parser.getDocPageSync;
|
package/dist/index.d.cts
CHANGED
|
@@ -9,7 +9,7 @@ import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.cjs";
|
|
|
9
9
|
import { DeferredValue, DeferredValueOptions, DeferredValueSource, FluentParser, MultipleErrorOptions, MultipleOptions, ParserModifiers, WithDefaultError, WithDefaultOptions, deferredValue, fluent, isDeferredValue, map, multiple, nonEmpty, optional, withDefault } from "./modifiers.cjs";
|
|
10
10
|
import { ConditionalErrorOptions, ConditionalOptions, DuplicateOptionError, GroupOptions, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, NoMatchContext, ObjectErrorOptions, ObjectOptions, OrErrorOptions, OrOptions, SeqOptions, TupleOptions, concat, conditional, group, longestMatch, merge, object, or, seq, tuple } from "./constructs.cjs";
|
|
11
11
|
import { ParserValuePlaceholder, SourceContext, SourceContextRequest } from "./context.cjs";
|
|
12
|
-
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMode, DependencySource, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser } from "./internal/dependency.cjs";
|
|
12
|
+
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMode, DependencySource, DependencySourceInfo, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, getDependencySourceInfo, isDependencySource, isDerivedValueParser } from "./internal/dependency.cjs";
|
|
13
13
|
import { CommandListMode, CommandSubConfig, ContextOptionsParam, ExtractRequiredOptions, OptionSubConfig, RunOptions, RunParserError, RunWithOptions, SubstituteParserValue, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync } from "./facade.cjs";
|
|
14
14
|
import { ArgumentErrorOptions, ArgumentOptions, CommandErrorOptions, CommandOptions, FlagErrorOptions, FlagOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, OptionErrorOptions, OptionOptions, OptionState, PassThroughFormat, PassThroughOptions, argument, command, constant, fail, flag, negatableFlag, option, passThrough } from "./primitives.cjs";
|
|
15
|
-
export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, Color, ColorFormat, ColorOptions, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandListMode, CommandOptions, CommandSubConfig, ConditionalErrorOptions, ConditionalOptions, ContextOptionsParam, CronExpression, CronExpressionForOptions, CronOptions, DeferredMap, DeferredValue, DeferredValueOptions, DeferredValueSource, DependencyMode, DependencySource, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DomainOptions, DuplicateOptionError, EffectfulCompletionSession, EmailOptions, ExecutionContext, ExecutionPhase, ExtractRequiredOptions, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FirstOfOptions, FlagErrorOptions, FlagOptions, FloatOptions, FluentParser, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, KeyValueOptions, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OptionSubConfig, OrErrorOptions, OrOptions, ParseFrame, type ParseOptions, Parser, ParserContext, ParserModifiers, ParserResult, ParserValuePlaceholder, PassThroughFormat, PassThroughOptions, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, RegExpOptions, Result, RunOptions, RunParserError, RunWithOptions, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SeqOptions, ShellCompletion, ShowChoicesOptions, ShowDefaultOptions, SocketAddressOptions, SocketAddressValue, SourceContext, SourceContextRequest, StringOptions, SubstituteParserValue, Suggestion, TransformMapping, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, type ValueSetOptions, WithDefaultError, WithDefaultOptions, argument, bash, biject, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, color, command, commandLine, concat, conditional, constant, createParserContext, cron, deduplicateDocEntries, deduplicateDocFragments, deferredValue, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, firstOf, fish, flag, float, fluent, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredValue, isDependencySource, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isSuggestionHidden, isUsageHidden, isValueParser, json, keyValue, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, regExp, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, transform, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
|
15
|
+
export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, Color, ColorFormat, ColorOptions, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandListMode, CommandOptions, CommandSubConfig, ConditionalErrorOptions, ConditionalOptions, ContextOptionsParam, CronExpression, CronExpressionForOptions, CronOptions, DeferredMap, DeferredValue, DeferredValueOptions, DeferredValueSource, DependencyMode, DependencySource, DependencySourceInfo, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DomainOptions, DuplicateOptionError, EffectfulCompletionSession, EmailOptions, ExecutionContext, ExecutionPhase, ExtractRequiredOptions, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FirstOfOptions, FlagErrorOptions, FlagOptions, FloatOptions, FluentParser, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, KeyValueOptions, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OptionSubConfig, OrErrorOptions, OrOptions, ParseFrame, type ParseOptions, Parser, ParserContext, ParserModifiers, ParserResult, ParserValuePlaceholder, PassThroughFormat, PassThroughOptions, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, RegExpOptions, Result, RunOptions, RunParserError, RunWithOptions, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SeqOptions, ShellCompletion, ShowChoicesOptions, ShowDefaultOptions, SocketAddressOptions, SocketAddressValue, SourceContext, SourceContextRequest, StringOptions, SubstituteParserValue, Suggestion, TransformMapping, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, type ValueSetOptions, WithDefaultError, WithDefaultOptions, argument, bash, biject, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, color, command, commandLine, concat, conditional, constant, createParserContext, cron, deduplicateDocEntries, deduplicateDocFragments, deferredValue, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, firstOf, fish, flag, float, fluent, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDependencySourceInfo, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredValue, isDependencySource, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isSuggestionHidden, isUsageHidden, isValueParser, json, keyValue, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, regExp, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, transform, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.js";
|
|
|
9
9
|
import { DeferredValue, DeferredValueOptions, DeferredValueSource, FluentParser, MultipleErrorOptions, MultipleOptions, ParserModifiers, WithDefaultError, WithDefaultOptions, deferredValue, fluent, isDeferredValue, map, multiple, nonEmpty, optional, withDefault } from "./modifiers.js";
|
|
10
10
|
import { ConditionalErrorOptions, ConditionalOptions, DuplicateOptionError, GroupOptions, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, NoMatchContext, ObjectErrorOptions, ObjectOptions, OrErrorOptions, OrOptions, SeqOptions, TupleOptions, concat, conditional, group, longestMatch, merge, object, or, seq, tuple } from "./constructs.js";
|
|
11
11
|
import { ParserValuePlaceholder, SourceContext, SourceContextRequest } from "./context.js";
|
|
12
|
-
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMode, DependencySource, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser } from "./internal/dependency.js";
|
|
12
|
+
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMode, DependencySource, DependencySourceInfo, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, getDependencySourceInfo, isDependencySource, isDerivedValueParser } from "./internal/dependency.js";
|
|
13
13
|
import { CommandListMode, CommandSubConfig, ContextOptionsParam, ExtractRequiredOptions, OptionSubConfig, RunOptions, RunParserError, RunWithOptions, SubstituteParserValue, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync } from "./facade.js";
|
|
14
14
|
import { ArgumentErrorOptions, ArgumentOptions, CommandErrorOptions, CommandOptions, FlagErrorOptions, FlagOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, OptionErrorOptions, OptionOptions, OptionState, PassThroughFormat, PassThroughOptions, argument, command, constant, fail, flag, negatableFlag, option, passThrough } from "./primitives.js";
|
|
15
|
-
export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, Color, ColorFormat, ColorOptions, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandListMode, CommandOptions, CommandSubConfig, ConditionalErrorOptions, ConditionalOptions, ContextOptionsParam, CronExpression, CronExpressionForOptions, CronOptions, DeferredMap, DeferredValue, DeferredValueOptions, DeferredValueSource, DependencyMode, DependencySource, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DomainOptions, DuplicateOptionError, EffectfulCompletionSession, EmailOptions, ExecutionContext, ExecutionPhase, ExtractRequiredOptions, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FirstOfOptions, FlagErrorOptions, FlagOptions, FloatOptions, FluentParser, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, KeyValueOptions, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OptionSubConfig, OrErrorOptions, OrOptions, ParseFrame, type ParseOptions, Parser, ParserContext, ParserModifiers, ParserResult, ParserValuePlaceholder, PassThroughFormat, PassThroughOptions, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, RegExpOptions, Result, RunOptions, RunParserError, RunWithOptions, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SeqOptions, ShellCompletion, ShowChoicesOptions, ShowDefaultOptions, SocketAddressOptions, SocketAddressValue, SourceContext, SourceContextRequest, StringOptions, SubstituteParserValue, Suggestion, TransformMapping, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, type ValueSetOptions, WithDefaultError, WithDefaultOptions, argument, bash, biject, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, color, command, commandLine, concat, conditional, constant, createParserContext, cron, deduplicateDocEntries, deduplicateDocFragments, deferredValue, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, firstOf, fish, flag, float, fluent, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredValue, isDependencySource, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isSuggestionHidden, isUsageHidden, isValueParser, json, keyValue, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, regExp, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, transform, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
|
15
|
+
export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, Color, ColorFormat, ColorOptions, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandListMode, CommandOptions, CommandSubConfig, ConditionalErrorOptions, ConditionalOptions, ContextOptionsParam, CronExpression, CronExpressionForOptions, CronOptions, DeferredMap, DeferredValue, DeferredValueOptions, DeferredValueSource, DependencyMode, DependencySource, DependencySourceInfo, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DomainOptions, DuplicateOptionError, EffectfulCompletionSession, EmailOptions, ExecutionContext, ExecutionPhase, ExtractRequiredOptions, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FirstOfOptions, FlagErrorOptions, FlagOptions, FloatOptions, FluentParser, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, KeyValueOptions, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OptionSubConfig, OrErrorOptions, OrOptions, ParseFrame, type ParseOptions, Parser, ParserContext, ParserModifiers, ParserResult, ParserValuePlaceholder, PassThroughFormat, PassThroughOptions, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, RegExpOptions, Result, RunOptions, RunParserError, RunWithOptions, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SeqOptions, ShellCompletion, ShowChoicesOptions, ShowDefaultOptions, SocketAddressOptions, SocketAddressValue, SourceContext, SourceContextRequest, StringOptions, SubstituteParserValue, Suggestion, TransformMapping, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, type ValueSetOptions, WithDefaultError, WithDefaultOptions, argument, bash, biject, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, color, command, commandLine, concat, conditional, constant, createParserContext, cron, deduplicateDocEntries, deduplicateDocFragments, deferredValue, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, firstOf, fish, flag, float, fluent, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDependencySourceInfo, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredValue, isDependencySource, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isSuggestionHidden, isUsageHidden, isValueParser, json, keyValue, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, regExp, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, transform, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { getAnnotations } from "./internal/annotations.js";
|
|
|
2
2
|
import { commandLine, envVar, formatMessage, lineBreak, link, message, metavar, optionName, optionNames, text, value, valueSet, values } from "./message.js";
|
|
3
3
|
import { cloneUsage, cloneUsageTerm, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, formatUsage, formatUsageTerm, isDocHidden, isSuggestionHidden, isUsageHidden, mergeHidden, normalizeUsage } from "./usage.js";
|
|
4
4
|
import { cloneDocEntry, deduplicateDocEntries, deduplicateDocFragments, formatDocPage, isDocEntryHidden } from "./doc.js";
|
|
5
|
-
import { dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser } from "./internal/dependency.js";
|
|
5
|
+
import { dependency, deriveFrom, deriveFromAsync, deriveFromSync, getDependencySourceInfo, isDependencySource, isDerivedValueParser } from "./internal/dependency.js";
|
|
6
6
|
import { createParserContext, getDocPage, getDocPageAsync, getDocPageSync, parse, parseAsync, parseSync, suggest, suggestAsync, suggestSync } from "./internal/parser.js";
|
|
7
7
|
import { bash, fish, nu, pwsh, zsh } from "./completion.js";
|
|
8
8
|
import { WithDefaultError, deferredValue, fluent, isDeferredValue, map, multiple, nonEmpty, optional, withDefault } from "./modifiers.js";
|
|
@@ -12,4 +12,4 @@ import { biject, checkBooleanOption, checkEnumOption, choice, cidr, color, cron,
|
|
|
12
12
|
import { argument, command, constant, fail, flag, negatableFlag, option, passThrough } from "./primitives.js";
|
|
13
13
|
import { RunParserError, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync } from "./facade.js";
|
|
14
14
|
|
|
15
|
-
export { DuplicateOptionError, RunParserError, WithDefaultError, argument, bash, biject, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, color, command, commandLine, concat, conditional, constant, createParserContext, cron, deduplicateDocEntries, deduplicateDocFragments, deferredValue, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, firstOf, fish, flag, float, fluent, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredValue, isDependencySource, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isSuggestionHidden, isUsageHidden, isValueParser, json, keyValue, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, regExp, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, transform, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
|
15
|
+
export { DuplicateOptionError, RunParserError, WithDefaultError, argument, bash, biject, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, color, command, commandLine, concat, conditional, constant, createParserContext, cron, deduplicateDocEntries, deduplicateDocFragments, deferredValue, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, firstOf, fish, flag, float, fluent, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDependencySourceInfo, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredValue, isDependencySource, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isSuggestionHidden, isUsageHidden, isValueParser, json, keyValue, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, regExp, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, transform, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
|
@@ -141,6 +141,28 @@ function isDependencySource(parser) {
|
|
|
141
141
|
return dependencySourceMarker in parser && parser[dependencySourceMarker] === true;
|
|
142
142
|
}
|
|
143
143
|
/**
|
|
144
|
+
* Reads the identity and diagnostic label of a dependency source without
|
|
145
|
+
* exposing the internal marker symbols.
|
|
146
|
+
*
|
|
147
|
+
* Integration packages (e.g., *@optique/prompt*) use this to declare that
|
|
148
|
+
* an effectful completion consumes the source's value.
|
|
149
|
+
*
|
|
150
|
+
* @param source The dependency source to describe.
|
|
151
|
+
* @returns The source's identity and diagnostic metadata.
|
|
152
|
+
* @throws {TypeError} If `source` is not a dependency source created by
|
|
153
|
+
* `dependency()`.
|
|
154
|
+
* @internal
|
|
155
|
+
* @since 1.3.0
|
|
156
|
+
*/
|
|
157
|
+
function getDependencySourceInfo(source) {
|
|
158
|
+
if (source == null || typeof source !== "object" || source[dependencySourceMarker] !== true || typeof source[dependencySourceId] !== "symbol") throw new TypeError("Expected a dependency source created by dependency().");
|
|
159
|
+
const metavar = source.metavar;
|
|
160
|
+
return {
|
|
161
|
+
sourceId: source[dependencySourceId],
|
|
162
|
+
...typeof metavar === "string" ? { metavar } : {}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
144
166
|
* Checks if a value parser is a {@link DerivedValueParser}.
|
|
145
167
|
*
|
|
146
168
|
* @param parser The value parser to check.
|
|
@@ -1119,6 +1141,7 @@ exports.derivedValueParserMarker = derivedValueParserMarker;
|
|
|
1119
1141
|
exports.formatDependencyError = formatDependencyError;
|
|
1120
1142
|
exports.getDefaultValuesFunction = getDefaultValuesFunction;
|
|
1121
1143
|
exports.getDependencyIds = getDependencyIds;
|
|
1144
|
+
exports.getDependencySourceInfo = getDependencySourceInfo;
|
|
1122
1145
|
exports.getSnapshottedDefaultDependencyValues = getSnapshottedDefaultDependencyValues;
|
|
1123
1146
|
exports.isDeferredParseState = isDeferredParseState;
|
|
1124
1147
|
exports.isDependencySource = isDependencySource;
|
|
@@ -474,6 +474,33 @@ declare function dependency<M extends Mode, T>(parser: ValueParser<M, T>): Depen
|
|
|
474
474
|
* @since 0.10.0
|
|
475
475
|
*/
|
|
476
476
|
declare function isDependencySource<M extends Mode, T>(parser: ValueParser<M, T>): parser is DependencySource<M, T>;
|
|
477
|
+
/**
|
|
478
|
+
* Identity and diagnostic information about a dependency source.
|
|
479
|
+
*
|
|
480
|
+
* @internal
|
|
481
|
+
* @since 1.3.0
|
|
482
|
+
*/
|
|
483
|
+
interface DependencySourceInfo {
|
|
484
|
+
/** The source's own identity, unique per `dependency()` call. */
|
|
485
|
+
readonly sourceId: symbol;
|
|
486
|
+
/** Metavariable used to identify this source in diagnostics. */
|
|
487
|
+
readonly metavar?: string;
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Reads the identity and diagnostic label of a dependency source without
|
|
491
|
+
* exposing the internal marker symbols.
|
|
492
|
+
*
|
|
493
|
+
* Integration packages (e.g., *@optique/prompt*) use this to declare that
|
|
494
|
+
* an effectful completion consumes the source's value.
|
|
495
|
+
*
|
|
496
|
+
* @param source The dependency source to describe.
|
|
497
|
+
* @returns The source's identity and diagnostic metadata.
|
|
498
|
+
* @throws {TypeError} If `source` is not a dependency source created by
|
|
499
|
+
* `dependency()`.
|
|
500
|
+
* @internal
|
|
501
|
+
* @since 1.3.0
|
|
502
|
+
*/
|
|
503
|
+
declare function getDependencySourceInfo(source: AnyDependencySource): DependencySourceInfo;
|
|
477
504
|
/**
|
|
478
505
|
* Checks if a value parser is a {@link DerivedValueParser}.
|
|
479
506
|
*
|
|
@@ -862,4 +889,4 @@ type DependencyError = {
|
|
|
862
889
|
*/
|
|
863
890
|
declare function formatDependencyError(error: DependencyError): Message;
|
|
864
891
|
//#endregion
|
|
865
|
-
export { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultDependencyValueSnapshot, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceId, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, getSnapshottedDefaultDependencyValues, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, snapshotDefaultDependencyValues, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
|
892
|
+
export { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceInfo, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultDependencyValueSnapshot, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceId, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, getDependencySourceInfo, getSnapshottedDefaultDependencyValues, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, snapshotDefaultDependencyValues, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
|
@@ -474,6 +474,33 @@ declare function dependency<M extends Mode, T>(parser: ValueParser<M, T>): Depen
|
|
|
474
474
|
* @since 0.10.0
|
|
475
475
|
*/
|
|
476
476
|
declare function isDependencySource<M extends Mode, T>(parser: ValueParser<M, T>): parser is DependencySource<M, T>;
|
|
477
|
+
/**
|
|
478
|
+
* Identity and diagnostic information about a dependency source.
|
|
479
|
+
*
|
|
480
|
+
* @internal
|
|
481
|
+
* @since 1.3.0
|
|
482
|
+
*/
|
|
483
|
+
interface DependencySourceInfo {
|
|
484
|
+
/** The source's own identity, unique per `dependency()` call. */
|
|
485
|
+
readonly sourceId: symbol;
|
|
486
|
+
/** Metavariable used to identify this source in diagnostics. */
|
|
487
|
+
readonly metavar?: string;
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Reads the identity and diagnostic label of a dependency source without
|
|
491
|
+
* exposing the internal marker symbols.
|
|
492
|
+
*
|
|
493
|
+
* Integration packages (e.g., *@optique/prompt*) use this to declare that
|
|
494
|
+
* an effectful completion consumes the source's value.
|
|
495
|
+
*
|
|
496
|
+
* @param source The dependency source to describe.
|
|
497
|
+
* @returns The source's identity and diagnostic metadata.
|
|
498
|
+
* @throws {TypeError} If `source` is not a dependency source created by
|
|
499
|
+
* `dependency()`.
|
|
500
|
+
* @internal
|
|
501
|
+
* @since 1.3.0
|
|
502
|
+
*/
|
|
503
|
+
declare function getDependencySourceInfo(source: AnyDependencySource): DependencySourceInfo;
|
|
477
504
|
/**
|
|
478
505
|
* Checks if a value parser is a {@link DerivedValueParser}.
|
|
479
506
|
*
|
|
@@ -862,4 +889,4 @@ type DependencyError = {
|
|
|
862
889
|
*/
|
|
863
890
|
declare function formatDependencyError(error: DependencyError): Message;
|
|
864
891
|
//#endregion
|
|
865
|
-
export { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultDependencyValueSnapshot, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceId, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, getSnapshottedDefaultDependencyValues, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, snapshotDefaultDependencyValues, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
|
892
|
+
export { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceInfo, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultDependencyValueSnapshot, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceId, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, getDependencySourceInfo, getSnapshottedDefaultDependencyValues, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, snapshotDefaultDependencyValues, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
|
@@ -141,6 +141,28 @@ function isDependencySource(parser) {
|
|
|
141
141
|
return dependencySourceMarker in parser && parser[dependencySourceMarker] === true;
|
|
142
142
|
}
|
|
143
143
|
/**
|
|
144
|
+
* Reads the identity and diagnostic label of a dependency source without
|
|
145
|
+
* exposing the internal marker symbols.
|
|
146
|
+
*
|
|
147
|
+
* Integration packages (e.g., *@optique/prompt*) use this to declare that
|
|
148
|
+
* an effectful completion consumes the source's value.
|
|
149
|
+
*
|
|
150
|
+
* @param source The dependency source to describe.
|
|
151
|
+
* @returns The source's identity and diagnostic metadata.
|
|
152
|
+
* @throws {TypeError} If `source` is not a dependency source created by
|
|
153
|
+
* `dependency()`.
|
|
154
|
+
* @internal
|
|
155
|
+
* @since 1.3.0
|
|
156
|
+
*/
|
|
157
|
+
function getDependencySourceInfo(source) {
|
|
158
|
+
if (source == null || typeof source !== "object" || source[dependencySourceMarker] !== true || typeof source[dependencySourceId] !== "symbol") throw new TypeError("Expected a dependency source created by dependency().");
|
|
159
|
+
const metavar = source.metavar;
|
|
160
|
+
return {
|
|
161
|
+
sourceId: source[dependencySourceId],
|
|
162
|
+
...typeof metavar === "string" ? { metavar } : {}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
144
166
|
* Checks if a value parser is a {@link DerivedValueParser}.
|
|
145
167
|
*
|
|
146
168
|
* @param parser The value parser to check.
|
|
@@ -1099,4 +1121,4 @@ function formatDependencyError(error) {
|
|
|
1099
1121
|
}
|
|
1100
1122
|
|
|
1101
1123
|
//#endregion
|
|
1102
|
-
export { DependencyRegistry, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultDependencyValueSnapshot, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceId, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, getSnapshottedDefaultDependencyValues, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, snapshotDefaultDependencyValues, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
|
1124
|
+
export { DependencyRegistry, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultDependencyValueSnapshot, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceId, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, getDependencySourceInfo, getSnapshottedDefaultDependencyValues, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, snapshotDefaultDependencyValues, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optique/core",
|
|
3
|
-
"version": "1.3.0-dev.
|
|
3
|
+
"version": "1.3.0-dev.2418",
|
|
4
4
|
"description": "Type-safe combinatorial command-line interface parser",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"CLI",
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
},
|
|
222
222
|
"sideEffects": false,
|
|
223
223
|
"devDependencies": {
|
|
224
|
-
"@optique/env": "1.3.0-dev.
|
|
224
|
+
"@optique/env": "1.3.0-dev.2418+afa5cda1",
|
|
225
225
|
"@types/node": "^24.0.0",
|
|
226
226
|
"fast-check": "^4.7.0",
|
|
227
227
|
"tsdown": "^0.13.0",
|
package/skills/optique/SKILL.md
CHANGED
|
@@ -56,6 +56,11 @@ Core rules
|
|
|
56
56
|
For a multi-level chain, wrap the middle derivation too:
|
|
57
57
|
`dependency(source.deriveSync(...))`. Optique resolves such chains by
|
|
58
58
|
dependency order, independently of object/tuple field order.
|
|
59
|
+
- Use `derivePromptConfig(source, resolver)` (from *@optique/prompt*,
|
|
60
|
+
re-exported by *@optique/inquirer* and *@optique/clack*) when a prompt's
|
|
61
|
+
choices or message depend on another parsed value. The resolver may be
|
|
62
|
+
async and runs only at the real prompt fallback, after the named sources
|
|
63
|
+
resolve; keep static prompt configs for everything else.
|
|
59
64
|
- Build subcommands with `command()` combined by `or()`. Put a literal field
|
|
60
65
|
such as `command: constant("serve")` in each branch when you want a
|
|
61
66
|
discriminated union.
|