@optique/core 1.3.0-dev.2388 → 1.3.0-dev.2392

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.
@@ -994,6 +994,11 @@ function getNoMatchError(options, noMatchContext) {
994
994
  * when the committed branch completes.
995
995
  */
996
996
  function defineExclusiveSchedulingNodes(exclusiveParser, parsers) {
997
+ if (parsers.some((parser) => parser[require_dependency_runtime.sourceCollectionExpansionKey] === true)) Object.defineProperty(exclusiveParser, require_dependency_runtime.sourceCollectionExpansionKey, {
998
+ value: true,
999
+ configurable: true,
1000
+ enumerable: false
1001
+ });
997
1002
  Object.defineProperty(exclusiveParser, require_dependency_runtime.staticSourceScopeKey, {
998
1003
  value: parsers,
999
1004
  configurable: true,
@@ -994,6 +994,11 @@ function getNoMatchError(options, noMatchContext) {
994
994
  * when the committed branch completes.
995
995
  */
996
996
  function defineExclusiveSchedulingNodes(exclusiveParser, parsers) {
997
+ if (parsers.some((parser) => parser[sourceCollectionExpansionKey] === true)) Object.defineProperty(exclusiveParser, sourceCollectionExpansionKey, {
998
+ value: true,
999
+ configurable: true,
1000
+ enumerable: false
1001
+ });
997
1002
  Object.defineProperty(exclusiveParser, staticSourceScopeKey, {
998
1003
  value: parsers,
999
1004
  configurable: true,
@@ -663,12 +663,17 @@ async function completeEffectfulSourcesAsync(nodes, state, runtime, exec, option
663
663
  const demandNodes = options?.demandNodes ?? nodes;
664
664
  const demanded = collectDemandedDependencyIds(demandNodes, state, exec.trace);
665
665
  for (const id of demanded) session.demanded.add(id);
666
- for (const node of nodes) {
667
- if (node.requiresSourceId == null || node.providesSourceIds == null) continue;
668
- if (session.demanded.has(node.requiresSourceId)) continue;
669
- for (const provided of node.providesSourceIds) if (session.demanded.has(provided)) {
670
- session.demanded.add(node.requiresSourceId);
671
- break;
666
+ let demandAdded = true;
667
+ while (demandAdded) {
668
+ demandAdded = false;
669
+ for (const node of nodes) {
670
+ if (node.requiresSourceId == null || node.providesSourceIds == null) continue;
671
+ if (session.demanded.has(node.requiresSourceId)) continue;
672
+ for (const provided of node.providesSourceIds) if (session.demanded.has(provided)) {
673
+ session.demanded.add(node.requiresSourceId);
674
+ demandAdded = true;
675
+ break;
676
+ }
672
677
  }
673
678
  }
674
679
  }
@@ -663,12 +663,17 @@ async function completeEffectfulSourcesAsync(nodes, state, runtime, exec, option
663
663
  const demandNodes = options?.demandNodes ?? nodes;
664
664
  const demanded = collectDemandedDependencyIds(demandNodes, state, exec.trace);
665
665
  for (const id of demanded) session.demanded.add(id);
666
- for (const node of nodes) {
667
- if (node.requiresSourceId == null || node.providesSourceIds == null) continue;
668
- if (session.demanded.has(node.requiresSourceId)) continue;
669
- for (const provided of node.providesSourceIds) if (session.demanded.has(provided)) {
670
- session.demanded.add(node.requiresSourceId);
671
- break;
666
+ let demandAdded = true;
667
+ while (demandAdded) {
668
+ demandAdded = false;
669
+ for (const node of nodes) {
670
+ if (node.requiresSourceId == null || node.providesSourceIds == null) continue;
671
+ if (session.demanded.has(node.requiresSourceId)) continue;
672
+ for (const provided of node.providesSourceIds) if (session.demanded.has(provided)) {
673
+ session.demanded.add(node.requiresSourceId);
674
+ demandAdded = true;
675
+ break;
676
+ }
672
677
  }
673
678
  }
674
679
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optique/core",
3
- "version": "1.3.0-dev.2388",
3
+ "version": "1.3.0-dev.2392",
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.2388+055f7a0d",
224
+ "@optique/env": "1.3.0-dev.2392+e285c4e9",
225
225
  "@types/node": "^24.0.0",
226
226
  "fast-check": "^4.7.0",
227
227
  "tsdown": "^0.13.0",