From c163e87370a1e885c20b7632e0708f7db171c1c8 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sat, 21 Nov 2020 13:34:40 +0000 Subject: [PATCH 1/4] empty From ee6fa66044f353769f2e599d3b2c079591ab90ea Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sat, 21 Nov 2020 13:48:08 +0000 Subject: [PATCH 2/4] Change color threshold --- dist/index.js | 2 +- dist/index.js.map | 2 +- src/ansiColor.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/index.js b/dist/index.js index 9ce3b86..b152972 100644 --- a/dist/index.js +++ b/dist/index.js @@ -30,7 +30,7 @@ const ansiColor = { return ''; const brightness = color.reduce((a, b) => a + b) / 3; let foreground; - if (brightness > 190) { + if (brightness > 175) { // black foreground = `${esc}[38;2;0;0;0m`; } diff --git a/dist/index.js.map b/dist/index.js.map index b6ea9ee..f1944b1 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../webpack://pr-labels-action/./build/ansiColor.js","../webpack://pr-labels-action/./build/index.js","../webpack://pr-labels-action/./node_modules/@actions/core/lib/command.js","../webpack://pr-labels-action/./node_modules/@actions/core/lib/core.js","../webpack://pr-labels-action/./node_modules/@actions/core/lib/file-command.js","../webpack://pr-labels-action/./node_modules/@actions/core/lib/utils.js","../webpack://pr-labels-action/./node_modules/@actions/github/lib/context.js","../webpack://pr-labels-action/./node_modules/@actions/github/lib/github.js","../webpack://pr-labels-action/./node_modules/@actions/github/lib/internal/utils.js","../webpack://pr-labels-action/./node_modules/@actions/github/lib/utils.js","../webpack://pr-labels-action/./node_modules/@actions/http-client/index.js","../webpack://pr-labels-action/./node_modules/@actions/http-client/proxy.js","../webpack://pr-labels-action/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/core/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/request/dist-node/index.js","../webpack://pr-labels-action/./node_modules/before-after-hook/index.js","../webpack://pr-labels-action/./node_modules/before-after-hook/lib/add.js","../webpack://pr-labels-action/./node_modules/before-after-hook/lib/register.js","../webpack://pr-labels-action/./node_modules/before-after-hook/lib/remove.js","../webpack://pr-labels-action/./node_modules/deprecation/dist-node/index.js","../webpack://pr-labels-action/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://pr-labels-action/./node_modules/node-fetch/lib/index.js","../webpack://pr-labels-action/./node_modules/once/once.js","../webpack://pr-labels-action/./node_modules/tunnel/index.js","../webpack://pr-labels-action/./node_modules/tunnel/lib/tunnel.js","../webpack://pr-labels-action/./node_modules/universal-user-agent/dist-node/index.js","../webpack://pr-labels-action/./node_modules/wrappy/wrappy.js","../webpack://pr-labels-action/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://pr-labels-action/external \"assert\"","../webpack://pr-labels-action/external \"events\"","../webpack://pr-labels-action/external \"fs\"","../webpack://pr-labels-action/external \"http\"","../webpack://pr-labels-action/external \"https\"","../webpack://pr-labels-action/external \"net\"","../webpack://pr-labels-action/external \"os\"","../webpack://pr-labels-action/external \"path\"","../webpack://pr-labels-action/external \"stream\"","../webpack://pr-labels-action/external \"tls\"","../webpack://pr-labels-action/external \"url\"","../webpack://pr-labels-action/external \"util\"","../webpack://pr-labels-action/external \"zlib\"","../webpack://pr-labels-action/webpack/bootstrap","../webpack://pr-labels-action/webpack/runtime/compat","../webpack://pr-labels-action/webpack/startup"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction parseHexColor(input) {\n // color is in hex format, like 002200 or 3344ff\n const m = input.match(/^([0-9a-f]{6})$/i);\n if (m) {\n return [\n parseInt(m[1].substr(0, 2), 16),\n parseInt(m[1].substr(2, 2), 16),\n parseInt(m[1].substr(4, 2), 16)\n ];\n }\n else {\n return null;\n }\n}\nconst esc = '\\u001b';\nconst ansiColor = {\n startColor(hexColor) {\n const color = parseHexColor(hexColor);\n if (!color)\n return '';\n const brightness = color.reduce((a, b) => a + b) / 3;\n let foreground;\n if (brightness > 190) {\n // black\n foreground = `${esc}[38;2;0;0;0m`;\n }\n else {\n // white\n foreground = `${esc}[38;2;255;255;255m`;\n }\n const background = `${esc}[48;2;${color[0]};${color[1]};${color[2]}m`;\n return background + foreground;\n },\n endColor() {\n return `${esc}[0m`;\n }\n};\nexports.default = ansiColor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst ansiColor_1 = __importDefault(require(\"./ansiColor\"));\nfunction main() {\n var _a, _b;\n const labels = (_b = (_a = github.context.payload) === null || _a === void 0 ? void 0 : _a.pull_request) === null || _b === void 0 ? void 0 : _b.labels;\n const labelsObject = {};\n if (!labels) {\n core.info(\"Not a pull request\");\n core.setOutput('labels', '');\n core.setOutput('labels-object', null);\n return;\n }\n if (labels.length == 0) {\n core.info(\"No labels found\");\n core.setOutput('labels', '');\n core.setOutput('labels-object', {});\n return;\n }\n for (const label of labels) {\n const identifier = nameToIdentifier(label.name);\n const environmentVariable = nameToEnvironmentVariableName(label.name);\n core.exportVariable(environmentVariable, '1');\n core.info(`\\nFound label ${ansiColor_1.default.startColor(label.color)} ${label.name} ${ansiColor_1.default.endColor()}\\n Setting env var for remaining steps: ${environmentVariable}=1`);\n labelsObject[identifier] = true;\n }\n const labelsString = ' ' + Object.keys(labelsObject).join(' ') + ' ';\n core.info(`\\nAction output:\\nlabels: ${JSON.stringify(labelsString)}\\nlabels-object: ${JSON.stringify(labelsObject)}`);\n core.setOutput('labels', labelsString);\n core.setOutput('labels-object', labelsObject);\n}\ntry {\n main();\n}\ncatch (error) {\n core.setFailed(error.message);\n}\nfunction nameToIdentifier(name) {\n return name\n .replace(/[^\\w-]+/g, '-')\n .replace(/-+/g, '-')\n .toLowerCase();\n}\nfunction nameToEnvironmentVariableName(name) {\n return 'GITHUB_PR_LABEL_' + nameToIdentifier(name).toUpperCase().replace('-', '_');\n}\n","\"use strict\";\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input. The value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n */\nfunction error(message) {\n command_1.issue('error', message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds an warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n */\nfunction warning(message) {\n command_1.issue('warning', message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options) {\n return new utils_1.GitHub(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nconst defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`,\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nasync function auth(token) {\n const tokenType = token.split(/\\./).length === 3 ? \"app\" : /^v\\d+\\./.test(token) ? \"installation\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.2.1\";\n\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, [\"authStrategy\"]);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.9\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.5.7\";\n\nclass GraphqlError extends Error {\n constructor(request, response) {\n const message = response.data.errors[0].message;\n super(message);\n Object.assign(this, response.data);\n Object.assign(this, {\n headers: response.headers\n });\n this.name = \"GraphqlError\";\n this.request = request; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (typeof query === \"string\" && options && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlError(requestOptions, {\n headers,\n data: response.data\n });\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.6.0\";\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.paginateRest = paginateRest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst Endpoints = {\n actions: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createContentAttachment: [\"POST /content_references/{content_reference_id}/attachments\", {\n mediaType: {\n previews: [\"corsair\"]\n }\n }],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }]\n },\n codeScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\", {\n mediaType: {\n previews: [\"scarlet-witch\"]\n }\n }],\n getConductCode: [\"GET /codes_of_conduct/{key}\", {\n mediaType: {\n previews: [\"scarlet-witch\"]\n }\n }],\n getForRepo: [\"GET /repos/{owner}/{repo}/community/code_of_conduct\", {\n mediaType: {\n previews: [\"scarlet-witch\"]\n }\n }]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", {\n mediaType: {\n previews: [\"mockingbird\"]\n }\n }],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listForAuthenticatedUser: [\"GET /user/migrations\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listForOrg: [\"GET /orgs/{org}/migrations\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createCard: [\"POST /projects/columns/{column_id}/cards\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createColumn: [\"POST /projects/{project_id}/columns\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForAuthenticatedUser: [\"POST /user/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForOrg: [\"POST /orgs/{org}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n delete: [\"DELETE /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n get: [\"GET /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getCard: [\"GET /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getColumn: [\"GET /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listCards: [\"GET /projects/columns/{column_id}/cards\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listColumns: [\"GET /projects/{project_id}/columns\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForOrg: [\"GET /orgs/{org}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForUser: [\"GET /users/{username}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n update: [\"PATCH /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n updateColumn: [\"PATCH /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\", {\n mediaType: {\n previews: [\"lydian\"]\n }\n }],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteLegacy: [\"DELETE /reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }, {\n deprecated: \"octokit.reactions.deleteLegacy() is deprecated, see https://developer.github.com/v3/reactions/#delete-a-reaction-legacy\"\n }],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\", {\n mediaType: {\n previews: [\"switcheroo\"]\n }\n }],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\", {\n mediaType: {\n previews: [\"baptiste\"]\n }\n }],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\", {\n mediaType: {\n previews: [\"switcheroo\"]\n }\n }],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\", {\n mediaType: {\n previews: [\"london\"]\n }\n }],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n downloadArchive: [\"GET /repos/{owner}/{repo}/{archive_format}/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\", {\n mediaType: {\n previews: [\"london\"]\n }\n }],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\", {\n mediaType: {\n previews: [\"black-panther\"]\n }\n }],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", {\n mediaType: {\n previews: [\"groot\"]\n }\n }],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", {\n mediaType: {\n previews: [\"groot\"]\n }\n }],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\", {\n mediaType: {\n previews: [\"cloak\"]\n }\n }],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n users: [\"GET /search/users\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"4.2.1\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\n/**\n * This plugin is a 1:1 copy of internal @octokit/rest plugins. The primary\n * goal is to rebuild @octokit/rest on top of @octokit/core. Once that is\n * done, we will remove the registerEndpoints methods and return the methods\n * directly as with the other plugins. At that point we will also remove the\n * legacy workarounds and deprecations.\n *\n * See the plan at\n * https://github.com/octokit/plugin-rest-endpoint-methods.js/pull/1\n */\n\nfunction restEndpointMethods(octokit) {\n return endpointsToMethods(octokit, Endpoints);\n}\nrestEndpointMethods.VERSION = VERSION;\n\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnce = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n Object.defineProperty(this, \"code\", {\n get() {\n logOnce(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n this.headers = options.headers || {}; // redact request credentials without mutating original request options\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.4.10\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, requestOptions.request)).then(response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n headers,\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n headers,\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n return response.text().then(message => {\n const error = new requestError.RequestError(message, status, {\n headers,\n request: requestOptions\n });\n\n try {\n let responseBody = JSON.parse(error.message);\n Object.assign(error, responseBody);\n let errors = responseBody.errors; // Assumption `errors` would always be in Array format\n\n error.message = error.message + \": \" + errors.map(JSON.stringify).join(\", \");\n } catch (e) {// ignore, see octokit/rest.js#684\n }\n\n throw error;\n });\n }\n\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) {\n throw error;\n }\n\n throw new requestError.RequestError(error.message, 500, {\n headers,\n request: requestOptions\n });\n });\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook\n\nfunction addHook (state, kind, name, hook) {\n var orig = hook\n if (!state.registry[name]) {\n state.registry[name] = []\n }\n\n if (kind === 'before') {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options))\n }\n }\n\n if (kind === 'after') {\n hook = function (method, options) {\n var result\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_\n return orig(result, options)\n })\n .then(function () {\n return result\n })\n }\n }\n\n if (kind === 'error') {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options)\n })\n }\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig\n })\n}\n","module.exports = register\n\nfunction register (state, name, method, options) {\n if (typeof method !== 'function') {\n throw new Error('method for before hook must be a function')\n }\n\n if (!options) {\n options = {}\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options)\n }, method)()\n }\n\n return Promise.resolve()\n .then(function () {\n if (!state.registry[name]) {\n return method(options)\n }\n\n return (state.registry[name]).reduce(function (method, registered) {\n return registered.hook.bind(null, method, options)\n }, method)()\n })\n}\n","module.exports = removeHook\n\nfunction removeHook (state, name, method) {\n if (!state.registry[name]) {\n return\n }\n\n var index = state.registry[name]\n .map(function (registered) { return registered.orig })\n .indexOf(method)\n\n if (index === -1) {\n return\n }\n\n state.registry[name].splice(index, 1)\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parse_url(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parse_url(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parse_url(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\nconst resolve_url = Url.resolve;\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tconst locationURL = location === null ? null : resolve_url(request.url, location);\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");;","module.exports = require(\"events\");;","module.exports = require(\"fs\");;","module.exports = require(\"http\");;","module.exports = require(\"https\");;","module.exports = require(\"net\");;","module.exports = require(\"os\");;","module.exports = require(\"path\");;","module.exports = require(\"stream\");;","module.exports = require(\"tls\");;","module.exports = require(\"url\");;","module.exports = require(\"util\");;","module.exports = require(\"zlib\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\n__webpack_require__.ab = __dirname + \"/\";","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(667);\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACvYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACnoCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AClnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AC3CA;AACA;AACA;A;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACzQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AClCA;AACA;AACA;A;;;;;;ACFA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5BA;AACA;ACDA;AACA;AACA;AACA;;A","sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../webpack://pr-labels-action/./build/ansiColor.js","../webpack://pr-labels-action/./build/index.js","../webpack://pr-labels-action/./node_modules/@actions/core/lib/command.js","../webpack://pr-labels-action/./node_modules/@actions/core/lib/core.js","../webpack://pr-labels-action/./node_modules/@actions/core/lib/file-command.js","../webpack://pr-labels-action/./node_modules/@actions/core/lib/utils.js","../webpack://pr-labels-action/./node_modules/@actions/github/lib/context.js","../webpack://pr-labels-action/./node_modules/@actions/github/lib/github.js","../webpack://pr-labels-action/./node_modules/@actions/github/lib/internal/utils.js","../webpack://pr-labels-action/./node_modules/@actions/github/lib/utils.js","../webpack://pr-labels-action/./node_modules/@actions/http-client/index.js","../webpack://pr-labels-action/./node_modules/@actions/http-client/proxy.js","../webpack://pr-labels-action/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/core/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://pr-labels-action/./node_modules/@octokit/request/dist-node/index.js","../webpack://pr-labels-action/./node_modules/before-after-hook/index.js","../webpack://pr-labels-action/./node_modules/before-after-hook/lib/add.js","../webpack://pr-labels-action/./node_modules/before-after-hook/lib/register.js","../webpack://pr-labels-action/./node_modules/before-after-hook/lib/remove.js","../webpack://pr-labels-action/./node_modules/deprecation/dist-node/index.js","../webpack://pr-labels-action/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://pr-labels-action/./node_modules/node-fetch/lib/index.js","../webpack://pr-labels-action/./node_modules/once/once.js","../webpack://pr-labels-action/./node_modules/tunnel/index.js","../webpack://pr-labels-action/./node_modules/tunnel/lib/tunnel.js","../webpack://pr-labels-action/./node_modules/universal-user-agent/dist-node/index.js","../webpack://pr-labels-action/./node_modules/wrappy/wrappy.js","../webpack://pr-labels-action/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://pr-labels-action/external \"assert\"","../webpack://pr-labels-action/external \"events\"","../webpack://pr-labels-action/external \"fs\"","../webpack://pr-labels-action/external \"http\"","../webpack://pr-labels-action/external \"https\"","../webpack://pr-labels-action/external \"net\"","../webpack://pr-labels-action/external \"os\"","../webpack://pr-labels-action/external \"path\"","../webpack://pr-labels-action/external \"stream\"","../webpack://pr-labels-action/external \"tls\"","../webpack://pr-labels-action/external \"url\"","../webpack://pr-labels-action/external \"util\"","../webpack://pr-labels-action/external \"zlib\"","../webpack://pr-labels-action/webpack/bootstrap","../webpack://pr-labels-action/webpack/runtime/compat","../webpack://pr-labels-action/webpack/startup"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction parseHexColor(input) {\n // color is in hex format, like 002200 or 3344ff\n const m = input.match(/^([0-9a-f]{6})$/i);\n if (m) {\n return [\n parseInt(m[1].substr(0, 2), 16),\n parseInt(m[1].substr(2, 2), 16),\n parseInt(m[1].substr(4, 2), 16)\n ];\n }\n else {\n return null;\n }\n}\nconst esc = '\\u001b';\nconst ansiColor = {\n startColor(hexColor) {\n const color = parseHexColor(hexColor);\n if (!color)\n return '';\n const brightness = color.reduce((a, b) => a + b) / 3;\n let foreground;\n if (brightness > 175) {\n // black\n foreground = `${esc}[38;2;0;0;0m`;\n }\n else {\n // white\n foreground = `${esc}[38;2;255;255;255m`;\n }\n const background = `${esc}[48;2;${color[0]};${color[1]};${color[2]}m`;\n return background + foreground;\n },\n endColor() {\n return `${esc}[0m`;\n }\n};\nexports.default = ansiColor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst ansiColor_1 = __importDefault(require(\"./ansiColor\"));\nfunction main() {\n var _a, _b;\n const labels = (_b = (_a = github.context.payload) === null || _a === void 0 ? void 0 : _a.pull_request) === null || _b === void 0 ? void 0 : _b.labels;\n const labelsObject = {};\n if (!labels) {\n core.info(\"Not a pull request\");\n core.setOutput('labels', '');\n core.setOutput('labels-object', null);\n return;\n }\n if (labels.length == 0) {\n core.info(\"No labels found\");\n core.setOutput('labels', '');\n core.setOutput('labels-object', {});\n return;\n }\n for (const label of labels) {\n const identifier = nameToIdentifier(label.name);\n const environmentVariable = nameToEnvironmentVariableName(label.name);\n core.exportVariable(environmentVariable, '1');\n core.info(`\\nFound label ${ansiColor_1.default.startColor(label.color)} ${label.name} ${ansiColor_1.default.endColor()}\\n Setting env var for remaining steps: ${environmentVariable}=1`);\n labelsObject[identifier] = true;\n }\n const labelsString = ' ' + Object.keys(labelsObject).join(' ') + ' ';\n core.info(`\\nAction output:\\nlabels: ${JSON.stringify(labelsString)}\\nlabels-object: ${JSON.stringify(labelsObject)}`);\n core.setOutput('labels', labelsString);\n core.setOutput('labels-object', labelsObject);\n}\ntry {\n main();\n}\ncatch (error) {\n core.setFailed(error.message);\n}\nfunction nameToIdentifier(name) {\n return name\n .replace(/[^\\w-]+/g, '-')\n .replace(/-+/g, '-')\n .toLowerCase();\n}\nfunction nameToEnvironmentVariableName(name) {\n return 'GITHUB_PR_LABEL_' + nameToIdentifier(name).toUpperCase().replace('-', '_');\n}\n","\"use strict\";\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input. The value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n */\nfunction error(message) {\n command_1.issue('error', message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds an warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n */\nfunction warning(message) {\n command_1.issue('warning', message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options) {\n return new utils_1.GitHub(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nconst defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`,\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nasync function auth(token) {\n const tokenType = token.split(/\\./).length === 3 ? \"app\" : /^v\\d+\\./.test(token) ? \"installation\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.2.1\";\n\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, [\"authStrategy\"]);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.9\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.5.7\";\n\nclass GraphqlError extends Error {\n constructor(request, response) {\n const message = response.data.errors[0].message;\n super(message);\n Object.assign(this, response.data);\n Object.assign(this, {\n headers: response.headers\n });\n this.name = \"GraphqlError\";\n this.request = request; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (typeof query === \"string\" && options && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlError(requestOptions, {\n headers,\n data: response.data\n });\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.6.0\";\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.paginateRest = paginateRest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst Endpoints = {\n actions: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createContentAttachment: [\"POST /content_references/{content_reference_id}/attachments\", {\n mediaType: {\n previews: [\"corsair\"]\n }\n }],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\", {\n mediaType: {\n previews: [\"antiope\"]\n }\n }]\n },\n codeScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\", {\n mediaType: {\n previews: [\"scarlet-witch\"]\n }\n }],\n getConductCode: [\"GET /codes_of_conduct/{key}\", {\n mediaType: {\n previews: [\"scarlet-witch\"]\n }\n }],\n getForRepo: [\"GET /repos/{owner}/{repo}/community/code_of_conduct\", {\n mediaType: {\n previews: [\"scarlet-witch\"]\n }\n }]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\", {\n mediaType: {\n previews: [\"sombra\"]\n }\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", {\n mediaType: {\n previews: [\"mockingbird\"]\n }\n }],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listForAuthenticatedUser: [\"GET /user/migrations\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listForOrg: [\"GET /orgs/{org}/migrations\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createCard: [\"POST /projects/columns/{column_id}/cards\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createColumn: [\"POST /projects/{project_id}/columns\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForAuthenticatedUser: [\"POST /user/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForOrg: [\"POST /orgs/{org}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n delete: [\"DELETE /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n get: [\"GET /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getCard: [\"GET /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getColumn: [\"GET /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listCards: [\"GET /projects/columns/{column_id}/cards\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listColumns: [\"GET /projects/{project_id}/columns\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForOrg: [\"GET /orgs/{org}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForUser: [\"GET /users/{username}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n update: [\"PATCH /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n updateColumn: [\"PATCH /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\", {\n mediaType: {\n previews: [\"lydian\"]\n }\n }],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteLegacy: [\"DELETE /reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }, {\n deprecated: \"octokit.reactions.deleteLegacy() is deprecated, see https://developer.github.com/v3/reactions/#delete-a-reaction-legacy\"\n }],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\", {\n mediaType: {\n previews: [\"switcheroo\"]\n }\n }],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\", {\n mediaType: {\n previews: [\"baptiste\"]\n }\n }],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\", {\n mediaType: {\n previews: [\"switcheroo\"]\n }\n }],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\", {\n mediaType: {\n previews: [\"london\"]\n }\n }],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n downloadArchive: [\"GET /repos/{owner}/{repo}/{archive_format}/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\", {\n mediaType: {\n previews: [\"london\"]\n }\n }],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\", {\n mediaType: {\n previews: [\"black-panther\"]\n }\n }],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", {\n mediaType: {\n previews: [\"groot\"]\n }\n }],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", {\n mediaType: {\n previews: [\"groot\"]\n }\n }],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\", {\n mediaType: {\n previews: [\"cloak\"]\n }\n }],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n users: [\"GET /search/users\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"4.2.1\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\n/**\n * This plugin is a 1:1 copy of internal @octokit/rest plugins. The primary\n * goal is to rebuild @octokit/rest on top of @octokit/core. Once that is\n * done, we will remove the registerEndpoints methods and return the methods\n * directly as with the other plugins. At that point we will also remove the\n * legacy workarounds and deprecations.\n *\n * See the plan at\n * https://github.com/octokit/plugin-rest-endpoint-methods.js/pull/1\n */\n\nfunction restEndpointMethods(octokit) {\n return endpointsToMethods(octokit, Endpoints);\n}\nrestEndpointMethods.VERSION = VERSION;\n\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnce = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n Object.defineProperty(this, \"code\", {\n get() {\n logOnce(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n this.headers = options.headers || {}; // redact request credentials without mutating original request options\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.4.10\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, requestOptions.request)).then(response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n headers,\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n headers,\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n return response.text().then(message => {\n const error = new requestError.RequestError(message, status, {\n headers,\n request: requestOptions\n });\n\n try {\n let responseBody = JSON.parse(error.message);\n Object.assign(error, responseBody);\n let errors = responseBody.errors; // Assumption `errors` would always be in Array format\n\n error.message = error.message + \": \" + errors.map(JSON.stringify).join(\", \");\n } catch (e) {// ignore, see octokit/rest.js#684\n }\n\n throw error;\n });\n }\n\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) {\n throw error;\n }\n\n throw new requestError.RequestError(error.message, 500, {\n headers,\n request: requestOptions\n });\n });\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook\n\nfunction addHook (state, kind, name, hook) {\n var orig = hook\n if (!state.registry[name]) {\n state.registry[name] = []\n }\n\n if (kind === 'before') {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options))\n }\n }\n\n if (kind === 'after') {\n hook = function (method, options) {\n var result\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_\n return orig(result, options)\n })\n .then(function () {\n return result\n })\n }\n }\n\n if (kind === 'error') {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options)\n })\n }\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig\n })\n}\n","module.exports = register\n\nfunction register (state, name, method, options) {\n if (typeof method !== 'function') {\n throw new Error('method for before hook must be a function')\n }\n\n if (!options) {\n options = {}\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options)\n }, method)()\n }\n\n return Promise.resolve()\n .then(function () {\n if (!state.registry[name]) {\n return method(options)\n }\n\n return (state.registry[name]).reduce(function (method, registered) {\n return registered.hook.bind(null, method, options)\n }, method)()\n })\n}\n","module.exports = removeHook\n\nfunction removeHook (state, name, method) {\n if (!state.registry[name]) {\n return\n }\n\n var index = state.registry[name]\n .map(function (registered) { return registered.orig })\n .indexOf(method)\n\n if (index === -1) {\n return\n }\n\n state.registry[name].splice(index, 1)\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parse_url(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parse_url(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parse_url(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\nconst resolve_url = Url.resolve;\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tconst locationURL = location === null ? null : resolve_url(request.url, location);\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");;","module.exports = require(\"events\");;","module.exports = require(\"fs\");;","module.exports = require(\"http\");;","module.exports = require(\"https\");;","module.exports = require(\"net\");;","module.exports = require(\"os\");;","module.exports = require(\"path\");;","module.exports = require(\"stream\");;","module.exports = require(\"tls\");;","module.exports = require(\"url\");;","module.exports = require(\"util\");;","module.exports = require(\"zlib\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\n__webpack_require__.ab = __dirname + \"/\";","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(667);\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACvYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACnoCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AClnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AC3CA;AACA;AACA;A;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;ACzQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;AClCA;AACA;AACA;A;;;;;;ACFA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;;;ACDA;AACA;A;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5BA;AACA;ACDA;AACA;AACA;AACA;;A","sourceRoot":""} \ No newline at end of file diff --git a/src/ansiColor.ts b/src/ansiColor.ts index e875159..228d312 100644 --- a/src/ansiColor.ts +++ b/src/ansiColor.ts @@ -23,7 +23,7 @@ const ansiColor = { const brightness = color.reduce((a, b) => a + b) / 3; let foreground; - if (brightness > 190) { + if (brightness > 175) { // black foreground = `${esc}[38;2;0;0;0m` } else { From c8eb5a8d57973bc39e2ec466194c88e90d0e1bab Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sat, 21 Nov 2020 13:48:18 +0000 Subject: [PATCH 3/4] Neaten line length --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index daa6576..2ae28bb 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ jobs: fi # or you can use the action output. - # Note: For the label name, use lowercase kebab-case and surround with spaces + # For the label name, use lowercase kebab-case and surround with spaces - run: | bin/publish_flimbomble_test_results if: contains(steps.pr-labels.outputs.labels, ' test-flimbomble ') From ad7868983c79f23b9439e933e80c9cef85f57309 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sat, 21 Nov 2020 13:50:31 +0000 Subject: [PATCH 4/4] Update screenshot --- screenshot.png | Bin 87397 -> 98750 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshot.png b/screenshot.png index cd8f1ca8eb24c9f5117f1b3cf1b125713a5416d9..b70c8963bc48a506c6acab6248e254445c3ef419 100644 GIT binary patch delta 85094 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Ȳ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