@oclif/plugin-test-esbuild 0.5.131 → 0.5.133

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/README.md CHANGED
@@ -17,7 +17,7 @@ $ npm install -g @oclif/plugin-test-esbuild
17
17
  $ bundle COMMAND
18
18
  running command...
19
19
  $ bundle (--version)
20
- @oclif/plugin-test-esbuild/0.5.131 linux-x64 node-v24.14.1
20
+ @oclif/plugin-test-esbuild/0.5.133 linux-x64 node-v24.14.1
21
21
  $ bundle --help [COMMAND]
22
22
  USAGE
23
23
  $ bundle COMMAND
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  require_lib
3
- } from "./chunk-6SHF5RLP.js";
3
+ } from "./chunk-EKTKY2AC.js";
4
4
  import {
5
5
  __toESM,
6
6
  init_cjs_shims
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  require_lib
3
- } from "./chunk-6SHF5RLP.js";
3
+ } from "./chunk-EKTKY2AC.js";
4
4
  import {
5
5
  __toESM,
6
6
  init_cjs_shims
@@ -254,7 +254,7 @@ var require_package = __commonJS({
254
254
  module.exports = {
255
255
  name: "@oclif/core",
256
256
  description: "base library for oclif CLIs",
257
- version: "4.10.5",
257
+ version: "4.11.0",
258
258
  author: "Salesforce",
259
259
  bugs: "https://github.com/oclif/core/issues",
260
260
  dependencies: {
@@ -311,7 +311,7 @@ var require_package = __commonJS({
311
311
  madge: "^6.1.0",
312
312
  mocha: "^11.7.5",
313
313
  nyc: "^15.1.0",
314
- prettier: "^3.8.1",
314
+ prettier: "^3.8.3",
315
315
  shx: "^0.4.0",
316
316
  sinon: "^18",
317
317
  "ts-node": "^10.9.2",
@@ -224236,7 +224236,7 @@ var require_errors2 = __commonJS({
224236
224236
  return mod && mod.__esModule ? mod : { "default": mod };
224237
224237
  };
224238
224238
  Object.defineProperty(exports, "__esModule", { value: true });
224239
- exports.FailedFlagValidationError = exports.ArgInvalidOptionError = exports.FlagInvalidOptionError = exports.NonExistentFlagsError = exports.UnexpectedArgsError = exports.RequiredArgsError = exports.InvalidArgsSpecError = exports.CLIParseError = exports.CLIError = void 0;
224239
+ exports.ViolatedFlagConstraintError = exports.FailedFlagValidationError = exports.ArgInvalidOptionError = exports.FlagInvalidOptionError = exports.NonExistentFlagsError = exports.UnexpectedArgsError = exports.RequiredArgsError = exports.InvalidArgsSpecError = exports.CLIParseError = exports.CLIError = void 0;
224240
224240
  var cache_1 = __importDefault(require_cache());
224241
224241
  var errors_1 = require_errors();
224242
224242
  var util_1 = require_util();
@@ -224345,6 +224345,17 @@ Note: ${flags} allow${flagsWithMultiple.length === 1 ? "s" : ""} multiple values
224345
224345
  }
224346
224346
  };
224347
224347
  exports.FailedFlagValidationError = FailedFlagValidationError;
224348
+ var ViolatedFlagConstraintError = class extends CLIParseError {
224349
+ constructor({ exit, failed, parse }) {
224350
+ const reasons = failed.map((r) => r.reason);
224351
+ const deduped = (0, util_1.uniq)(reasons);
224352
+ const errString = deduped.length === 1 ? "error" : "errors";
224353
+ const message = `The following ${errString} occurred:
224354
+ ${(0, theme_1.colorize)("dim", deduped.join("\n"))}`;
224355
+ super({ exit: cache_1.default.getInstance().get("exitCodes")?.violatedFlagConstraint ?? exit, message, parse });
224356
+ }
224357
+ };
224358
+ exports.ViolatedFlagConstraintError = ViolatedFlagConstraintError;
224348
224359
  }
224349
224360
  });
224350
224361
 
@@ -224940,6 +224951,18 @@ var require_validate = __commonJS({
224940
224951
  parse
224941
224952
  });
224942
224953
  }
224954
+ function validateConstraints() {
224955
+ if (parse.input.constraints) {
224956
+ const validations = parse.input.constraints.map((c) => c._evaluateAgainstFlags(parse.output.flags));
224957
+ const failed = validations.filter((v) => v.status === "failed");
224958
+ if (failed.length > 0) {
224959
+ throw new errors_1.ViolatedFlagConstraintError({
224960
+ failed,
224961
+ parse
224962
+ });
224963
+ }
224964
+ }
224965
+ }
224943
224966
  async function resolveFlags(flags) {
224944
224967
  if (cachedResolvedFlags)
224945
224968
  return cachedResolvedFlags;
@@ -225076,7 +225099,8 @@ var require_validate = __commonJS({
225076
225099
  });
225077
225100
  }
225078
225101
  validateArgs();
225079
- return validateFlags();
225102
+ await validateFlags();
225103
+ validateConstraints();
225080
225104
  }
225081
225105
  }
225082
225106
  });
