github.com/jfrog/frogbot@v1.1.1-0.20231221090046-821a26f50338/action/node_modules/@actions/core/lib/core.js (about)

     1  "use strict";
     2  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
     3      if (k2 === undefined) k2 = k;
     4      Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
     5  }) : (function(o, m, k, k2) {
     6      if (k2 === undefined) k2 = k;
     7      o[k2] = m[k];
     8  }));
     9  var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    10      Object.defineProperty(o, "default", { enumerable: true, value: v });
    11  }) : function(o, v) {
    12      o["default"] = v;
    13  });
    14  var __importStar = (this && this.__importStar) || function (mod) {
    15      if (mod && mod.__esModule) return mod;
    16      var result = {};
    17      if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    18      __setModuleDefault(result, mod);
    19      return result;
    20  };
    21  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    22      function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    23      return new (P || (P = Promise))(function (resolve, reject) {
    24          function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
    25          function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
    26          function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
    27          step((generator = generator.apply(thisArg, _arguments || [])).next());
    28      });
    29  };
    30  Object.defineProperty(exports, "__esModule", { value: true });
    31  exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;
    32  const command_1 = require("./command");
    33  const file_command_1 = require("./file-command");
    34  const utils_1 = require("./utils");
    35  const os = __importStar(require("os"));
    36  const path = __importStar(require("path"));
    37  const oidc_utils_1 = require("./oidc-utils");
    38  /**
    39   * The code to exit an action
    40   */
    41  var ExitCode;
    42  (function (ExitCode) {
    43      /**
    44       * A code indicating that the action was successful
    45       */
    46      ExitCode[ExitCode["Success"] = 0] = "Success";
    47      /**
    48       * A code indicating that the action was a failure
    49       */
    50      ExitCode[ExitCode["Failure"] = 1] = "Failure";
    51  })(ExitCode = exports.ExitCode || (exports.ExitCode = {}));
    52  //-----------------------------------------------------------------------
    53  // Variables
    54  //-----------------------------------------------------------------------
    55  /**
    56   * Sets env variable for this action and future actions in the job
    57   * @param name the name of the variable to set
    58   * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify
    59   */
    60  // eslint-disable-next-line @typescript-eslint/no-explicit-any
    61  function exportVariable(name, val) {
    62      const convertedVal = utils_1.toCommandValue(val);
    63      process.env[name] = convertedVal;
    64      const filePath = process.env['GITHUB_ENV'] || '';
    65      if (filePath) {
    66          return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));
    67      }
    68      command_1.issueCommand('set-env', { name }, convertedVal);
    69  }
    70  exports.exportVariable = exportVariable;
    71  /**
    72   * Registers a secret which will get masked from logs
    73   * @param secret value of the secret
    74   */
    75  function setSecret(secret) {
    76      command_1.issueCommand('add-mask', {}, secret);
    77  }
    78  exports.setSecret = setSecret;
    79  /**
    80   * Prepends inputPath to the PATH (for this action and future actions)
    81   * @param inputPath
    82   */
    83  function addPath(inputPath) {
    84      const filePath = process.env['GITHUB_PATH'] || '';
    85      if (filePath) {
    86          file_command_1.issueFileCommand('PATH', inputPath);
    87      }
    88      else {
    89          command_1.issueCommand('add-path', {}, inputPath);
    90      }
    91      process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
    92  }
    93  exports.addPath = addPath;
    94  /**
    95   * Gets the value of an input.
    96   * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.
    97   * Returns an empty string if the value is not defined.
    98   *
    99   * @param     name     name of the input to get
   100   * @param     options  optional. See InputOptions.
   101   * @returns   string
   102   */
   103  function getInput(name, options) {
   104      const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';
   105      if (options && options.required && !val) {
   106          throw new Error(`Input required and not supplied: ${name}`);
   107      }
   108      if (options && options.trimWhitespace === false) {
   109          return val;
   110      }
   111      return val.trim();
   112  }
   113  exports.getInput = getInput;
   114  /**
   115   * Gets the values of an multiline input.  Each value is also trimmed.
   116   *
   117   * @param     name     name of the input to get
   118   * @param     options  optional. See InputOptions.
   119   * @returns   string[]
   120   *
   121   */
   122  function getMultilineInput(name, options) {
   123      const inputs = getInput(name, options)
   124          .split('\n')
   125          .filter(x => x !== '');
   126      if (options && options.trimWhitespace === false) {
   127          return inputs;
   128      }
   129      return inputs.map(input => input.trim());
   130  }
   131  exports.getMultilineInput = getMultilineInput;
   132  /**
   133   * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification.
   134   * Support boolean input list: `true | True | TRUE | false | False | FALSE` .
   135   * The return value is also in boolean type.
   136   * ref: https://yaml.org/spec/1.2/spec.html#id2804923
   137   *
   138   * @param     name     name of the input to get
   139   * @param     options  optional. See InputOptions.
   140   * @returns   boolean
   141   */
   142  function getBooleanInput(name, options) {
   143      const trueValue = ['true', 'True', 'TRUE'];
   144      const falseValue = ['false', 'False', 'FALSE'];
   145      const val = getInput(name, options);
   146      if (trueValue.includes(val))
   147          return true;
   148      if (falseValue.includes(val))
   149          return false;
   150      throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` +
   151          `Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);
   152  }
   153  exports.getBooleanInput = getBooleanInput;
   154  /**
   155   * Sets the value of an output.
   156   *
   157   * @param     name     name of the output to set
   158   * @param     value    value to store. Non-string values will be converted to a string via JSON.stringify
   159   */
   160  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   161  function setOutput(name, value) {
   162      const filePath = process.env['GITHUB_OUTPUT'] || '';
   163      if (filePath) {
   164          return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));
   165      }
   166      process.stdout.write(os.EOL);
   167      command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));
   168  }
   169  exports.setOutput = setOutput;
   170  /**
   171   * Enables or disables the echoing of commands into stdout for the rest of the step.
   172   * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.
   173   *
   174   */
   175  function setCommandEcho(enabled) {
   176      command_1.issue('echo', enabled ? 'on' : 'off');
   177  }
   178  exports.setCommandEcho = setCommandEcho;
   179  //-----------------------------------------------------------------------
   180  // Results
   181  //-----------------------------------------------------------------------
   182  /**
   183   * Sets the action status to failed.
   184   * When the action exits it will be with an exit code of 1
   185   * @param message add error issue message
   186   */
   187  function setFailed(message) {
   188      process.exitCode = ExitCode.Failure;
   189      error(message);
   190  }
   191  exports.setFailed = setFailed;
   192  //-----------------------------------------------------------------------
   193  // Logging Commands
   194  //-----------------------------------------------------------------------
   195  /**
   196   * Gets whether Actions Step Debug is on or not
   197   */
   198  function isDebug() {
   199      return process.env['RUNNER_DEBUG'] === '1';
   200  }
   201  exports.isDebug = isDebug;
   202  /**
   203   * Writes debug message to user log
   204   * @param message debug message
   205   */
   206  function debug(message) {
   207      command_1.issueCommand('debug', {}, message);
   208  }
   209  exports.debug = debug;
   210  /**
   211   * Adds an error issue
   212   * @param message error issue message. Errors will be converted to string via toString()
   213   * @param properties optional properties to add to the annotation.
   214   */
   215  function error(message, properties = {}) {
   216      command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);
   217  }
   218  exports.error = error;
   219  /**
   220   * Adds a warning issue
   221   * @param message warning issue message. Errors will be converted to string via toString()
   222   * @param properties optional properties to add to the annotation.
   223   */
   224  function warning(message, properties = {}) {
   225      command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);
   226  }
   227  exports.warning = warning;
   228  /**
   229   * Adds a notice issue
   230   * @param message notice issue message. Errors will be converted to string via toString()
   231   * @param properties optional properties to add to the annotation.
   232   */
   233  function notice(message, properties = {}) {
   234      command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);
   235  }
   236  exports.notice = notice;
   237  /**
   238   * Writes info to log with console.log.
   239   * @param message info message
   240   */
   241  function info(message) {
   242      process.stdout.write(message + os.EOL);
   243  }
   244  exports.info = info;
   245  /**
   246   * Begin an output group.
   247   *
   248   * Output until the next `groupEnd` will be foldable in this group
   249   *
   250   * @param name The name of the output group
   251   */
   252  function startGroup(name) {
   253      command_1.issue('group', name);
   254  }
   255  exports.startGroup = startGroup;
   256  /**
   257   * End an output group.
   258   */
   259  function endGroup() {
   260      command_1.issue('endgroup');
   261  }
   262  exports.endGroup = endGroup;
   263  /**
   264   * Wrap an asynchronous function call in a group.
   265   *
   266   * Returns the same type as the function itself.
   267   *
   268   * @param name The name of the group
   269   * @param fn The function to wrap in the group
   270   */
   271  function group(name, fn) {
   272      return __awaiter(this, void 0, void 0, function* () {
   273          startGroup(name);
   274          let result;
   275          try {
   276              result = yield fn();
   277          }
   278          finally {
   279              endGroup();
   280          }
   281          return result;
   282      });
   283  }
   284  exports.group = group;
   285  //-----------------------------------------------------------------------
   286  // Wrapper action state
   287  //-----------------------------------------------------------------------
   288  /**
   289   * Saves state for current action, the state can only be retrieved by this action's post job execution.
   290   *
   291   * @param     name     name of the state to store
   292   * @param     value    value to store. Non-string values will be converted to a string via JSON.stringify
   293   */
   294  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   295  function saveState(name, value) {
   296      const filePath = process.env['GITHUB_STATE'] || '';
   297      if (filePath) {
   298          return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));
   299      }
   300      command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));
   301  }
   302  exports.saveState = saveState;
   303  /**
   304   * Gets the value of an state set by this action's main execution.
   305   *
   306   * @param     name     name of the state to get
   307   * @returns   string
   308   */
   309  function getState(name) {
   310      return process.env[`STATE_${name}`] || '';
   311  }
   312  exports.getState = getState;
   313  function getIDToken(aud) {
   314      return __awaiter(this, void 0, void 0, function* () {
   315          return yield oidc_utils_1.OidcClient.getIDToken(aud);
   316      });
   317  }
   318  exports.getIDToken = getIDToken;
   319  /**
   320   * Summary exports
   321   */
   322  var summary_1 = require("./summary");
   323  Object.defineProperty(exports, "summary", { enumerable: true, get: function () { return summary_1.summary; } });
   324  /**
   325   * @deprecated use core.summary
   326   */
   327  var summary_2 = require("./summary");
   328  Object.defineProperty(exports, "markdownSummary", { enumerable: true, get: function () { return summary_2.markdownSummary; } });
   329  /**
   330   * Path exports
   331   */
   332  var path_utils_1 = require("./path-utils");
   333  Object.defineProperty(exports, "toPosixPath", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });
   334  Object.defineProperty(exports, "toWin32Path", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });
   335  Object.defineProperty(exports, "toPlatformPath", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });
   336  //# sourceMappingURL=core.js.map