text: // @ts-check
  
  /**
   * CommanderError class
   * @class
   */
  class CommanderError extends Error {
    /**
     * Constructs the CommanderError class
     * @param {number} exitCode suggested exit code which could be used with process.exit
     * @param {string} code an id string representing the error
     * @param {string} message human-readable description of the error
     * @constructor
     */
    constructor(exitCode, code, message) {
      super(message);
      // properly capture stack trace in Node.js
      Error.captureStackTrace(this, this.constructor);
      this.name = this.constructor.name;
      this.code = code;
      this.exitCode = exitCode;
      this.nestedError = undefined;
    }
  }
  
  /**
   * InvalidArgumentError class
   * @class
   */
  class InvalidArgumentError extends CommanderError {
    /**
     * Constructs the InvalidArgumentError class
     * @param {string} [message] explanation of why argument is invalid
     * @constructor
     */
    constructor(message) {
      super(1, 'commander.invalidArgument', message);
      // properly capture stack trace in Node.js
      Error.captureStackTrace(this, this.constructor);
      this.name = this.constructor.name;
    }
  }
  
  exports.CommanderError = CommanderError;
  exports.InvalidArgumentError = InvalidArgumentError;
  