@@ -225139,6 +225163,7 @@ var require_parser = __commonJS({
225139
225163
  "--": options["--"],
225140
225164
  args: options.args ?? {},
225141
225165
  argv,
225166
+ constraints: options.constraints,
225142
225167
  context: options.context,
225143
225168
  flags: options.flags ?? {},
225144
225169
  strict: options.strict !== false
@@ -225225,6 +225250,7 @@ var require_command2 = __commonJS({
225225
225250
  /** An order-dependent object of arguments for the command */
225226
225251
  static args = {};
225227
225252
  static baseFlags;
225253
+ static constraints;
225228
225254
  /**
225229
225255
  * Emit deprecation warning when a command alias is used
225230
225256
  */
@@ -225485,6 +225511,597 @@ var require_command2 = __commonJS({
225485
225511
  }
225486
225512
  });
225487
225513
 
225514
+ // node_modules/@oclif/core/lib/constraints.js
225515
+ var require_constraints = __commonJS({
225516
+ "node_modules/@oclif/core/lib/constraints.js"(exports) {
225517
+ "use strict";
225518
+ init_cjs_shims();
225519
+ Object.defineProperty(exports, "__esModule", { value: true });
225520
+ exports.flag = flag;
225521
+ exports.flags = flags;
225522
+ exports.combinationOf = combinationOf;
225523
+ function flag(flagName) {
225524
+ return new ConstraintImpl([flagName]);
225525
+ }
225526
+ function flags(...flagNames) {
225527
+ return new ConstraintImpl(flagNames);
225528
+ }
225529
+ function combinationOf(...flagNames) {
225530
+ return {
225531
+ flags: flagNames,
225532
+ type: "all"
225533
+ };
225534
+ }
225535
+ var ConstraintImpl = class {
225536
+ /**
225537
+ * No-op chain property allowing constraints to be more human-readable.
225538
+ *
225539
+ * @example
225540
+ * flags('foo', 'bar').are.mutuallyExclusive()
225541
+ */
225542
+ are = this;
225543
+ /**
225544
+ * No-op chain property allowing constraints to be more human-readable.
225545
+ *
225546
+ * @example
225547
+ * flag('foo').is.dependentOn('bar')
225548
+ */
225549
+ is = this;
225550
+ constrainedFlags;
225551
+ constraintApplicatorFunctionHolder = new ConstraintApplicatorFunctionHolder();
225552
+ topLevelCondition;
225553
+ underConstructionCondition;
225554
+ constructor(constrainedFlags) {
225555
+ this.constrainedFlags = constrainedFlags;
225556
+ }
225557
+ /**
225558
+ * Chain property allowing constraint conditions to be combined with logical AND.
225559
+ *
225560
+ * By default, logical operators are evaluated left-to-right, but groups can be created with additional {@code when}/{@code unless} clauses.
225561
+ *
225562
+ * @example <caption> when someFn returns true AND someOtherFn returns true, using --foo requires --bar to be used as well.</caption>
225563
+ * flag('foo').is.dependentOn('bar').when.thisIsTrue(someFn).and.thisIsTrue(someOtherFn)
225564
+ *
225565
+ * @example <caption>--foo requires --bar when (fnA returns true AND fnB returns true) OR fnC returns true</caption>
225566
+ * flag('foo').is.dependentOn('bar').when.thisIsTrue(fnA).and.thisIsTrue(fnB).or.thisIsTrue(fnC)
225567
+ *
225568
+ * @example <caption>--foo requires --bar when fnA returns true AND (fnB returns true OR fnC returns true)</caption>
225569
+ * flag('foo').is.dependentOn('bar').when.thisIsTrue(fnA).and.when.thisIsTrue(fnB).or.thisIsTrue(fnC)
225570
+ */
225571
+ get and() {
225572
+ if (this.topLevelCondition === void 0) {
225573
+ throw new Error(`Misconfigured constraint on ${createFlagString(this.constrainedFlags)}: 'and' requires a 'when' or 'unless'.`);
225574
+ }
225575
+ if (this.underConstructionCondition) {
225576
+ throw new Error(`Misconfigured constraint on ${createFlagString(this.constrainedFlags)}: 'and' cannot directly follow '${this.underConstructionCondition.getName()}'`);
225577
+ }
225578
+ this.topLevelCondition = new AndCondition(this.topLevelCondition);
225579
+ this.underConstructionCondition = this.topLevelCondition;
225580
+ return this;
225581
+ }
225582
+ /**
225583
+ * Chain property allowing constraint conditions to be combined with logical OR.
225584
+ *
225585
+ * By default, logical operators are evaluated left-to-right, but groups can be created with additional {@code when}/{@code unless} clauses.
225586
+ *
225587
+ * @example <caption> when EITHER someFn OR someOtherFn return true, using --foo requires --bar to be used as well.</caption>
225588
+ * flag('foo').is.dependentOn('bar').when.thisIsTrue(someFn).or.thisIsTrue(someOtherFn)
225589
+ *
225590
+ * @example <caption>--foo requires --bar when (fnA returns true AND fnB returns true) OR fnC returns true</caption>
225591
+ * flag('foo').is.dependentOn('bar').when.thisIsTrue(fnA).and.thisIsTrue(fnB).or.thisIsTrue(fnC)
225592
+ *
225593
+ * @example <caption>--foo requires --bar when fnA returns true AND (fnB returns true OR fnC returns true)</caption>
225594
+ * flag('foo').is.dependentOn('bar').when.thisIsTrue(fnA).and.when.thisIsTrue(fnB).or.thisIsTrue(fnC)
225595
+ *
225596
+ */
225597
+ get or() {
225598
+ if (this.topLevelCondition === void 0) {
225599
+ throw new Error(`Misconfigured constraint on ${createFlagString(this.constrainedFlags)}: 'or' requires a 'when' or 'unless'.`);
225600
+ }
225601
+ if (this.underConstructionCondition) {
225602
+ throw new Error(`Misconfigured constraint on ${createFlagString(this.constrainedFlags)}: 'or' cannot directly follow '${this.underConstructionCondition.getName()}'`);
225603
+ }
225604
+ this.topLevelCondition = new OrCondition(this.topLevelCondition);
225605
+ this.underConstructionCondition = this.topLevelCondition;
225606
+ return this;
225607
+ }
225608
+ /**
225609
+ * Chain property allowing constraints to be conditional upon a certain criterion NOT being met.
225610
+ *
225611
+ * @example
225612
+ * flag('foo').is.dependentOn('bar').unless.thisIsTrue(someFn)
225613
+ */
225614
+ get unless() {
225615
+ const newUnless = new UnlessCondition();
225616
+ if (this.topLevelCondition === void 0) {
225617
+ this.topLevelCondition = newUnless;
225618
+ }
225619
+ if (this.underConstructionCondition === void 0) {
225620
+ this.underConstructionCondition = newUnless;
225621
+ } else if (this.underConstructionCondition instanceof UnaryOpCondition) {
225622
+ this.underConstructionCondition.setCondition(newUnless);
225623
+ this.underConstructionCondition = newUnless;
225624
+ } else if (this.underConstructionCondition instanceof BinaryCondition) {
225625
+ this.underConstructionCondition.setRight(newUnless);
225626
+ this.underConstructionCondition = newUnless;
225627
+ } else {
225628
+ throw new TypeError("UNKNOWN CONDITION TYPE");
225629
+ }
225630
+ return this;
225631
+ }
225632
+ /**
225633
+ * Chain property allowing constraints to be conditional upon a certain criterion being met.
225634
+ *
225635
+ * @example
225636
+ * flag('foo').is.dependentOn('bar').when.thisIsTrue(someFn)
225637
+ */
225638
+ get when() {
225639
+ const newWhen = new WhenCondition();
225640
+ if (this.topLevelCondition === void 0) {
225641
+ this.topLevelCondition = newWhen;
225642
+ }
225643
+ if (this.underConstructionCondition === void 0) {
225644
+ this.underConstructionCondition = newWhen;
225645
+ } else if (this.underConstructionCondition instanceof UnaryOpCondition) {
225646
+ this.underConstructionCondition.setCondition(newWhen);
225647
+ this.underConstructionCondition = newWhen;
225648
+ } else if (this.underConstructionCondition instanceof BinaryCondition) {
225649
+ this.underConstructionCondition.setRight(newWhen);
225650
+ this.underConstructionCondition = newWhen;
225651
+ } else {
225652
+ throw new TypeError("UNKNOWN CONDITION TYPE");
225653
+ }
225654
+ return this;
225655
+ }
225656
+ _evaluateAgainstFlags(flags2) {
225657
+ let conditionSatisfied = false;
225658
+ try {
225659
+ conditionSatisfied = this.topLevelCondition ? this.topLevelCondition.isSatisfied(flags2) : true;
225660
+ } catch (error) {
225661
+ return {
225662
+ name: this.constrainedFlags.join(","),
225663
+ reason: `Error evaluating constraint conditions on ${createFlagString(this.constrainedFlags)}: ${error.message}`,
225664
+ status: "failed",
225665
+ validationFn: "constraintCondition"
225666
+ };
225667
+ }
225668
+ try {
225669
+ const applicationResult = this.constraintApplicatorFunctionHolder.applyConstraintApplicatorFunction(flags2);
225670
+ return {
225671
+ name: this.constrainedFlags.join(","),
225672
+ reason: applicationResult,
225673
+ status: conditionSatisfied && applicationResult !== "" ? "failed" : "success",
225674
+ validationFn: this.constraintApplicatorFunctionHolder.constraintType ?? ""
225675
+ };
225676
+ } catch (error) {
225677
+ return {
225678
+ name: this.constrainedFlags.join(","),
225679
+ reason: `Error evaluating constraint on ${createFlagString(this.constrainedFlags)}: ${error.message}`,
225680
+ status: "failed",
225681
+ validationFn: "constraintApplication"
225682
+ };
225683
+ }
225684
+ }
225685
+ /**
225686
+ * Chain method allowing constraint to be made conditional upon EVERY established criterion being true.
225687
+ *
225688
+ * @example <caption>If --flagA is 'someVal' AND --flagB is 'someOtherVal', then using --foo requires using --bar too</caption>
225689
+ * flag('foo').is.dependentOn('bar').when.allFlagCriteriaSatisfied({
225690
+ * flagA: (v) => v === 'someVal',
225691
+ * flagB: (v) => v !== 'someOtherVal'
225692
+ * })
225693
+ *
225694
+ * @param criterionTester An object whose keys are flag names and whose values are functions that accept the
225695
+ * value of that flag and return a boolean.
225696
+ */
225697
+ allFlagCriteriaSatisfied(criterionTester) {
225698
+ if (this.underConstructionCondition === void 0) {
225699
+ throw new Error(`Misconfigured constraint condition on ${createFlagString(this.constrainedFlags)}: allFlagCriteriaSatisfied must immediately follow a when/unless/and/or`);
225700
+ } else if (this.underConstructionCondition instanceof UnaryOpCondition) {
225701
+ this.underConstructionCondition.setCondition(new AllFlagCriteriaSatisfiedCondition(criterionTester));
225702
+ this.underConstructionCondition = void 0;
225703
+ } else if (this.underConstructionCondition instanceof BinaryCondition) {
225704
+ this.underConstructionCondition.setRight(new AllFlagCriteriaSatisfiedCondition(criterionTester));
225705
+ this.underConstructionCondition = void 0;
225706
+ } else {
225707
+ throw new TypeError("UNKNOWN CONDITION TYPE");
225708
+ }
225709
+ return this;
225710
+ }
225711
+ /**
225712
+ * Chain method allowing constraint to be made conditional upon ANY established criterion being true.
225713
+ *
225714
+ * @example <caption>If --flagA is 'someVal' OR --flagB is 'someOtherVal', then using --foo requires using --bar too</caption>
225715
+ * flag('foo').is.dependentOn('bar').when.anyFlagCriterionSatisfied({
225716
+ * flagA: (v) => v === 'someVal',
225717
+ * flagB: (v) => v !== 'someOtherVal'
225718
+ * })
225719
+ *
225720
+ * @param criterionTester An object whose keys are flag names and whose values are functions that accept the
225721
+ * value of that flag and return a boolean.
225722
+ */
225723
+ anyFlagCriterionSatisfied(criterionTester) {
225724
+ if (this.underConstructionCondition === void 0) {
225725
+ throw new Error(`Misconfigured constraint condition on ${createFlagString(this.constrainedFlags)}: anyFlagCriterionSatisfied must immediately follow a when/unless/and/or`);
225726
+ } else if (this.underConstructionCondition instanceof UnaryOpCondition) {
225727
+ this.underConstructionCondition.setCondition(new AnyFlagCriterionSatisfiedCondition(criterionTester));
225728
+ this.underConstructionCondition = void 0;
225729
+ } else if (this.underConstructionCondition instanceof BinaryCondition) {
225730
+ this.underConstructionCondition.setRight(new AnyFlagCriterionSatisfiedCondition(criterionTester));
225731
+ this.underConstructionCondition = void 0;
225732
+ } else {
225733
+ throw new TypeError("UNKNOWN CONDITION TYPE");
225734
+ }
225735
+ return this;
225736
+ }
225737
+ /**
225738
+ * Chain method allowing the constrained flags to require the presence of at least one of the flags specified here.
225739
+ *
225740
+ * @example <caption>If --foo is used, then EITHER --bar OR --baz must be used as well</caption>
225741
+ * flag('foo').is.dependentOn('bar', 'baz')
225742
+ *
225743
+ * @example <caption>If --foo is used, then BOTH --bar AND --baz must be used as well</caption>
225744
+ * flag('foo').is.dependentOn(combinationOf('bar', 'baz'))
225745
+ *
225746
+ * @example <caption>If --foo is used, then EITHER --bar OR the combination of --baz1 and --baz2 must be used as well</caption>
225747
+ * flag('foo').is.dependentOn('bar', combinationOf('baz1', 'baz2'))
225748
+ *
225749
+ * @param dependencyFlagGroups
225750
+ */
225751
+ dependentOn(...dependencyFlagGroups) {
225752
+ this.constraintApplicatorFunctionHolder.setConstraintApplicator("dependentOn", (flags2) => {
225753
+ const foundConstraintFlags = filterFlagsPresentInInput(this.constrainedFlags, flags2);
225754
+ if (foundConstraintFlags.length === 0) {
225755
+ return "";
225756
+ }
225757
+ for (const dependencyFlagGroup of dependencyFlagGroups) {
225758
+ if (typeof dependencyFlagGroup === "string") {
225759
+ if (dependencyFlagGroup in flags2 && flags2[dependencyFlagGroup] !== void 0) {
225760
+ return "";
225761
+ }
225762
+ } else {
225763
+ const foundFlagsInDependencyGroup = filterFlagsPresentInInput(dependencyFlagGroup.flags, flags2);
225764
+ if (foundFlagsInDependencyGroup.length === dependencyFlagGroup.flags.length) {
225765
+ return "";
225766
+ }
225767
+ }
225768
+ }
225769
+ const multipleConstrainedFlags = this.constrainedFlags.length > 1;
225770
+ const header = multipleConstrainedFlags ? `Flags ${createFlagString(this.constrainedFlags)} require` : `Flag ${createFlagString(this.constrainedFlags)} requires`;
225771
+ return `${header} at least one of the following${this.topLevelCondition ? " under current circumstances:" : ":"} ${createFlagString(dependencyFlagGroups)}.`;
225772
+ });
225773
+ return this;
225774
+ }
225775
+ /**
225776
+ * Chain method allowing the constrained flags to be made exclusive with the flags provided here.
225777
+ *
225778
+ * @example <caption>Neither --foo1 nor --foo2 can be used with --bar OR --baz</caption>
225779
+ * flags('foo1', 'foo2').are.exclusiveWith('bar', 'baz')
225780
+ *
225781
+ * @example <caption>Neither --foo1 nor --foo2 can be used with the combination of --bar and --baz, but may be used with --bar or --baz separately</caption>
225782
+ * flags('foo1', 'foo2').are.exclusiveWith(combinationOf('bar', 'baz'))
225783
+ *
225784
+ * @example <caption>Neither --foo1 nor --foo2 can be used with --bar, or with the combination of --baz1 and --baz2</caption>
225785
+ * flags('foo1', 'foo2').are.exclusiveWith('bar', combinationOf('baz1', 'baz2'))
225786
+ *
225787
+ * @param exclusionFlagGroups
225788
+ */
225789
+ exclusiveWith(...exclusionFlagGroups) {
225790
+ this.constraintApplicatorFunctionHolder.setConstraintApplicator("exclusiveWith", (flags2) => {
225791
+ const foundConstraintFlags = filterFlagsPresentInInput(this.constrainedFlags, flags2);
225792
+ if (foundConstraintFlags.length === 0) {
225793
+ return "";
225794
+ }
225795
+ let exclusionGroupFound = false;
225796
+ for (const exclusionFlagGroup of exclusionFlagGroups) {
225797
+ if (typeof exclusionFlagGroup === "string") {
225798
+ if (exclusionFlagGroup in flags2 && flags2[exclusionFlagGroup] !== void 0) {
225799
+ exclusionGroupFound = true;
225800
+ break;
225801
+ }
225802
+ } else {
225803
+ const foundFlagsInExclusionGroup = filterFlagsPresentInInput(exclusionFlagGroup.flags, flags2);
225804
+ if (foundFlagsInExclusionGroup.length === exclusionFlagGroup.flags.length) {
225805
+ exclusionGroupFound = true;
225806
+ break;
225807
+ }
225808
+ }
225809
+ }
225810
+ if (!exclusionGroupFound) {
225811
+ return "";
225812
+ }
225813
+ const multipleConstrainedFlags = this.constrainedFlags.length > 1;
225814
+ const header = multipleConstrainedFlags ? "Flags" : "Flag";
225815
+ return `${header} ${createFlagString(this.constrainedFlags)} cannot be used with any of the following${this.topLevelCondition ? " under current circumstances:" : ":"} ${createFlagString(exclusionFlagGroups)}.`;
225816
+ });
225817
+ return this;
225818
+ }
225819
+ /**
225820
+ * Establish a group of flags as mutually dependent, meaning that they must either be used together or not at all.
225821
+ *
225822
+ * @example <caption>--foo cannot be used without --bar, and vice versa</caption>
225823
+ * flags('foo', 'bar').are.mutuallyDependent()
225824
+ */
225825
+ mutuallyDependent() {
225826
+ this.constraintApplicatorFunctionHolder.setConstraintApplicator("mutuallyDependent", (flags2) => {
225827
+ const foundFlags = filterFlagsPresentInInput(this.constrainedFlags, flags2);
225828
+ if (foundFlags.length === 0 || foundFlags.length === this.constrainedFlags.length) {
225829
+ return "";
225830
+ }
225831
+ return `The following flags are mutually dependent${this.topLevelCondition ? " under current circumstances:" : ":"} ${createFlagString(this.constrainedFlags)}. Found only ${createFlagString(foundFlags)}.`;
225832
+ });
225833
+ return this;
225834
+ }
225835
+ /**
225836
+ * Establish a group of flags as mutually exclusive, meaning that at most one of them can be used simultaneously.
225837
+ *
225838
+ * @example <caption>--foo and --bar cannot both be used at the same time</caption>
225839
+ * flags('foo', 'bar').are.mutuallyExclusive()
225840
+ */
225841
+ mutuallyExclusive() {
225842
+ this.constraintApplicatorFunctionHolder.setConstraintApplicator("mutuallyExclusive", (flags2) => {
225843
+ const foundFlags = filterFlagsPresentInInput(this.constrainedFlags, flags2);
225844
+ if (foundFlags.length <= 1) {
225845
+ return "";
225846
+ }
225847
+ return `The following flags are mutually exclusive${this.topLevelCondition ? " under current circumstances:" : ":"} ${createFlagString(this.constrainedFlags)}. Found: ${createFlagString(foundFlags)}.`;
225848
+ });
225849
+ return this;
225850
+ }
225851
+ /**
225852
+ * Establish a group of flags as being collectively required.
225853
+ *
225854
+ * @example <caption>--foo and --bar are both always required</caption>
225855
+ * flags('foo', 'bar').are.requiredAll()
225856
+ */
225857
+ requiredAll() {
225858
+ this.constraintApplicatorFunctionHolder.setConstraintApplicator("requiredAll", (flags2) => {
225859
+ const foundFlags = filterFlagsPresentInInput(this.constrainedFlags, flags2);
225860
+ if (foundFlags.length === this.constrainedFlags.length) {
225861
+ return "";
225862
+ }
225863
+ const requirement = this.constrainedFlags.length > 1 ? "These flags are required" : "This flag is required";
225864
+ const findings = foundFlags.length > 0 ? `Found only: ${createFlagString(foundFlags)}.` : "Found none.";
225865
+ return `${requirement}${this.topLevelCondition ? " under current circumstances:" : ":"} ${createFlagString(this.constrainedFlags)}. ${findings}`;
225866
+ });
225867
+ return this;
225868
+ }
225869
+ /**
225870
+ * Establish that at least one of the constrained flags must always be used.
225871
+ *
225872
+ * @example <caption>Must use at least one of --foo, --bar, or --baz</caption>
225873
+ * flags('foo', 'bar', 'baz').are.requiredAny()
225874
+ */
225875
+ requiredAny() {
225876
+ this.constraintApplicatorFunctionHolder.setConstraintApplicator("requiredAny", (flags2) => {
225877
+ const foundFlags = filterFlagsPresentInInput(this.constrainedFlags, flags2);
225878
+ if (foundFlags.length > 0) {
225879
+ return "";
225880
+ }
225881
+ return `Must provide at least one of these flags${this.topLevelCondition ? " under current circumstances:" : ":"} ${createFlagString(this.constrainedFlags)}.`;
225882
+ });
225883
+ return this;
225884
+ }
225885
+ /**
225886
+ * Establish that at least N of the specified flags must be used.
225887
+ *
225888
+ * @example <caption>At least 2 of the 3 flags --foo, --bar, and --baz must be used</caption>
225889
+ * flags('foo', 'bar', 'baz').are.requiredAtLeastN(2)
225890
+ *
225891
+ * @param n
225892
+ */
225893
+ requiredAtLeastN(n) {
225894
+ this.constraintApplicatorFunctionHolder.setConstraintApplicator(`requiredAtLeast${n}`, (flags2) => required(n, "AT_LEAST_N", this.constrainedFlags, flags2, this.topLevelCondition !== void 0));
225895
+ return this;
225896
+ }
225897
+ /**
225898
+ * Establish that at most N of the specified flags must be used.
225899
+ *
225900
+ * @example <caption>No more than 2 of the 3 flags --foo, --bar, and --baz may be used</caption>
225901
+ * flags('foo', 'bar', 'baz').are.requiredAtMostN(2)
225902
+ *
225903
+ * @param n
225904
+ */
225905
+ requiredAtMostN(n) {
225906
+ this.constraintApplicatorFunctionHolder.setConstraintApplicator(`requiredAtMost${n}`, (flags2) => required(n, "AT_MOST_N", this.constrainedFlags, flags2, this.topLevelCondition !== void 0));
225907
+ return this;
225908
+ }
225909
+ /**
225910
+ * Establish that exactly N of the specified flags must be used.
225911
+ *
225912
+ * @example <caption>Exactly 2 of the 3 flags --foo, --bar, and --baz must be used</caption>
225913
+ * flags('foo', 'bar', 'baz').are.requiredExactlyN(2)
225914
+ *
225915
+ * @param n
225916
+ */
225917
+ requiredExactlyN(n) {
225918
+ this.constraintApplicatorFunctionHolder.setConstraintApplicator(`requiredExactly${n}`, (flags2) => required(n, "EXACTLY_N", this.constrainedFlags, flags2, this.topLevelCondition !== void 0));
225919
+ return this;
225920
+ }
225921
+ /**
225922
+ * Chain method allowing the constraint to be made contingent on the return of a method that accepts all flags.
225923
+ *
225924
+ * @example <caption>--foo1 and --foo2 are required if --bar is equal to --baz</caption>
225925
+ * flags('foo1', 'foo2').are.requiredAll().when.thisIsTrue((flags) => flags.bar === flags.baz)
225926
+ *
225927
+ * @param flagTester A method that accepts the flag values mapped by their name, and returns a boolean
225928
+ */
225929
+ thisIsTrue(flagTester) {
225930
+ if (this.underConstructionCondition === void 0) {
225931
+ throw new Error(`Misconfigured constraint condition on ${createFlagString(this.constrainedFlags)}: thisIsTrue must immediately follow a when/unless/and/or`);
225932
+ } else if (this.underConstructionCondition instanceof UnaryOpCondition) {
225933
+ this.underConstructionCondition.setCondition(new ThisIsTrueCondition(flagTester));
225934
+ this.underConstructionCondition = void 0;
225935
+ } else if (this.underConstructionCondition instanceof BinaryCondition) {
225936
+ this.underConstructionCondition.setRight(new ThisIsTrueCondition(flagTester));
225937
+ this.underConstructionCondition = void 0;
225938
+ } else {
225939
+ throw new TypeError("UNKNOWN CONDITION TYPE");
225940
+ }
225941
+ return this;
225942
+ }
225943
+ };
225944
+ var ConstraintApplicatorFunctionHolder = class {
225945
+ constraintType;
225946
+ constraintApplicatorFunction;
225947
+ applyConstraintApplicatorFunction(flags2) {
225948
+ return (this.constraintApplicatorFunction ?? function() {
225949
+ return "";
225950
+ })(flags2);
225951
+ }
225952
+ setConstraintApplicator(constraintType, constraintFunction) {
225953
+ if (this.constraintApplicatorFunction) {
225954
+ throw new Error(`Misconfigured Constraint: Cannot apply multiple kinds of constraint within one statement: ${this.constraintType}, ${constraintType}. Use multiple constraint expressions instead.`);
225955
+ }
225956
+ this.constraintType = constraintType;
225957
+ this.constraintApplicatorFunction = constraintFunction;
225958
+ }
225959
+ };
225960
+ var Requirement = {
225961
+ AT_LEAST_N: {
225962
+ fn: (n, other) => other >= n,
225963
+ label: "at least"
225964
+ },
225965
+ AT_MOST_N: {
225966
+ fn: (n, other) => other <= n,
225967
+ label: "at most"
225968
+ },
225969
+ EXACTLY_N: {
225970
+ fn: (n, other) => other === n,
225971
+ label: "exactly"
225972
+ }
225973
+ };
225974
+ function required(n, requirementType, soughtFlags, providedFlags, hasConditions) {
225975
+ const foundFlags = filterFlagsPresentInInput(soughtFlags, providedFlags);
225976
+ if (Requirement[requirementType].fn(n, foundFlags.length)) {
225977
+ return "";
225978
+ }
225979
+ return `Must provide ${Requirement[requirementType].label} ${n} of the following${hasConditions ? " under current circumstances:" : ":"} ${createFlagString(soughtFlags)}. Found ${foundFlags.length}.`;
225980
+ }
225981
+ function filterFlagsPresentInInput(flagsToSeek, flags2) {
225982
+ return flagsToSeek.filter((f) => f in flags2 && flags2[f] !== void 0);
225983
+ }
225984
+ function createFlagString(flags2) {
225985
+ const processedGroups = flags2.map((f) => {
225986
+ if (typeof f === "string") {
225987
+ return `--${f}`;
225988
+ }
225989
+ return `combination of ${f.flags.map((f2) => `--${f2}`).join(" and ")}`;
225990
+ });
225991
+ return processedGroups.join(", ");
225992
+ }
225993
+ var Condition = class {
225994
+ };
225995
+ var UnaryOpCondition = class extends Condition {
225996
+ condition;
225997
+ setCondition(condition) {
225998
+ if (this.condition) {
225999
+ throw new Error(`Duplicate conditions applied to '${this.getName()}' clause: '${this.condition.getName()}' and '${condition.getName()}'.`);
226000
+ }
226001
+ this.condition = condition;
226002
+ }
226003
+ };
226004
+ var WhenCondition = class extends UnaryOpCondition {
226005
+ getName() {
226006
+ return "when";
226007
+ }
226008
+ isSatisfied(flags2) {
226009
+ if (this.condition) {
226010
+ return this.condition.isSatisfied(flags2);
226011
+ }
226012
+ throw new Error("'when' expression without any conditions");
226013
+ }
226014
+ };
226015
+ var UnlessCondition = class extends UnaryOpCondition {
226016
+ getName() {
226017
+ return "unless";
226018
+ }
226019
+ isSatisfied(flags2) {
226020
+ if (this.condition) {
226021
+ return !this.condition.isSatisfied(flags2);
226022
+ }
226023
+ throw new Error("'unless' expression without any conditions");
226024
+ }
226025
+ };
226026
+ var AllFlagCriteriaSatisfiedCondition = class extends Condition {
226027
+ tester;
226028
+ constructor(tester) {
226029
+ super();
226030
+ this.tester = tester;
226031
+ }
226032
+ getName() {
226033
+ return "allFlagCriteriaSatisfied";
226034
+ }
226035
+ isSatisfied(flags2) {
226036
+ for (const testedFlag of Object.keys(this.tester)) {
226037
+ if (!this.tester[testedFlag](flags2[testedFlag])) {
226038
+ return false;
226039
+ }
226040
+ }
226041
+ return true;
226042
+ }
226043
+ };
226044
+ var AnyFlagCriterionSatisfiedCondition = class extends Condition {
226045
+ tester;
226046
+ constructor(tester) {
226047
+ super();
226048
+ this.tester = tester;
226049
+ }
226050
+ getName() {
226051
+ return "anyFlagCriterionSatisfied";
226052
+ }
226053
+ isSatisfied(flags2) {
226054
+ for (const testedFlag of Object.keys(this.tester)) {
226055
+ if (this.tester[testedFlag](flags2[testedFlag])) {
226056
+ return true;
226057
+ }
226058
+ }
226059
+ return false;
226060
+ }
226061
+ };
226062
+ var ThisIsTrueCondition = class extends Condition {
226063
+ tester;
226064
+ constructor(tester) {
226065
+ super();
226066
+ this.tester = tester;
226067
+ }
226068
+ getName() {
226069
+ return "thisIsTrue";
226070
+ }
226071
+ isSatisfied(flags2) {
226072
+ return this.tester(flags2);
226073
+ }
226074
+ };
226075
+ var BinaryCondition = class extends Condition {
226076
+ left;
226077
+ right;
226078
+ constructor(left) {
226079
+ super();
226080
+ this.left = left;
226081
+ }
226082
+ setRight(right) {
226083
+ this.right = right;
226084
+ }
226085
+ };
226086
+ var AndCondition = class extends BinaryCondition {
226087
+ getName() {
226088
+ return "and";
226089
+ }
226090
+ isSatisfied(flags2) {
226091
+ return this.left.isSatisfied(flags2) && (this.right ? this.right.isSatisfied(flags2) : true);
226092
+ }
226093
+ };
226094
+ var OrCondition = class extends BinaryCondition {
226095
+ getName() {
226096
+ return "or";
226097
+ }
226098
+ isSatisfied(flags2) {
226099
+ return this.left.isSatisfied(flags2) || (this.right ? this.right.isSatisfied(flags2) : false);
226100
+ }
226101
+ };
226102
+ }
226103
+ });
226104
+
225488
226105
  // node_modules/@oclif/core/lib/flush.js
225489
226106
  var require_flush = __commonJS({
225490
226107
  "node_modules/@oclif/core/lib/flush.js"(exports) {
@@ -225703,7 +226320,7 @@ var require_lib = __commonJS({
225703
226320
  };
225704
226321
  })();
225705
226322
  Object.defineProperty(exports, "__esModule", { value: true });
225706
- exports.ux = exports.toStandardizedId = exports.toConfiguredId = exports.settings = exports.Performance = exports.Parser = exports.ModuleLoader = exports.getLogger = exports.Interfaces = exports.loadHelpClass = exports.HelpBase = exports.Help = exports.CommandHelp = exports.flush = exports.Flags = exports.execute = exports.handle = exports.Errors = exports.Plugin = exports.Config = exports.Command = exports.Args = void 0;
226323
+ exports.ux = exports.toStandardizedId = exports.toConfiguredId = exports.settings = exports.Performance = exports.Parser = exports.ModuleLoader = exports.getLogger = exports.Interfaces = exports.loadHelpClass = exports.HelpBase = exports.Help = exports.CommandHelp = exports.flush = exports.Flags = exports.execute = exports.handle = exports.Errors = exports.Constraints = exports.Plugin = exports.Config = exports.Command = exports.Args = void 0;
225707
226324
  var util_1 = require_util();
225708
226325
  function checkCWD() {
225709
226326
  try {
@@ -225742,6 +226359,7 @@ var require_lib = __commonJS({
225742
226359
  Object.defineProperty(exports, "Plugin", { enumerable: true, get: function() {
225743
226360
  return config_1.Plugin;
225744
226361
  } });
226362
+ exports.Constraints = __importStar(require_constraints());
225745
226363
  exports.Errors = __importStar(require_errors());
225746
226364
  var handle_1 = require_handle();
225747
226365
  Object.defineProperty(exports, "handle", { enumerable: true, get: function() {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  require_lib
3
- } from "./chunk-6SHF5RLP.js";
3
+ } from "./chunk-EKTKY2AC.js";
4
4
  import {
5
5
  __toESM,
6
6
  init_cjs_shims
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  require_lib
3
- } from "./chunk-6SHF5RLP.js";
3
+ } from "./chunk-EKTKY2AC.js";
4
4
  import {
5
5
  __toESM,
6
6
  init_cjs_shims
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ESBuild
3
- } from "../chunk-PVEL6G63.js";
4
- import "../chunk-6SHF5RLP.js";
3
+ } from "../chunk-23RHKACP.js";
4
+ import "../chunk-EKTKY2AC.js";
5
5
  import "../chunk-YXPP4ZUR.js";
6
6
  import "../chunk-RRP6KXWN.js";
7
7
  export {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Hello
3
- } from "../../chunk-YFVRENPV.js";
4
- import "../../chunk-6SHF5RLP.js";
3
+ } from "../../chunk-T4PKXBYS.js";
4
+ import "../../chunk-EKTKY2AC.js";
5
5
  import "../../chunk-YXPP4ZUR.js";
6
6
  import "../../chunk-RRP6KXWN.js";
7
7
  export {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  World
3
- } from "../../chunk-TR666ZRS.js";
4
- import "../../chunk-6SHF5RLP.js";
3
+ } from "../../chunk-IO7NG6HL.js";
4
+ import "../../chunk-EKTKY2AC.js";
5
5
  import "../../chunk-YXPP4ZUR.js";
6
6
  import "../../chunk-RRP6KXWN.js";
7
7
  export {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_default
3
- } from "../../chunk-RMTJQRRJ.js";
4
- import "../../chunk-6SHF5RLP.js";
3
+ } from "../../chunk-BZ7WUEUW.js";
4
+ import "../../chunk-EKTKY2AC.js";
5
5
  import "../../chunk-YXPP4ZUR.js";
6
6
  import "../../chunk-RRP6KXWN.js";
7
7
  export {
package/dist/index.js CHANGED
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  ESBuild
3
- } from "./chunk-PVEL6G63.js";
3
+ } from "./chunk-23RHKACP.js";
4
4
  import {
5
5
  Hello
6
- } from "./chunk-YFVRENPV.js";
6
+ } from "./chunk-T4PKXBYS.js";
7
7
  import {
8
8
  World
9
- } from "./chunk-TR666ZRS.js";
9
+ } from "./chunk-IO7NG6HL.js";
10
10
  import {
11
11
  init_default
12
- } from "./chunk-RMTJQRRJ.js";
12
+ } from "./chunk-BZ7WUEUW.js";
13
13
  import {
14
14
  require_ansis,
15
15
  require_lib,
16
16
  require_src
17
- } from "./chunk-6SHF5RLP.js";
17
+ } from "./chunk-EKTKY2AC.js";
18
18
  import {
19
19
  require_lib as require_lib2
20
20
  } from "./chunk-SO2G2ODZ.js";
@@ -475,5 +475,5 @@
475
475
  "enableJsonFlag": false
476
476
  }
477
477
  },
478
- "version": "0.5.131"
478
+ "version": "0.5.133"
479
479
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oclif/plugin-test-esbuild",
3
- "version": "0.5.131",
3
+ "version": "0.5.133",
4
4
  "description": "Bundled plugin for testing",
5
5
  "author": "Salesforce",
6
6
  "bugs": "https://github.com/oclif/plugin-test-esbuild/issues",
@@ -25,7 +25,7 @@
25
25
  "chai": "^4",
26
26
  "esbuild": "^0.28.0",
27
27
  "eslint": "^9.39.4",
28
- "eslint-config-oclif": "^6.0.157",
28
+ "eslint-config-oclif": "^6.0.159",
29
29
  "eslint-config-prettier": "^10.1.8",
30
30
  "mocha": "^10",
31
31
  "oclif": "^4.23.0",