From bfded96c7efdecd8eee7c4ea2d49c8cdcc7ce30f Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Wed, 6 Aug 2025 10:39:41 +0200 Subject: [PATCH 1/2] Add detailed debug logging for pull request rebasing process --- src/Rebaser/githubRebase.ts | 103 ++++++++++++++++++++++++++++-- src/Rebaser/rebaser.ts | 23 ++++++- src/Util/logging.ts | 121 ++++++++++++++++++++++++++++++++++++ src/index.ts | 12 ++++ 4 files changed, 251 insertions(+), 8 deletions(-) create mode 100644 src/Util/logging.ts diff --git a/src/Rebaser/githubRebase.ts b/src/Rebaser/githubRebase.ts index 4192b26..23328da 100644 --- a/src/Rebaser/githubRebase.ts +++ b/src/Rebaser/githubRebase.ts @@ -1,5 +1,6 @@ import {rebasePullRequest} from 'github-rebase/lib'; import {Octokit} from '@octokit/rest'; +import {debug} from '@actions/core'; export interface GithubRebase { rebasePullRequest(owner: string, pullRequestNumber: number, repo: string): Promise; @@ -13,11 +14,101 @@ export class RealGithubRebase implements GithubRebase { } public async rebasePullRequest(owner: string, pullRequestNumber: number, repo: string): Promise { - return rebasePullRequest({ - octokit: this.octokit, - owner: owner, - pullRequestNumber: pullRequestNumber, - repo: repo, - }); + debug(`[GithubRebase] Starting rebase for PR #${pullRequestNumber} in ${owner}/${repo}`); + + try { + // Log information about the PR before rebasing + debug(`[GithubRebase] Fetching PR details before rebase`); + try { + const prDetails = await this.octokit.pulls.get({ + owner, + repo, + pull_number: pullRequestNumber, + }); + + debug(`[GithubRebase] PR #${pullRequestNumber} details:`); + debug(` Base branch: ${prDetails.data.base.ref}`); + debug(` Head branch: ${prDetails.data.head.ref}`); + debug(` Head SHA: ${prDetails.data.head.sha}`); + debug(` Mergeable state: ${prDetails.data.mergeable_state}`); + debug(` Rebaseable: ${String(prDetails.data.rebaseable)}`); + } catch (prError) { + debug(`[GithubRebase] Error fetching PR details: ${String(prError)}`); + } + + // Perform the actual rebase + debug(`[GithubRebase] Calling github-rebase library`); + const result = await rebasePullRequest({ + octokit: this.octokit, + owner: owner, + pullRequestNumber: pullRequestNumber, + repo: repo, + }); + + debug(`[GithubRebase] Rebase completed successfully with result: ${result}`); + return result; + } catch (error) { + debug(`[GithubRebase] Error during rebase: ${String(error)}`); + + // Try to extract more information about the error + if (String(error).includes('Reference does not exist')) { + debug(`[GithubRebase] This appears to be a missing reference error`); + + // Try to get information about the branches + try { + debug(`[GithubRebase] Attempting to get more information about the branches`); + const pr = await this.octokit.pulls.get({ + owner, + repo, + pull_number: pullRequestNumber, + }); + + const baseRef = pr.data.base.ref; + const headRef = pr.data.head.ref; + + debug(`[GithubRebase] Base branch: ${baseRef}, Head branch: ${headRef}`); + + // Check if base branch exists + try { + await this.octokit.git.getRef({ + owner, + repo, + ref: `heads/${baseRef}`, + }); + debug(`[GithubRebase] Base branch '${baseRef}' exists`); + } catch (baseError) { + debug( + `[GithubRebase] Base branch '${baseRef}' does not exist or is not accessible: ${String( + baseError, + )}`, + ); + } + + // Check if head branch exists + try { + const headOwner = pr.data.head.repo ? pr.data.head.repo.owner.login : owner; + const headRepo = pr.data.head.repo ? pr.data.head.repo.name : repo; + + await this.octokit.git.getRef({ + owner: headOwner, + repo: headRepo, + ref: `heads/${headRef}`, + }); + debug(`[GithubRebase] Head branch '${headRef}' exists in ${headOwner}/${headRepo}`); + } catch (headError) { + debug( + `[GithubRebase] Head branch '${headRef}' does not exist or is not accessible: ${String( + headError, + )}`, + ); + } + } catch (prError) { + debug(`[GithubRebase] Could not get PR details to check branches: ${String(prError)}`); + } + } + + // Re-throw the error to be handled by the caller + throw error; + } } } diff --git a/src/Rebaser/rebaser.ts b/src/Rebaser/rebaser.ts index 28c2d94..14fd7c5 100644 --- a/src/Rebaser/rebaser.ts +++ b/src/Rebaser/rebaser.ts @@ -1,5 +1,5 @@ import {PullRequestInfo} from '../pullrequestinfo'; -import {info, warning} from '@actions/core'; +import {info, warning, debug} from '@actions/core'; import {GithubRebase} from './githubRebase'; /** @@ -21,11 +21,30 @@ export class Rebaser { private async rebase(pullRequest: PullRequestInfo) { info(`Rebasing pull request ${JSON.stringify(pullRequest)}`); + debug( + `Starting rebase process for PR #${pullRequest.number} in ${pullRequest.ownerName}/${pullRequest.repoName}`, + ); + debug( + `PR details: mergeableState=${pullRequest.mergeableState}, rebaseable=${String( + pullRequest.rebaseable, + )}, draft=${String(pullRequest.draft)}`, + ); + debug(`PR labels: ${JSON.stringify(pullRequest.labels)}`); + try { - await this.githubRebase.rebasePullRequest(pullRequest.ownerName, pullRequest.number, pullRequest.repoName); + debug(`Calling github-rebase library for PR #${pullRequest.number}`); + const result = await this.githubRebase.rebasePullRequest( + pullRequest.ownerName, + pullRequest.number, + pullRequest.repoName, + ); + debug(`Rebase result: ${result}`); info(`${JSON.stringify(pullRequest)} was successfully rebased.`); } catch (e) { + debug(`Error during rebase of PR #${pullRequest.number}: ${String(e)}`); + // Log the full error object for debugging + debug(`Full error details: ${JSON.stringify(e, Object.getOwnPropertyNames(e))}`); if (String(e).includes('Rebase aborted because the head branch changed')) { warning(`Rebase aborted because the head branch changed for ${JSON.stringify(pullRequest)}`); return; diff --git a/src/Util/logging.ts b/src/Util/logging.ts new file mode 100644 index 0000000..a85bd10 --- /dev/null +++ b/src/Util/logging.ts @@ -0,0 +1,121 @@ +import {debug, info, warning, error} from '@actions/core'; + +/** + * Utility functions for standardized logging across the application. + * These functions help provide consistent, detailed diagnostic information. + */ + +/** + * Logs detailed information about an error. + * + * @param message A descriptive message about where/when the error occurred + * @param err The error object + * @param context Optional additional context information + */ +export function logError(message: string, err: unknown, context?: Record): void { + error(`ERROR: ${message}`); + + // Log the error message + error(`Error message: ${String(err)}`); + + // Log the stack trace if available + if (err instanceof Error && err.stack) { + error(`Stack trace: ${err.stack}`); + } + + // Log all properties of the error object + try { + error(`Error details: ${JSON.stringify(err, Object.getOwnPropertyNames(err))}`); + } catch (jsonError) { + error(`Could not stringify error: ${String(jsonError)}`); + } + + // Log additional context if provided + if (context) { + try { + error(`Error context: ${JSON.stringify(context)}`); + } catch (jsonError) { + error(`Could not stringify context: ${String(jsonError)}`); + } + } +} + +/** + * Logs detailed debug information. + * + * @param component The component/module name for context + * @param message The debug message + * @param data Optional data to include in the log + */ +export function logDebug(component: string, message: string, data?: unknown): void { + const prefix = component ? `[${component}] ` : ''; + + debug(`${prefix}${message}`); + + if (data !== undefined) { + try { + if (typeof data === 'string') { + debug(`${prefix}Data: ${data}`); + } else { + debug(`${prefix}Data: ${JSON.stringify(data)}`); + } + } catch (jsonError) { + debug(`${prefix}Could not stringify data: ${String(jsonError)}`); + } + } +} + +/** + * Logs information about a pull request. + * + * @param component The component/module name for context + * @param message A descriptive message + * @param pullRequest The pull request information + */ +export function logPullRequestInfo( + component: string, + message: string, + pullRequest: { + number: number; + ownerName: string; + repoName: string; + [key: string]: unknown; + }, +): void { + const prefix = component ? `[${component}] ` : ''; + const prId = `PR #${pullRequest.number} in ${pullRequest.ownerName}/${pullRequest.repoName}`; + + info(`${prefix}${message} - ${prId}`); + + // Log detailed PR information at debug level + try { + debug(`${prefix}Pull request details: ${JSON.stringify(pullRequest)}`); + } catch (jsonError) { + debug(`${prefix}Could not stringify pull request: ${String(jsonError)}`); + } +} + +/** + * Logs a warning with context information. + * + * @param component The component/module name for context + * @param message The warning message + * @param data Optional data to include in the log + */ +export function logWarning(component: string, message: string, data?: unknown): void { + const prefix = component ? `[${component}] ` : ''; + + warning(`${prefix}${message}`); + + if (data !== undefined) { + try { + if (typeof data === 'string') { + debug(`${prefix}Warning data: ${data}`); + } else { + debug(`${prefix}Warning data: ${JSON.stringify(data)}`); + } + } catch (jsonError) { + debug(`${prefix}Could not stringify warning data: ${String(jsonError)}`); + } + } +} diff --git a/src/index.ts b/src/index.ts index 33a113c..0ac77bb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -60,6 +60,18 @@ async function run(): Promise { `Rate limit at end: ${JSON.stringify(endLimit)} (~${startLimit.remaining - endLimit.remaining} requests*)`, ); } catch (e) { + // Log detailed error information for debugging + debug(`Error in AutoRebase action: ${String(e)}`); + debug(`Full error details: ${JSON.stringify(e, Object.getOwnPropertyNames(e))}`); + + // Log the stack trace if available + if (e instanceof Error && e.stack) { + debug(`Stack trace: ${e.stack}`); + } + + // Log additional context about what was happening when the error occurred + debug(`Error occurred during AutoRebase action execution. Check logs above for context.`); + setFailed(e); } } From dbe557402b7190f29eb918e8b23df0c1d3f24f00 Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Wed, 6 Aug 2025 10:52:24 +0200 Subject: [PATCH 2/2] Include dist folder for testing --- dist/index.js | 15 + dist/index.js.cache | Bin 0 -> 40144 bytes dist/index.js.cache.js | 33110 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 33125 insertions(+) create mode 100644 dist/index.js create mode 100644 dist/index.js.cache create mode 100644 dist/index.js.cache.js diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..f98770d --- /dev/null +++ b/dist/index.js @@ -0,0 +1,15 @@ +const {readFileSync, writeFileSync} = require('fs'), + {Script} = require('vm'), + {wrap} = require('module'); +const basename = __dirname + '/index.js'; +const source = readFileSync(basename + '.cache.js', 'utf-8'); +const cachedData = !process.pkg && require('process').platform !== 'win32' && readFileSync(basename + '.cache'); +const scriptOpts = {filename: basename + '.cache.js', columnOffset: -62}; +const script = new Script(wrap(source), cachedData ? Object.assign({cachedData}, scriptOpts) : scriptOpts); +script.runInThisContext()(exports, require, module, __filename, __dirname); +if (cachedData) + process.on('exit', () => { + try { + writeFileSync(basename + '.cache', script.createCachedData()); + } catch (e) {} + }); diff --git a/dist/index.js.cache b/dist/index.js.cache new file mode 100644 index 0000000000000000000000000000000000000000..35a9e72c55a16743c903c3c5b329c7aaabff4edd GIT binary patch literal 40144 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 R8?Q;yGR4ME84*se{|7%ih=%|G literal 0 HcmV?d00001 diff --git a/dist/index.js.cache.js b/dist/index.js.cache.js new file mode 100644 index 0000000..9717696 --- /dev/null +++ b/dist/index.js.cache.js @@ -0,0 +1,33110 @@ +(() => { + var __webpack_modules__ = { + 4914: function (e, t, r) { + 'use strict'; + var A = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, A) { + if (A === undefined) A = r; + var s = Object.getOwnPropertyDescriptor(t, r); + if (!s || ('get' in s ? !t.__esModule : s.writable || s.configurable)) { + s = { + enumerable: true, + get: function () { + return t[r]; + }, + }; + } + Object.defineProperty(e, A, s); + } + : function (e, t, r, A) { + if (A === undefined) A = r; + e[A] = t[r]; + }); + var s = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', {enumerable: true, value: t}); + } + : function (e, t) { + e['default'] = t; + }); + var i = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (e != null) + for (var r in e) if (r !== 'default' && Object.prototype.hasOwnProperty.call(e, r)) A(t, e, r); + s(t, e); + return t; + }; + Object.defineProperty(t, '__esModule', {value: true}); + t.issue = t.issueCommand = void 0; + const n = i(r(857)); + const o = r(302); + function issueCommand(e, t, r) { + const A = new Command(e, t, r); + process.stdout.write(A.toString() + n.EOL); + } + t.issueCommand = issueCommand; + function issue(e, t = '') { + issueCommand(e, {}, t); + } + t.issue = issue; + const a = '::'; + class Command { + constructor(e, t, r) { + if (!e) { + e = 'missing.command'; + } + this.command = e; + this.properties = t; + this.message = r; + } + toString() { + let e = a + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + e += ' '; + let t = true; + for (const r in this.properties) { + if (this.properties.hasOwnProperty(r)) { + const A = this.properties[r]; + if (A) { + if (t) { + t = false; + } else { + e += ','; + } + e += `${r}=${escapeProperty(A)}`; + } + } + } + } + e += `${a}${escapeData(this.message)}`; + return e; + } + } + function escapeData(e) { + return (0, o.toCommandValue)(e).replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A'); + } + function escapeProperty(e) { + return (0, o.toCommandValue)(e) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A') + .replace(/:/g, '%3A') + .replace(/,/g, '%2C'); + } + }, + 7484: function (e, t, r) { + 'use strict'; + var A = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, A) { + if (A === undefined) A = r; + var s = Object.getOwnPropertyDescriptor(t, r); + if (!s || ('get' in s ? !t.__esModule : s.writable || s.configurable)) { + s = { + enumerable: true, + get: function () { + return t[r]; + }, + }; + } + Object.defineProperty(e, A, s); + } + : function (e, t, r, A) { + if (A === undefined) A = r; + e[A] = t[r]; + }); + var s = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', {enumerable: true, value: t}); + } + : function (e, t) { + e['default'] = t; + }); + var i = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (e != null) + for (var r in e) if (r !== 'default' && Object.prototype.hasOwnProperty.call(e, r)) A(t, e, r); + s(t, e); + return t; + }; + var n = + (this && this.__awaiter) || + function (e, t, r, A) { + function adopt(e) { + return e instanceof r + ? e + : new r(function (t) { + t(e); + }); + } + return new (r || (r = Promise))(function (r, s) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + s(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + s(e); + } + } + function step(e) { + e.done ? r(e.value) : adopt(e.value).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + Object.defineProperty(t, '__esModule', {value: true}); + t.platform = + t.toPlatformPath = + t.toWin32Path = + t.toPosixPath = + t.markdownSummary = + t.summary = + t.getIDToken = + t.getState = + t.saveState = + t.group = + t.endGroup = + t.startGroup = + t.info = + t.notice = + t.warning = + t.error = + t.debug = + t.isDebug = + t.setFailed = + t.setCommandEcho = + t.setOutput = + t.getBooleanInput = + t.getMultilineInput = + t.getInput = + t.addPath = + t.setSecret = + t.exportVariable = + t.ExitCode = + void 0; + const o = r(4914); + const a = r(4753); + const c = r(302); + const u = i(r(857)); + const g = i(r(6928)); + const l = r(5306); + var p; + (function (e) { + e[(e['Success'] = 0)] = 'Success'; + e[(e['Failure'] = 1)] = 'Failure'; + })(p || (t.ExitCode = p = {})); + function exportVariable(e, t) { + const r = (0, c.toCommandValue)(t); + process.env[e] = r; + const A = process.env['GITHUB_ENV'] || ''; + if (A) { + return (0, a.issueFileCommand)('ENV', (0, a.prepareKeyValueMessage)(e, t)); + } + (0, o.issueCommand)('set-env', {name: e}, r); + } + t.exportVariable = exportVariable; + function setSecret(e) { + (0, o.issueCommand)('add-mask', {}, e); + } + t.setSecret = setSecret; + function addPath(e) { + const t = process.env['GITHUB_PATH'] || ''; + if (t) { + (0, a.issueFileCommand)('PATH', e); + } else { + (0, o.issueCommand)('add-path', {}, e); + } + process.env['PATH'] = `${e}${g.delimiter}${process.env['PATH']}`; + } + t.addPath = addPath; + function getInput(e, t) { + const r = process.env[`INPUT_${e.replace(/ /g, '_').toUpperCase()}`] || ''; + if (t && t.required && !r) { + throw new Error(`Input required and not supplied: ${e}`); + } + if (t && t.trimWhitespace === false) { + return r; + } + return r.trim(); + } + t.getInput = getInput; + function getMultilineInput(e, t) { + const r = getInput(e, t) + .split('\n') + .filter((e) => e !== ''); + if (t && t.trimWhitespace === false) { + return r; + } + return r.map((e) => e.trim()); + } + t.getMultilineInput = getMultilineInput; + function getBooleanInput(e, t) { + const r = ['true', 'True', 'TRUE']; + const A = ['false', 'False', 'FALSE']; + const s = getInput(e, t); + if (r.includes(s)) return true; + if (A.includes(s)) return false; + throw new TypeError( + `Input does not meet YAML 1.2 "Core Schema" specification: ${e}\n` + + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\``, + ); + } + t.getBooleanInput = getBooleanInput; + function setOutput(e, t) { + const r = process.env['GITHUB_OUTPUT'] || ''; + if (r) { + return (0, a.issueFileCommand)('OUTPUT', (0, a.prepareKeyValueMessage)(e, t)); + } + process.stdout.write(u.EOL); + (0, o.issueCommand)('set-output', {name: e}, (0, c.toCommandValue)(t)); + } + t.setOutput = setOutput; + function setCommandEcho(e) { + (0, o.issue)('echo', e ? 'on' : 'off'); + } + t.setCommandEcho = setCommandEcho; + function setFailed(e) { + process.exitCode = p.Failure; + error(e); + } + t.setFailed = setFailed; + function isDebug() { + return process.env['RUNNER_DEBUG'] === '1'; + } + t.isDebug = isDebug; + function debug(e) { + (0, o.issueCommand)('debug', {}, e); + } + t.debug = debug; + function error(e, t = {}) { + (0, o.issueCommand)('error', (0, c.toCommandProperties)(t), e instanceof Error ? e.toString() : e); + } + t.error = error; + function warning(e, t = {}) { + (0, o.issueCommand)('warning', (0, c.toCommandProperties)(t), e instanceof Error ? e.toString() : e); + } + t.warning = warning; + function notice(e, t = {}) { + (0, o.issueCommand)('notice', (0, c.toCommandProperties)(t), e instanceof Error ? e.toString() : e); + } + t.notice = notice; + function info(e) { + process.stdout.write(e + u.EOL); + } + t.info = info; + function startGroup(e) { + (0, o.issue)('group', e); + } + t.startGroup = startGroup; + function endGroup() { + (0, o.issue)('endgroup'); + } + t.endGroup = endGroup; + function group(e, t) { + return n(this, void 0, void 0, function* () { + startGroup(e); + let r; + try { + r = yield t(); + } finally { + endGroup(); + } + return r; + }); + } + t.group = group; + function saveState(e, t) { + const r = process.env['GITHUB_STATE'] || ''; + if (r) { + return (0, a.issueFileCommand)('STATE', (0, a.prepareKeyValueMessage)(e, t)); + } + (0, o.issueCommand)('save-state', {name: e}, (0, c.toCommandValue)(t)); + } + t.saveState = saveState; + function getState(e) { + return process.env[`STATE_${e}`] || ''; + } + t.getState = getState; + function getIDToken(e) { + return n(this, void 0, void 0, function* () { + return yield l.OidcClient.getIDToken(e); + }); + } + t.getIDToken = getIDToken; + var d = r(1847); + Object.defineProperty(t, 'summary', { + enumerable: true, + get: function () { + return d.summary; + }, + }); + var h = r(1847); + Object.defineProperty(t, 'markdownSummary', { + enumerable: true, + get: function () { + return h.markdownSummary; + }, + }); + var C = r(1976); + Object.defineProperty(t, 'toPosixPath', { + enumerable: true, + get: function () { + return C.toPosixPath; + }, + }); + Object.defineProperty(t, 'toWin32Path', { + enumerable: true, + get: function () { + return C.toWin32Path; + }, + }); + Object.defineProperty(t, 'toPlatformPath', { + enumerable: true, + get: function () { + return C.toPlatformPath; + }, + }); + t.platform = i(r(8968)); + }, + 4753: function (e, t, r) { + 'use strict'; + var A = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, A) { + if (A === undefined) A = r; + var s = Object.getOwnPropertyDescriptor(t, r); + if (!s || ('get' in s ? !t.__esModule : s.writable || s.configurable)) { + s = { + enumerable: true, + get: function () { + return t[r]; + }, + }; + } + Object.defineProperty(e, A, s); + } + : function (e, t, r, A) { + if (A === undefined) A = r; + e[A] = t[r]; + }); + var s = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', {enumerable: true, value: t}); + } + : function (e, t) { + e['default'] = t; + }); + var i = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (e != null) + for (var r in e) if (r !== 'default' && Object.prototype.hasOwnProperty.call(e, r)) A(t, e, r); + s(t, e); + return t; + }; + Object.defineProperty(t, '__esModule', {value: true}); + t.prepareKeyValueMessage = t.issueFileCommand = void 0; + const n = i(r(6982)); + const o = i(r(9896)); + const a = i(r(857)); + const c = r(302); + function issueFileCommand(e, t) { + const r = process.env[`GITHUB_${e}`]; + if (!r) { + throw new Error(`Unable to find environment variable for file command ${e}`); + } + if (!o.existsSync(r)) { + throw new Error(`Missing file at path: ${r}`); + } + o.appendFileSync(r, `${(0, c.toCommandValue)(t)}${a.EOL}`, {encoding: 'utf8'}); + } + t.issueFileCommand = issueFileCommand; + function prepareKeyValueMessage(e, t) { + const r = `ghadelimiter_${n.randomUUID()}`; + const A = (0, c.toCommandValue)(t); + if (e.includes(r)) { + throw new Error(`Unexpected input: name should not contain the delimiter "${r}"`); + } + if (A.includes(r)) { + throw new Error(`Unexpected input: value should not contain the delimiter "${r}"`); + } + return `${e}<<${r}${a.EOL}${A}${a.EOL}${r}`; + } + t.prepareKeyValueMessage = prepareKeyValueMessage; + }, + 5306: function (e, t, r) { + 'use strict'; + var A = + (this && this.__awaiter) || + function (e, t, r, A) { + function adopt(e) { + return e instanceof r + ? e + : new r(function (t) { + t(e); + }); + } + return new (r || (r = Promise))(function (r, s) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + s(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + s(e); + } + } + function step(e) { + e.done ? r(e.value) : adopt(e.value).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + Object.defineProperty(t, '__esModule', {value: true}); + t.OidcClient = void 0; + const s = r(8163); + const i = r(7481); + const n = r(7484); + class OidcClient { + static createHttpClient(e = true, t = 10) { + const r = {allowRetries: e, maxRetries: t}; + return new s.HttpClient( + 'actions/oidc-client', + [new i.BearerCredentialHandler(OidcClient.getRequestToken())], + r, + ); + } + static getRequestToken() { + const e = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN']; + if (!e) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable'); + } + return e; + } + static getIDTokenUrl() { + const e = process.env['ACTIONS_ID_TOKEN_REQUEST_URL']; + if (!e) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable'); + } + return e; + } + static getCall(e) { + var t; + return A(this, void 0, void 0, function* () { + const r = OidcClient.createHttpClient(); + const A = yield r.getJson(e).catch((e) => { + throw new Error( + `Failed to get ID Token. \n \n Error Code : ${e.statusCode}\n \n Error Message: ${e.message}`, + ); + }); + const s = (t = A.result) === null || t === void 0 ? void 0 : t.value; + if (!s) { + throw new Error('Response json body do not have ID Token field'); + } + return s; + }); + } + static getIDToken(e) { + return A(this, void 0, void 0, function* () { + try { + let t = OidcClient.getIDTokenUrl(); + if (e) { + const r = encodeURIComponent(e); + t = `${t}&audience=${r}`; + } + (0, n.debug)(`ID token url is ${t}`); + const r = yield OidcClient.getCall(t); + (0, n.setSecret)(r); + return r; + } catch (e) { + throw new Error(`Error message: ${e.message}`); + } + }); + } + } + t.OidcClient = OidcClient; + }, + 1976: function (e, t, r) { + 'use strict'; + var A = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, A) { + if (A === undefined) A = r; + var s = Object.getOwnPropertyDescriptor(t, r); + if (!s || ('get' in s ? !t.__esModule : s.writable || s.configurable)) { + s = { + enumerable: true, + get: function () { + return t[r]; + }, + }; + } + Object.defineProperty(e, A, s); + } + : function (e, t, r, A) { + if (A === undefined) A = r; + e[A] = t[r]; + }); + var s = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', {enumerable: true, value: t}); + } + : function (e, t) { + e['default'] = t; + }); + var i = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (e != null) + for (var r in e) if (r !== 'default' && Object.prototype.hasOwnProperty.call(e, r)) A(t, e, r); + s(t, e); + return t; + }; + Object.defineProperty(t, '__esModule', {value: true}); + t.toPlatformPath = t.toWin32Path = t.toPosixPath = void 0; + const n = i(r(6928)); + function toPosixPath(e) { + return e.replace(/[\\]/g, '/'); + } + t.toPosixPath = toPosixPath; + function toWin32Path(e) { + return e.replace(/[/]/g, '\\'); + } + t.toWin32Path = toWin32Path; + function toPlatformPath(e) { + return e.replace(/[/\\]/g, n.sep); + } + t.toPlatformPath = toPlatformPath; + }, + 8968: function (e, t, r) { + 'use strict'; + var A = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, A) { + if (A === undefined) A = r; + var s = Object.getOwnPropertyDescriptor(t, r); + if (!s || ('get' in s ? !t.__esModule : s.writable || s.configurable)) { + s = { + enumerable: true, + get: function () { + return t[r]; + }, + }; + } + Object.defineProperty(e, A, s); + } + : function (e, t, r, A) { + if (A === undefined) A = r; + e[A] = t[r]; + }); + var s = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', {enumerable: true, value: t}); + } + : function (e, t) { + e['default'] = t; + }); + var i = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (e != null) + for (var r in e) if (r !== 'default' && Object.prototype.hasOwnProperty.call(e, r)) A(t, e, r); + s(t, e); + return t; + }; + var n = + (this && this.__awaiter) || + function (e, t, r, A) { + function adopt(e) { + return e instanceof r + ? e + : new r(function (t) { + t(e); + }); + } + return new (r || (r = Promise))(function (r, s) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + s(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + s(e); + } + } + function step(e) { + e.done ? r(e.value) : adopt(e.value).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + var o = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : {default: e}; + }; + Object.defineProperty(t, '__esModule', {value: true}); + t.getDetails = t.isLinux = t.isMacOS = t.isWindows = t.arch = t.platform = void 0; + const a = o(r(857)); + const c = i(r(5236)); + const getWindowsInfo = () => + n(void 0, void 0, void 0, function* () { + const {stdout: e} = yield c.getExecOutput( + 'powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Version"', + undefined, + {silent: true}, + ); + const {stdout: t} = yield c.getExecOutput( + 'powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"', + undefined, + {silent: true}, + ); + return {name: t.trim(), version: e.trim()}; + }); + const getMacOsInfo = () => + n(void 0, void 0, void 0, function* () { + var e, t, r, A; + const {stdout: s} = yield c.getExecOutput('sw_vers', undefined, {silent: true}); + const i = + (t = (e = s.match(/ProductVersion:\s*(.+)/)) === null || e === void 0 ? void 0 : e[1]) !== + null && t !== void 0 + ? t + : ''; + const n = + (A = (r = s.match(/ProductName:\s*(.+)/)) === null || r === void 0 ? void 0 : r[1]) !== null && + A !== void 0 + ? A + : ''; + return {name: n, version: i}; + }); + const getLinuxInfo = () => + n(void 0, void 0, void 0, function* () { + const {stdout: e} = yield c.getExecOutput('lsb_release', ['-i', '-r', '-s'], {silent: true}); + const [t, r] = e.trim().split('\n'); + return {name: t, version: r}; + }); + t.platform = a.default.platform(); + t.arch = a.default.arch(); + t.isWindows = t.platform === 'win32'; + t.isMacOS = t.platform === 'darwin'; + t.isLinux = t.platform === 'linux'; + function getDetails() { + return n(this, void 0, void 0, function* () { + return Object.assign( + Object.assign( + {}, + yield t.isWindows ? getWindowsInfo() : t.isMacOS ? getMacOsInfo() : getLinuxInfo(), + ), + { + platform: t.platform, + arch: t.arch, + isWindows: t.isWindows, + isMacOS: t.isMacOS, + isLinux: t.isLinux, + }, + ); + }); + } + t.getDetails = getDetails; + }, + 1847: function (e, t, r) { + 'use strict'; + var A = + (this && this.__awaiter) || + function (e, t, r, A) { + function adopt(e) { + return e instanceof r + ? e + : new r(function (t) { + t(e); + }); + } + return new (r || (r = Promise))(function (r, s) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + s(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + s(e); + } + } + function step(e) { + e.done ? r(e.value) : adopt(e.value).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + Object.defineProperty(t, '__esModule', {value: true}); + t.summary = t.markdownSummary = t.SUMMARY_DOCS_URL = t.SUMMARY_ENV_VAR = void 0; + const s = r(857); + const i = r(9896); + const {access: n, appendFile: o, writeFile: a} = i.promises; + t.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; + t.SUMMARY_DOCS_URL = + 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; + class Summary { + constructor() { + this._buffer = ''; + } + filePath() { + return A(this, void 0, void 0, function* () { + if (this._filePath) { + return this._filePath; + } + const e = process.env[t.SUMMARY_ENV_VAR]; + if (!e) { + throw new Error( + `Unable to find environment variable for $${t.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`, + ); + } + try { + yield n(e, i.constants.R_OK | i.constants.W_OK); + } catch (t) { + throw new Error( + `Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`, + ); + } + this._filePath = e; + return this._filePath; + }); + } + wrap(e, t, r = {}) { + const A = Object.entries(r) + .map(([e, t]) => ` ${e}="${t}"`) + .join(''); + if (!t) { + return `<${e}${A}>`; + } + return `<${e}${A}>${t}`; + } + write(e) { + return A(this, void 0, void 0, function* () { + const t = !!(e === null || e === void 0 ? void 0 : e.overwrite); + const r = yield this.filePath(); + const A = t ? a : o; + yield A(r, this._buffer, {encoding: 'utf8'}); + return this.emptyBuffer(); + }); + } + clear() { + return A(this, void 0, void 0, function* () { + return this.emptyBuffer().write({overwrite: true}); + }); + } + stringify() { + return this._buffer; + } + isEmptyBuffer() { + return this._buffer.length === 0; + } + emptyBuffer() { + this._buffer = ''; + return this; + } + addRaw(e, t = false) { + this._buffer += e; + return t ? this.addEOL() : this; + } + addEOL() { + return this.addRaw(s.EOL); + } + addCodeBlock(e, t) { + const r = Object.assign({}, t && {lang: t}); + const A = this.wrap('pre', this.wrap('code', e), r); + return this.addRaw(A).addEOL(); + } + addList(e, t = false) { + const r = t ? 'ol' : 'ul'; + const A = e.map((e) => this.wrap('li', e)).join(''); + const s = this.wrap(r, A); + return this.addRaw(s).addEOL(); + } + addTable(e) { + const t = e + .map((e) => { + const t = e + .map((e) => { + if (typeof e === 'string') { + return this.wrap('td', e); + } + const {header: t, data: r, colspan: A, rowspan: s} = e; + const i = t ? 'th' : 'td'; + const n = Object.assign(Object.assign({}, A && {colspan: A}), s && {rowspan: s}); + return this.wrap(i, r, n); + }) + .join(''); + return this.wrap('tr', t); + }) + .join(''); + const r = this.wrap('table', t); + return this.addRaw(r).addEOL(); + } + addDetails(e, t) { + const r = this.wrap('details', this.wrap('summary', e) + t); + return this.addRaw(r).addEOL(); + } + addImage(e, t, r) { + const {width: A, height: s} = r || {}; + const i = Object.assign(Object.assign({}, A && {width: A}), s && {height: s}); + const n = this.wrap('img', null, Object.assign({src: e, alt: t}, i)); + return this.addRaw(n).addEOL(); + } + addHeading(e, t) { + const r = `h${t}`; + const A = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(r) ? r : 'h1'; + const s = this.wrap(A, e); + return this.addRaw(s).addEOL(); + } + addSeparator() { + const e = this.wrap('hr', null); + return this.addRaw(e).addEOL(); + } + addBreak() { + const e = this.wrap('br', null); + return this.addRaw(e).addEOL(); + } + addQuote(e, t) { + const r = Object.assign({}, t && {cite: t}); + const A = this.wrap('blockquote', e, r); + return this.addRaw(A).addEOL(); + } + addLink(e, t) { + const r = this.wrap('a', e, {href: t}); + return this.addRaw(r).addEOL(); + } + } + const c = new Summary(); + t.markdownSummary = c; + t.summary = c; + }, + 302: (e, t) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + t.toCommandProperties = t.toCommandValue = void 0; + function toCommandValue(e) { + if (e === null || e === undefined) { + return ''; + } else if (typeof e === 'string' || e instanceof String) { + return e; + } + return JSON.stringify(e); + } + t.toCommandValue = toCommandValue; + function toCommandProperties(e) { + if (!Object.keys(e).length) { + return {}; + } + return { + title: e.title, + file: e.file, + line: e.startLine, + endLine: e.endLine, + col: e.startColumn, + endColumn: e.endColumn, + }; + } + t.toCommandProperties = toCommandProperties; + }, + 7481: function (e, t) { + 'use strict'; + var r = + (this && this.__awaiter) || + function (e, t, r, A) { + function adopt(e) { + return e instanceof r + ? e + : new r(function (t) { + t(e); + }); + } + return new (r || (r = Promise))(function (r, s) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + s(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + s(e); + } + } + function step(e) { + e.done ? r(e.value) : adopt(e.value).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + Object.defineProperty(t, '__esModule', {value: true}); + t.PersonalAccessTokenCredentialHandler = t.BearerCredentialHandler = t.BasicCredentialHandler = void 0; + class BasicCredentialHandler { + constructor(e, t) { + this.username = e; + this.password = t; + } + prepareRequest(e) { + if (!e.headers) { + throw Error('The request has no headers'); + } + e.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString( + 'base64', + )}`; + } + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return r(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } + } + t.BasicCredentialHandler = BasicCredentialHandler; + class BearerCredentialHandler { + constructor(e) { + this.token = e; + } + prepareRequest(e) { + if (!e.headers) { + throw Error('The request has no headers'); + } + e.headers['Authorization'] = `Bearer ${this.token}`; + } + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return r(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } + } + t.BearerCredentialHandler = BearerCredentialHandler; + class PersonalAccessTokenCredentialHandler { + constructor(e) { + this.token = e; + } + prepareRequest(e) { + if (!e.headers) { + throw Error('The request has no headers'); + } + e.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; + } + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return r(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } + } + t.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; + }, + 8163: function (e, t, r) { + 'use strict'; + var A = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, A) { + if (A === undefined) A = r; + var s = Object.getOwnPropertyDescriptor(t, r); + if (!s || ('get' in s ? !t.__esModule : s.writable || s.configurable)) { + s = { + enumerable: true, + get: function () { + return t[r]; + }, + }; + } + Object.defineProperty(e, A, s); + } + : function (e, t, r, A) { + if (A === undefined) A = r; + e[A] = t[r]; + }); + var s = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', {enumerable: true, value: t}); + } + : function (e, t) { + e['default'] = t; + }); + var i = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (e != null) + for (var r in e) if (r !== 'default' && Object.prototype.hasOwnProperty.call(e, r)) A(t, e, r); + s(t, e); + return t; + }; + var n = + (this && this.__awaiter) || + function (e, t, r, A) { + function adopt(e) { + return e instanceof r + ? e + : new r(function (t) { + t(e); + }); + } + return new (r || (r = Promise))(function (r, s) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + s(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + s(e); + } + } + function step(e) { + e.done ? r(e.value) : adopt(e.value).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + Object.defineProperty(t, '__esModule', {value: true}); + t.HttpClient = + t.isHttps = + t.HttpClientResponse = + t.HttpClientError = + t.getProxyUrl = + t.MediaTypes = + t.Headers = + t.HttpCodes = + void 0; + const o = i(r(8611)); + const a = i(r(5692)); + const c = i(r(3695)); + const u = i(r(770)); + const g = r(6752); + var l; + (function (e) { + e[(e['OK'] = 200)] = 'OK'; + e[(e['MultipleChoices'] = 300)] = 'MultipleChoices'; + e[(e['MovedPermanently'] = 301)] = 'MovedPermanently'; + e[(e['ResourceMoved'] = 302)] = 'ResourceMoved'; + e[(e['SeeOther'] = 303)] = 'SeeOther'; + e[(e['NotModified'] = 304)] = 'NotModified'; + e[(e['UseProxy'] = 305)] = 'UseProxy'; + e[(e['SwitchProxy'] = 306)] = 'SwitchProxy'; + e[(e['TemporaryRedirect'] = 307)] = 'TemporaryRedirect'; + e[(e['PermanentRedirect'] = 308)] = 'PermanentRedirect'; + e[(e['BadRequest'] = 400)] = 'BadRequest'; + e[(e['Unauthorized'] = 401)] = 'Unauthorized'; + e[(e['PaymentRequired'] = 402)] = 'PaymentRequired'; + e[(e['Forbidden'] = 403)] = 'Forbidden'; + e[(e['NotFound'] = 404)] = 'NotFound'; + e[(e['MethodNotAllowed'] = 405)] = 'MethodNotAllowed'; + e[(e['NotAcceptable'] = 406)] = 'NotAcceptable'; + e[(e['ProxyAuthenticationRequired'] = 407)] = 'ProxyAuthenticationRequired'; + e[(e['RequestTimeout'] = 408)] = 'RequestTimeout'; + e[(e['Conflict'] = 409)] = 'Conflict'; + e[(e['Gone'] = 410)] = 'Gone'; + e[(e['TooManyRequests'] = 429)] = 'TooManyRequests'; + e[(e['InternalServerError'] = 500)] = 'InternalServerError'; + e[(e['NotImplemented'] = 501)] = 'NotImplemented'; + e[(e['BadGateway'] = 502)] = 'BadGateway'; + e[(e['ServiceUnavailable'] = 503)] = 'ServiceUnavailable'; + e[(e['GatewayTimeout'] = 504)] = 'GatewayTimeout'; + })(l || (t.HttpCodes = l = {})); + var p; + (function (e) { + e['Accept'] = 'accept'; + e['ContentType'] = 'content-type'; + })(p || (t.Headers = p = {})); + var d; + (function (e) { + e['ApplicationJson'] = 'application/json'; + })(d || (t.MediaTypes = d = {})); + function getProxyUrl(e) { + const t = c.getProxyUrl(new URL(e)); + return t ? t.href : ''; + } + t.getProxyUrl = getProxyUrl; + const h = [l.MovedPermanently, l.ResourceMoved, l.SeeOther, l.TemporaryRedirect, l.PermanentRedirect]; + const C = [l.BadGateway, l.ServiceUnavailable, l.GatewayTimeout]; + const Q = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; + const B = 10; + const I = 5; + class HttpClientError extends Error { + constructor(e, t) { + super(e); + this.name = 'HttpClientError'; + this.statusCode = t; + Object.setPrototypeOf(this, HttpClientError.prototype); + } + } + t.HttpClientError = HttpClientError; + class HttpClientResponse { + constructor(e) { + this.message = e; + } + readBody() { + return n(this, void 0, void 0, function* () { + return new Promise((e) => + n(this, void 0, void 0, function* () { + let t = Buffer.alloc(0); + this.message.on('data', (e) => { + t = Buffer.concat([t, e]); + }); + this.message.on('end', () => { + e(t.toString()); + }); + }), + ); + }); + } + readBodyBuffer() { + return n(this, void 0, void 0, function* () { + return new Promise((e) => + n(this, void 0, void 0, function* () { + const t = []; + this.message.on('data', (e) => { + t.push(e); + }); + this.message.on('end', () => { + e(Buffer.concat(t)); + }); + }), + ); + }); + } + } + t.HttpClientResponse = HttpClientResponse; + function isHttps(e) { + const t = new URL(e); + return t.protocol === 'https:'; + } + t.isHttps = isHttps; + class HttpClient { + constructor(e, t, r) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = e; + this.handlers = t || []; + this.requestOptions = r; + if (r) { + if (r.ignoreSslError != null) { + this._ignoreSslError = r.ignoreSslError; + } + this._socketTimeout = r.socketTimeout; + if (r.allowRedirects != null) { + this._allowRedirects = r.allowRedirects; + } + if (r.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = r.allowRedirectDowngrade; + } + if (r.maxRedirects != null) { + this._maxRedirects = Math.max(r.maxRedirects, 0); + } + if (r.keepAlive != null) { + this._keepAlive = r.keepAlive; + } + if (r.allowRetries != null) { + this._allowRetries = r.allowRetries; + } + if (r.maxRetries != null) { + this._maxRetries = r.maxRetries; + } + } + } + options(e, t) { + return n(this, void 0, void 0, function* () { + return this.request('OPTIONS', e, null, t || {}); + }); + } + get(e, t) { + return n(this, void 0, void 0, function* () { + return this.request('GET', e, null, t || {}); + }); + } + del(e, t) { + return n(this, void 0, void 0, function* () { + return this.request('DELETE', e, null, t || {}); + }); + } + post(e, t, r) { + return n(this, void 0, void 0, function* () { + return this.request('POST', e, t, r || {}); + }); + } + patch(e, t, r) { + return n(this, void 0, void 0, function* () { + return this.request('PATCH', e, t, r || {}); + }); + } + put(e, t, r) { + return n(this, void 0, void 0, function* () { + return this.request('PUT', e, t, r || {}); + }); + } + head(e, t) { + return n(this, void 0, void 0, function* () { + return this.request('HEAD', e, null, t || {}); + }); + } + sendStream(e, t, r, A) { + return n(this, void 0, void 0, function* () { + return this.request(e, t, r, A); + }); + } + getJson(e, t = {}) { + return n(this, void 0, void 0, function* () { + t[p.Accept] = this._getExistingOrDefaultHeader(t, p.Accept, d.ApplicationJson); + const r = yield this.get(e, t); + return this._processResponse(r, this.requestOptions); + }); + } + postJson(e, t, r = {}) { + return n(this, void 0, void 0, function* () { + const A = JSON.stringify(t, null, 2); + r[p.Accept] = this._getExistingOrDefaultHeader(r, p.Accept, d.ApplicationJson); + r[p.ContentType] = this._getExistingOrDefaultHeader(r, p.ContentType, d.ApplicationJson); + const s = yield this.post(e, A, r); + return this._processResponse(s, this.requestOptions); + }); + } + putJson(e, t, r = {}) { + return n(this, void 0, void 0, function* () { + const A = JSON.stringify(t, null, 2); + r[p.Accept] = this._getExistingOrDefaultHeader(r, p.Accept, d.ApplicationJson); + r[p.ContentType] = this._getExistingOrDefaultHeader(r, p.ContentType, d.ApplicationJson); + const s = yield this.put(e, A, r); + return this._processResponse(s, this.requestOptions); + }); + } + patchJson(e, t, r = {}) { + return n(this, void 0, void 0, function* () { + const A = JSON.stringify(t, null, 2); + r[p.Accept] = this._getExistingOrDefaultHeader(r, p.Accept, d.ApplicationJson); + r[p.ContentType] = this._getExistingOrDefaultHeader(r, p.ContentType, d.ApplicationJson); + const s = yield this.patch(e, A, r); + return this._processResponse(s, this.requestOptions); + }); + } + request(e, t, r, A) { + return n(this, void 0, void 0, function* () { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + const s = new URL(t); + let i = this._prepareRequest(e, s, A); + const n = this._allowRetries && Q.includes(e) ? this._maxRetries + 1 : 1; + let o = 0; + let a; + do { + a = yield this.requestRaw(i, r); + if (a && a.message && a.message.statusCode === l.Unauthorized) { + let e; + for (const t of this.handlers) { + if (t.canHandleAuthentication(a)) { + e = t; + break; + } + } + if (e) { + return e.handleAuthentication(this, i, r); + } else { + return a; + } + } + let t = this._maxRedirects; + while ( + a.message.statusCode && + h.includes(a.message.statusCode) && + this._allowRedirects && + t > 0 + ) { + const n = a.message.headers['location']; + if (!n) { + break; + } + const o = new URL(n); + if ( + s.protocol === 'https:' && + s.protocol !== o.protocol && + !this._allowRedirectDowngrade + ) { + 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.', + ); + } + yield a.readBody(); + if (o.hostname !== s.hostname) { + for (const e in A) { + if (e.toLowerCase() === 'authorization') { + delete A[e]; + } + } + } + i = this._prepareRequest(e, o, A); + a = yield this.requestRaw(i, r); + t--; + } + if (!a.message.statusCode || !C.includes(a.message.statusCode)) { + return a; + } + o += 1; + if (o < n) { + yield a.readBody(); + yield this._performExponentialBackoff(o); + } + } while (o < n); + return a; + }); + } + dispose() { + if (this._agent) { + this._agent.destroy(); + } + this._disposed = true; + } + requestRaw(e, t) { + return n(this, void 0, void 0, function* () { + return new Promise((r, A) => { + function callbackForResult(e, t) { + if (e) { + A(e); + } else if (!t) { + A(new Error('Unknown error')); + } else { + r(t); + } + } + this.requestRawWithCallback(e, t, callbackForResult); + }); + }); + } + requestRawWithCallback(e, t, r) { + if (typeof t === 'string') { + if (!e.options.headers) { + e.options.headers = {}; + } + e.options.headers['Content-Length'] = Buffer.byteLength(t, 'utf8'); + } + let A = false; + function handleResult(e, t) { + if (!A) { + A = true; + r(e, t); + } + } + const s = e.httpModule.request(e.options, (e) => { + const t = new HttpClientResponse(e); + handleResult(undefined, t); + }); + let i; + s.on('socket', (e) => { + i = e; + }); + s.setTimeout(this._socketTimeout || 3 * 6e4, () => { + if (i) { + i.end(); + } + handleResult(new Error(`Request timeout: ${e.options.path}`)); + }); + s.on('error', function (e) { + handleResult(e); + }); + if (t && typeof t === 'string') { + s.write(t, 'utf8'); + } + if (t && typeof t !== 'string') { + t.on('close', function () { + s.end(); + }); + t.pipe(s); + } else { + s.end(); + } + } + getAgent(e) { + const t = new URL(e); + return this._getAgent(t); + } + getAgentDispatcher(e) { + const t = new URL(e); + const r = c.getProxyUrl(t); + const A = r && r.hostname; + if (!A) { + return; + } + return this._getProxyAgentDispatcher(t, r); + } + _prepareRequest(e, t, r) { + const A = {}; + A.parsedUrl = t; + const s = A.parsedUrl.protocol === 'https:'; + A.httpModule = s ? a : o; + const i = s ? 443 : 80; + A.options = {}; + A.options.host = A.parsedUrl.hostname; + A.options.port = A.parsedUrl.port ? parseInt(A.parsedUrl.port) : i; + A.options.path = (A.parsedUrl.pathname || '') + (A.parsedUrl.search || ''); + A.options.method = e; + A.options.headers = this._mergeHeaders(r); + if (this.userAgent != null) { + A.options.headers['user-agent'] = this.userAgent; + } + A.options.agent = this._getAgent(A.parsedUrl); + if (this.handlers) { + for (const e of this.handlers) { + e.prepareRequest(A.options); + } + } + return A; + } + _mergeHeaders(e) { + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(e || {})); + } + return lowercaseKeys(e || {}); + } + _getExistingOrDefaultHeader(e, t, r) { + let A; + if (this.requestOptions && this.requestOptions.headers) { + A = lowercaseKeys(this.requestOptions.headers)[t]; + } + return e[t] || A || r; + } + _getAgent(e) { + let t; + const r = c.getProxyUrl(e); + const A = r && r.hostname; + if (this._keepAlive && A) { + t = this._proxyAgent; + } + if (!A) { + t = this._agent; + } + if (t) { + return t; + } + const s = e.protocol === 'https:'; + let i = 100; + if (this.requestOptions) { + i = this.requestOptions.maxSockets || o.globalAgent.maxSockets; + } + if (r && r.hostname) { + const e = { + maxSockets: i, + keepAlive: this._keepAlive, + proxy: Object.assign( + Object.assign( + {}, + (r.username || r.password) && {proxyAuth: `${r.username}:${r.password}`}, + ), + {host: r.hostname, port: r.port}, + ), + }; + let A; + const n = r.protocol === 'https:'; + if (s) { + A = n ? u.httpsOverHttps : u.httpsOverHttp; + } else { + A = n ? u.httpOverHttps : u.httpOverHttp; + } + t = A(e); + this._proxyAgent = t; + } + if (!t) { + const e = {keepAlive: this._keepAlive, maxSockets: i}; + t = s ? new a.Agent(e) : new o.Agent(e); + this._agent = t; + } + if (s && this._ignoreSslError) { + t.options = Object.assign(t.options || {}, {rejectUnauthorized: false}); + } + return t; + } + _getProxyAgentDispatcher(e, t) { + let r; + if (this._keepAlive) { + r = this._proxyAgentDispatcher; + } + if (r) { + return r; + } + const A = e.protocol === 'https:'; + r = new g.ProxyAgent( + Object.assign( + {uri: t.href, pipelining: !this._keepAlive ? 0 : 1}, + (t.username || t.password) && { + token: `Basic ${Buffer.from(`${t.username}:${t.password}`).toString('base64')}`, + }, + ), + ); + this._proxyAgentDispatcher = r; + if (A && this._ignoreSslError) { + r.options = Object.assign(r.options.requestTls || {}, {rejectUnauthorized: false}); + } + return r; + } + _performExponentialBackoff(e) { + return n(this, void 0, void 0, function* () { + e = Math.min(B, e); + const t = I * Math.pow(2, e); + return new Promise((e) => setTimeout(() => e(), t)); + }); + } + _processResponse(e, t) { + return n(this, void 0, void 0, function* () { + return new Promise((r, A) => + n(this, void 0, void 0, function* () { + const s = e.message.statusCode || 0; + const i = {statusCode: s, result: null, headers: {}}; + if (s === l.NotFound) { + r(i); + } + function dateTimeDeserializer(e, t) { + if (typeof t === 'string') { + const e = new Date(t); + if (!isNaN(e.valueOf())) { + return e; + } + } + return t; + } + let n; + let o; + try { + o = yield e.readBody(); + if (o && o.length > 0) { + if (t && t.deserializeDates) { + n = JSON.parse(o, dateTimeDeserializer); + } else { + n = JSON.parse(o); + } + i.result = n; + } + i.headers = e.message.headers; + } catch (e) {} + if (s > 299) { + let e; + if (n && n.message) { + e = n.message; + } else if (o && o.length > 0) { + e = o; + } else { + e = `Failed request: (${s})`; + } + const t = new HttpClientError(e, s); + t.result = i.result; + A(t); + } else { + r(i); + } + }), + ); + }); + } + } + t.HttpClient = HttpClient; + const lowercaseKeys = (e) => Object.keys(e).reduce((t, r) => ((t[r.toLowerCase()] = e[r]), t), {}); + }, + 3695: (e, t) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + t.checkBypass = t.getProxyUrl = void 0; + function getProxyUrl(e) { + const t = e.protocol === 'https:'; + if (checkBypass(e)) { + return undefined; + } + const r = (() => { + if (t) { + return process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } else { + return process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + })(); + if (r) { + try { + return new DecodedURL(r); + } catch (e) { + if (!r.startsWith('http://') && !r.startsWith('https://')) return new DecodedURL(`http://${r}`); + } + } else { + return undefined; + } + } + t.getProxyUrl = getProxyUrl; + function checkBypass(e) { + if (!e.hostname) { + return false; + } + const t = e.hostname; + if (isLoopbackAddress(t)) { + return true; + } + const r = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!r) { + return false; + } + let A; + if (e.port) { + A = Number(e.port); + } else if (e.protocol === 'http:') { + A = 80; + } else if (e.protocol === 'https:') { + A = 443; + } + const s = [e.hostname.toUpperCase()]; + if (typeof A === 'number') { + s.push(`${s[0]}:${A}`); + } + for (const e of r + .split(',') + .map((e) => e.trim().toUpperCase()) + .filter((e) => e)) { + if ( + e === '*' || + s.some((t) => t === e || t.endsWith(`.${e}`) || (e.startsWith('.') && t.endsWith(`${e}`))) + ) { + return true; + } + } + return false; + } + t.checkBypass = checkBypass; + function isLoopbackAddress(e) { + const t = e.toLowerCase(); + return ( + t === 'localhost' || + t.startsWith('127.') || + t.startsWith('[::1]') || + t.startsWith('[0:0:0:0:0:0:0:1]') + ); + } + class DecodedURL extends URL { + constructor(e, t) { + super(e, t); + this._decodedUsername = decodeURIComponent(super.username); + this._decodedPassword = decodeURIComponent(super.password); + } + get username() { + return this._decodedUsername; + } + get password() { + return this._decodedPassword; + } + } + }, + 5236: function (e, t, r) { + 'use strict'; + var A = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, A) { + if (A === undefined) A = r; + Object.defineProperty(e, A, { + enumerable: true, + get: function () { + return t[r]; + }, + }); + } + : function (e, t, r, A) { + if (A === undefined) A = r; + e[A] = t[r]; + }); + var s = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', {enumerable: true, value: t}); + } + : function (e, t) { + e['default'] = t; + }); + var i = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (e != null) for (var r in e) if (r !== 'default' && Object.hasOwnProperty.call(e, r)) A(t, e, r); + s(t, e); + return t; + }; + var n = + (this && this.__awaiter) || + function (e, t, r, A) { + function adopt(e) { + return e instanceof r + ? e + : new r(function (t) { + t(e); + }); + } + return new (r || (r = Promise))(function (r, s) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + s(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + s(e); + } + } + function step(e) { + e.done ? r(e.value) : adopt(e.value).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + Object.defineProperty(t, '__esModule', {value: true}); + t.getExecOutput = t.exec = void 0; + const o = r(3193); + const a = i(r(6665)); + function exec(e, t, r) { + return n(this, void 0, void 0, function* () { + const A = a.argStringToArray(e); + if (A.length === 0) { + throw new Error(`Parameter 'commandLine' cannot be null or empty.`); + } + const s = A[0]; + t = A.slice(1).concat(t || []); + const i = new a.ToolRunner(s, t, r); + return i.exec(); + }); + } + t.exec = exec; + function getExecOutput(e, t, r) { + var A, s; + return n(this, void 0, void 0, function* () { + let i = ''; + let n = ''; + const a = new o.StringDecoder('utf8'); + const c = new o.StringDecoder('utf8'); + const u = + (A = r === null || r === void 0 ? void 0 : r.listeners) === null || A === void 0 + ? void 0 + : A.stdout; + const g = + (s = r === null || r === void 0 ? void 0 : r.listeners) === null || s === void 0 + ? void 0 + : s.stderr; + const stdErrListener = (e) => { + n += c.write(e); + if (g) { + g(e); + } + }; + const stdOutListener = (e) => { + i += a.write(e); + if (u) { + u(e); + } + }; + const l = Object.assign(Object.assign({}, r === null || r === void 0 ? void 0 : r.listeners), { + stdout: stdOutListener, + stderr: stdErrListener, + }); + const p = yield exec(e, t, Object.assign(Object.assign({}, r), {listeners: l})); + i += a.end(); + n += c.end(); + return {exitCode: p, stdout: i, stderr: n}; + }); + } + t.getExecOutput = getExecOutput; + }, + 6665: function (e, t, r) { + 'use strict'; + var A = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, A) { + if (A === undefined) A = r; + Object.defineProperty(e, A, { + enumerable: true, + get: function () { + return t[r]; + }, + }); + } + : function (e, t, r, A) { + if (A === undefined) A = r; + e[A] = t[r]; + }); + var s = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', {enumerable: true, value: t}); + } + : function (e, t) { + e['default'] = t; + }); + var i = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (e != null) for (var r in e) if (r !== 'default' && Object.hasOwnProperty.call(e, r)) A(t, e, r); + s(t, e); + return t; + }; + var n = + (this && this.__awaiter) || + function (e, t, r, A) { + function adopt(e) { + return e instanceof r + ? e + : new r(function (t) { + t(e); + }); + } + return new (r || (r = Promise))(function (r, s) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + s(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + s(e); + } + } + function step(e) { + e.done ? r(e.value) : adopt(e.value).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + Object.defineProperty(t, '__esModule', {value: true}); + t.argStringToArray = t.ToolRunner = void 0; + const o = i(r(857)); + const a = i(r(4434)); + const c = i(r(5317)); + const u = i(r(6928)); + const g = i(r(4994)); + const l = i(r(5207)); + const p = r(3557); + const d = process.platform === 'win32'; + class ToolRunner extends a.EventEmitter { + constructor(e, t, r) { + super(); + if (!e) { + throw new Error("Parameter 'toolPath' cannot be null or empty."); + } + this.toolPath = e; + this.args = t || []; + this.options = r || {}; + } + _debug(e) { + if (this.options.listeners && this.options.listeners.debug) { + this.options.listeners.debug(e); + } + } + _getCommandString(e, t) { + const r = this._getSpawnFileName(); + const A = this._getSpawnArgs(e); + let s = t ? '' : '[command]'; + if (d) { + if (this._isCmdFile()) { + s += r; + for (const e of A) { + s += ` ${e}`; + } + } else if (e.windowsVerbatimArguments) { + s += `"${r}"`; + for (const e of A) { + s += ` ${e}`; + } + } else { + s += this._windowsQuoteCmdArg(r); + for (const e of A) { + s += ` ${this._windowsQuoteCmdArg(e)}`; + } + } + } else { + s += r; + for (const e of A) { + s += ` ${e}`; + } + } + return s; + } + _processLineBuffer(e, t, r) { + try { + let A = t + e.toString(); + let s = A.indexOf(o.EOL); + while (s > -1) { + const e = A.substring(0, s); + r(e); + A = A.substring(s + o.EOL.length); + s = A.indexOf(o.EOL); + } + return A; + } catch (e) { + this._debug(`error processing line. Failed with error ${e}`); + return ''; + } + } + _getSpawnFileName() { + if (d) { + if (this._isCmdFile()) { + return process.env['COMSPEC'] || 'cmd.exe'; + } + } + return this.toolPath; + } + _getSpawnArgs(e) { + if (d) { + if (this._isCmdFile()) { + let t = `/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`; + for (const r of this.args) { + t += ' '; + t += e.windowsVerbatimArguments ? r : this._windowsQuoteCmdArg(r); + } + t += '"'; + return [t]; + } + } + return this.args; + } + _endsWith(e, t) { + return e.endsWith(t); + } + _isCmdFile() { + const e = this.toolPath.toUpperCase(); + return this._endsWith(e, '.CMD') || this._endsWith(e, '.BAT'); + } + _windowsQuoteCmdArg(e) { + if (!this._isCmdFile()) { + return this._uvQuoteCmdArg(e); + } + if (!e) { + return '""'; + } + const t = [ + ' ', + '\t', + '&', + '(', + ')', + '[', + ']', + '{', + '}', + '^', + '=', + ';', + '!', + "'", + '+', + ',', + '`', + '~', + '|', + '<', + '>', + '"', + ]; + let r = false; + for (const A of e) { + if (t.some((e) => e === A)) { + r = true; + break; + } + } + if (!r) { + return e; + } + let A = '"'; + let s = true; + for (let t = e.length; t > 0; t--) { + A += e[t - 1]; + if (s && e[t - 1] === '\\') { + A += '\\'; + } else if (e[t - 1] === '"') { + s = true; + A += '"'; + } else { + s = false; + } + } + A += '"'; + return A.split('').reverse().join(''); + } + _uvQuoteCmdArg(e) { + if (!e) { + return '""'; + } + if (!e.includes(' ') && !e.includes('\t') && !e.includes('"')) { + return e; + } + if (!e.includes('"') && !e.includes('\\')) { + return `"${e}"`; + } + let t = '"'; + let r = true; + for (let A = e.length; A > 0; A--) { + t += e[A - 1]; + if (r && e[A - 1] === '\\') { + t += '\\'; + } else if (e[A - 1] === '"') { + r = true; + t += '\\'; + } else { + r = false; + } + } + t += '"'; + return t.split('').reverse().join(''); + } + _cloneExecOptions(e) { + e = e || {}; + const t = { + cwd: e.cwd || process.cwd(), + env: e.env || process.env, + silent: e.silent || false, + windowsVerbatimArguments: e.windowsVerbatimArguments || false, + failOnStdErr: e.failOnStdErr || false, + ignoreReturnCode: e.ignoreReturnCode || false, + delay: e.delay || 1e4, + }; + t.outStream = e.outStream || process.stdout; + t.errStream = e.errStream || process.stderr; + return t; + } + _getSpawnOptions(e, t) { + e = e || {}; + const r = {}; + r.cwd = e.cwd; + r.env = e.env; + r['windowsVerbatimArguments'] = e.windowsVerbatimArguments || this._isCmdFile(); + if (e.windowsVerbatimArguments) { + r.argv0 = `"${t}"`; + } + return r; + } + exec() { + return n(this, void 0, void 0, function* () { + if ( + !l.isRooted(this.toolPath) && + (this.toolPath.includes('/') || (d && this.toolPath.includes('\\'))) + ) { + this.toolPath = u.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath); + } + this.toolPath = yield g.which(this.toolPath, true); + return new Promise((e, t) => + n(this, void 0, void 0, function* () { + this._debug(`exec tool: ${this.toolPath}`); + this._debug('arguments:'); + for (const e of this.args) { + this._debug(` ${e}`); + } + const r = this._cloneExecOptions(this.options); + if (!r.silent && r.outStream) { + r.outStream.write(this._getCommandString(r) + o.EOL); + } + const A = new ExecState(r, this.toolPath); + A.on('debug', (e) => { + this._debug(e); + }); + if (this.options.cwd && !(yield l.exists(this.options.cwd))) { + return t(new Error(`The cwd: ${this.options.cwd} does not exist!`)); + } + const s = this._getSpawnFileName(); + const i = c.spawn(s, this._getSpawnArgs(r), this._getSpawnOptions(this.options, s)); + let n = ''; + if (i.stdout) { + i.stdout.on('data', (e) => { + if (this.options.listeners && this.options.listeners.stdout) { + this.options.listeners.stdout(e); + } + if (!r.silent && r.outStream) { + r.outStream.write(e); + } + n = this._processLineBuffer(e, n, (e) => { + if (this.options.listeners && this.options.listeners.stdline) { + this.options.listeners.stdline(e); + } + }); + }); + } + let a = ''; + if (i.stderr) { + i.stderr.on('data', (e) => { + A.processStderr = true; + if (this.options.listeners && this.options.listeners.stderr) { + this.options.listeners.stderr(e); + } + if (!r.silent && r.errStream && r.outStream) { + const t = r.failOnStdErr ? r.errStream : r.outStream; + t.write(e); + } + a = this._processLineBuffer(e, a, (e) => { + if (this.options.listeners && this.options.listeners.errline) { + this.options.listeners.errline(e); + } + }); + }); + } + i.on('error', (e) => { + A.processError = e.message; + A.processExited = true; + A.processClosed = true; + A.CheckComplete(); + }); + i.on('exit', (e) => { + A.processExitCode = e; + A.processExited = true; + this._debug(`Exit code ${e} received from tool '${this.toolPath}'`); + A.CheckComplete(); + }); + i.on('close', (e) => { + A.processExitCode = e; + A.processExited = true; + A.processClosed = true; + this._debug(`STDIO streams have closed for tool '${this.toolPath}'`); + A.CheckComplete(); + }); + A.on('done', (r, A) => { + if (n.length > 0) { + this.emit('stdline', n); + } + if (a.length > 0) { + this.emit('errline', a); + } + i.removeAllListeners(); + if (r) { + t(r); + } else { + e(A); + } + }); + if (this.options.input) { + if (!i.stdin) { + throw new Error('child process missing stdin'); + } + i.stdin.end(this.options.input); + } + }), + ); + }); + } + } + t.ToolRunner = ToolRunner; + function argStringToArray(e) { + const t = []; + let r = false; + let A = false; + let s = ''; + function append(e) { + if (A && e !== '"') { + s += '\\'; + } + s += e; + A = false; + } + for (let i = 0; i < e.length; i++) { + const n = e.charAt(i); + if (n === '"') { + if (!A) { + r = !r; + } else { + append(n); + } + continue; + } + if (n === '\\' && A) { + append(n); + continue; + } + if (n === '\\' && r) { + A = true; + continue; + } + if (n === ' ' && !r) { + if (s.length > 0) { + t.push(s); + s = ''; + } + continue; + } + append(n); + } + if (s.length > 0) { + t.push(s.trim()); + } + return t; + } + t.argStringToArray = argStringToArray; + class ExecState extends a.EventEmitter { + constructor(e, t) { + super(); + this.processClosed = false; + this.processError = ''; + this.processExitCode = 0; + this.processExited = false; + this.processStderr = false; + this.delay = 1e4; + this.done = false; + this.timeout = null; + if (!t) { + throw new Error('toolPath must not be empty'); + } + this.options = e; + this.toolPath = t; + if (e.delay) { + this.delay = e.delay; + } + } + CheckComplete() { + if (this.done) { + return; + } + if (this.processClosed) { + this._setResult(); + } else if (this.processExited) { + this.timeout = p.setTimeout(ExecState.HandleTimeout, this.delay, this); + } + } + _debug(e) { + this.emit('debug', e); + } + _setResult() { + let e; + if (this.processExited) { + if (this.processError) { + e = new Error( + `There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`, + ); + } else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) { + e = new Error( + `The process '${this.toolPath}' failed with exit code ${this.processExitCode}`, + ); + } else if (this.processStderr && this.options.failOnStdErr) { + e = new Error( + `The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`, + ); + } + } + if (this.timeout) { + clearTimeout(this.timeout); + this.timeout = null; + } + this.done = true; + this.emit('done', e, this.processExitCode); + } + static HandleTimeout(e) { + if (e.done) { + return; + } + if (!e.processClosed && e.processExited) { + const t = `The STDIO streams did not close within ${ + e.delay / 1e3 + } seconds of the exit event from process '${ + e.toolPath + }'. This may indicate a child process inherited the STDIO streams and has not yet exited.`; + e._debug(t); + } + e._setResult(); + } + } + }, + 1648: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + const A = r(9896); + const s = r(857); + class Context { + constructor() { + this.payload = {}; + if (process.env.GITHUB_EVENT_PATH) { + if (A.existsSync(process.env.GITHUB_EVENT_PATH)) { + this.payload = JSON.parse( + A.readFileSync(process.env.GITHUB_EVENT_PATH, {encoding: 'utf8'}), + ); + } else { + const e = process.env.GITHUB_EVENT_PATH; + process.stdout.write(`GITHUB_EVENT_PATH ${e} does not exist${s.EOL}`); + } + } + this.eventName = process.env.GITHUB_EVENT_NAME; + this.sha = process.env.GITHUB_SHA; + this.ref = process.env.GITHUB_REF; + this.workflow = process.env.GITHUB_WORKFLOW; + this.action = process.env.GITHUB_ACTION; + this.actor = process.env.GITHUB_ACTOR; + } + get issue() { + const e = this.payload; + return Object.assign(Object.assign({}, this.repo), { + number: (e.issue || e.pull_request || e).number, + }); + } + get repo() { + if (process.env.GITHUB_REPOSITORY) { + const [e, t] = process.env.GITHUB_REPOSITORY.split('/'); + return {owner: e, repo: t}; + } + if (this.payload.repository) { + return {owner: this.payload.repository.owner.login, repo: this.payload.repository.name}; + } + throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); + } + } + t.Context = Context; + }, + 3228: function (e, t, r) { + 'use strict'; + var A = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (e != null) for (var r in e) if (Object.hasOwnProperty.call(e, r)) t[r] = e[r]; + t['default'] = e; + return t; + }; + Object.defineProperty(t, '__esModule', {value: true}); + const s = r(7); + const i = r(1148); + const n = A(r(1648)); + const o = A(r(2192)); + i.Octokit.prototype = new i.Octokit(); + t.context = new n.Context(); + class GitHub extends i.Octokit { + constructor(e, t) { + super(GitHub.getOctokitOptions(GitHub.disambiguate(e, t))); + this.graphql = GitHub.getGraphQL(GitHub.disambiguate(e, t)); + } + static disambiguate(e, t) { + return [typeof e === 'string' ? e : '', typeof e === 'object' ? e : t || {}]; + } + static getOctokitOptions(e) { + const t = e[0]; + const r = Object.assign({}, e[1]); + r.baseUrl = r.baseUrl || this.getApiBaseUrl(); + const A = GitHub.getAuthString(t, r); + if (A) { + r.auth = A; + } + const s = GitHub.getProxyAgent(r.baseUrl, r); + if (s) { + r.request = r.request ? Object.assign({}, r.request) : {}; + r.request.agent = s; + } + return r; + } + static getGraphQL(e) { + const t = {}; + t.baseUrl = this.getGraphQLBaseUrl(); + const r = e[0]; + const A = e[1]; + const i = this.getAuthString(r, A); + if (i) { + t.headers = {authorization: i}; + } + const n = GitHub.getProxyAgent(t.baseUrl, A); + if (n) { + t.request = {agent: n}; + } + return s.graphql.defaults(t); + } + static getAuthString(e, t) { + if (!e && !t.auth) { + throw new Error('Parameter token or opts.auth is required'); + } else if (e && t.auth) { + throw new Error('Parameters token and opts.auth may not both be specified'); + } + return typeof t.auth === 'string' ? t.auth : `token ${e}`; + } + static getProxyAgent(e, t) { + var r; + if (!((r = t.request) === null || r === void 0 ? void 0 : r.agent)) { + if (o.getProxyUrl(e)) { + const t = new o.HttpClient(); + return t.getAgent(e); + } + } + return undefined; + } + static getApiBaseUrl() { + return process.env['GITHUB_API_URL'] || 'https://api.github.com'; + } + static getGraphQLBaseUrl() { + let e = process.env['GITHUB_GRAPHQL_URL'] || 'https://api.github.com/graphql'; + if (e.endsWith('/')) { + e = e.substr(0, e.length - 1); + } + if (e.toUpperCase().endsWith('/GRAPHQL')) { + e = e.substr(0, e.length - '/graphql'.length); + } + return e; + } + } + t.GitHub = GitHub; + }, + 2192: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + const A = r(7016); + const s = r(8611); + const i = r(5692); + const n = r(624); + let o; + var a; + (function (e) { + e[(e['OK'] = 200)] = 'OK'; + e[(e['MultipleChoices'] = 300)] = 'MultipleChoices'; + e[(e['MovedPermanently'] = 301)] = 'MovedPermanently'; + e[(e['ResourceMoved'] = 302)] = 'ResourceMoved'; + e[(e['SeeOther'] = 303)] = 'SeeOther'; + e[(e['NotModified'] = 304)] = 'NotModified'; + e[(e['UseProxy'] = 305)] = 'UseProxy'; + e[(e['SwitchProxy'] = 306)] = 'SwitchProxy'; + e[(e['TemporaryRedirect'] = 307)] = 'TemporaryRedirect'; + e[(e['PermanentRedirect'] = 308)] = 'PermanentRedirect'; + e[(e['BadRequest'] = 400)] = 'BadRequest'; + e[(e['Unauthorized'] = 401)] = 'Unauthorized'; + e[(e['PaymentRequired'] = 402)] = 'PaymentRequired'; + e[(e['Forbidden'] = 403)] = 'Forbidden'; + e[(e['NotFound'] = 404)] = 'NotFound'; + e[(e['MethodNotAllowed'] = 405)] = 'MethodNotAllowed'; + e[(e['NotAcceptable'] = 406)] = 'NotAcceptable'; + e[(e['ProxyAuthenticationRequired'] = 407)] = 'ProxyAuthenticationRequired'; + e[(e['RequestTimeout'] = 408)] = 'RequestTimeout'; + e[(e['Conflict'] = 409)] = 'Conflict'; + e[(e['Gone'] = 410)] = 'Gone'; + e[(e['TooManyRequests'] = 429)] = 'TooManyRequests'; + e[(e['InternalServerError'] = 500)] = 'InternalServerError'; + e[(e['NotImplemented'] = 501)] = 'NotImplemented'; + e[(e['BadGateway'] = 502)] = 'BadGateway'; + e[(e['ServiceUnavailable'] = 503)] = 'ServiceUnavailable'; + e[(e['GatewayTimeout'] = 504)] = 'GatewayTimeout'; + })((a = t.HttpCodes || (t.HttpCodes = {}))); + var c; + (function (e) { + e['Accept'] = 'accept'; + e['ContentType'] = 'content-type'; + })((c = t.Headers || (t.Headers = {}))); + var u; + (function (e) { + e['ApplicationJson'] = 'application/json'; + })((u = t.MediaTypes || (t.MediaTypes = {}))); + function getProxyUrl(e) { + let t = n.getProxyUrl(A.parse(e)); + return t ? t.href : ''; + } + t.getProxyUrl = getProxyUrl; + const g = [a.MovedPermanently, a.ResourceMoved, a.SeeOther, a.TemporaryRedirect, a.PermanentRedirect]; + const l = [a.BadGateway, a.ServiceUnavailable, a.GatewayTimeout]; + const p = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; + const d = 10; + const h = 5; + class HttpClientResponse { + constructor(e) { + this.message = e; + } + readBody() { + return new Promise(async (e, t) => { + let r = Buffer.alloc(0); + this.message.on('data', (e) => { + r = Buffer.concat([r, e]); + }); + this.message.on('end', () => { + e(r.toString()); + }); + }); + } + } + t.HttpClientResponse = HttpClientResponse; + function isHttps(e) { + let t = A.parse(e); + return t.protocol === 'https:'; + } + t.isHttps = isHttps; + class HttpClient { + constructor(e, t, r) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = e; + this.handlers = t || []; + this.requestOptions = r; + if (r) { + if (r.ignoreSslError != null) { + this._ignoreSslError = r.ignoreSslError; + } + this._socketTimeout = r.socketTimeout; + if (r.allowRedirects != null) { + this._allowRedirects = r.allowRedirects; + } + if (r.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = r.allowRedirectDowngrade; + } + if (r.maxRedirects != null) { + this._maxRedirects = Math.max(r.maxRedirects, 0); + } + if (r.keepAlive != null) { + this._keepAlive = r.keepAlive; + } + if (r.allowRetries != null) { + this._allowRetries = r.allowRetries; + } + if (r.maxRetries != null) { + this._maxRetries = r.maxRetries; + } + } + } + options(e, t) { + return this.request('OPTIONS', e, null, t || {}); + } + get(e, t) { + return this.request('GET', e, null, t || {}); + } + del(e, t) { + return this.request('DELETE', e, null, t || {}); + } + post(e, t, r) { + return this.request('POST', e, t, r || {}); + } + patch(e, t, r) { + return this.request('PATCH', e, t, r || {}); + } + put(e, t, r) { + return this.request('PUT', e, t, r || {}); + } + head(e, t) { + return this.request('HEAD', e, null, t || {}); + } + sendStream(e, t, r, A) { + return this.request(e, t, r, A); + } + async getJson(e, t = {}) { + t[c.Accept] = this._getExistingOrDefaultHeader(t, c.Accept, u.ApplicationJson); + let r = await this.get(e, t); + return this._processResponse(r, this.requestOptions); + } + async postJson(e, t, r = {}) { + let A = JSON.stringify(t, null, 2); + r[c.Accept] = this._getExistingOrDefaultHeader(r, c.Accept, u.ApplicationJson); + r[c.ContentType] = this._getExistingOrDefaultHeader(r, c.ContentType, u.ApplicationJson); + let s = await this.post(e, A, r); + return this._processResponse(s, this.requestOptions); + } + async putJson(e, t, r = {}) { + let A = JSON.stringify(t, null, 2); + r[c.Accept] = this._getExistingOrDefaultHeader(r, c.Accept, u.ApplicationJson); + r[c.ContentType] = this._getExistingOrDefaultHeader(r, c.ContentType, u.ApplicationJson); + let s = await this.put(e, A, r); + return this._processResponse(s, this.requestOptions); + } + async patchJson(e, t, r = {}) { + let A = JSON.stringify(t, null, 2); + r[c.Accept] = this._getExistingOrDefaultHeader(r, c.Accept, u.ApplicationJson); + r[c.ContentType] = this._getExistingOrDefaultHeader(r, c.ContentType, u.ApplicationJson); + let s = await this.patch(e, A, r); + return this._processResponse(s, this.requestOptions); + } + async request(e, t, r, s) { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + let i = A.parse(t); + let n = this._prepareRequest(e, i, s); + let o = this._allowRetries && p.indexOf(e) != -1 ? this._maxRetries + 1 : 1; + let c = 0; + let u; + while (c < o) { + u = await this.requestRaw(n, r); + if (u && u.message && u.message.statusCode === a.Unauthorized) { + let e; + for (let t = 0; t < this.handlers.length; t++) { + if (this.handlers[t].canHandleAuthentication(u)) { + e = this.handlers[t]; + break; + } + } + if (e) { + return e.handleAuthentication(this, n, r); + } else { + return u; + } + } + let t = this._maxRedirects; + while (g.indexOf(u.message.statusCode) != -1 && this._allowRedirects && t > 0) { + const o = u.message.headers['location']; + if (!o) { + break; + } + let a = A.parse(o); + if (i.protocol == 'https:' && i.protocol != a.protocol && !this._allowRedirectDowngrade) { + 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.', + ); + } + await u.readBody(); + if (a.hostname !== i.hostname) { + for (let e in s) { + if (e.toLowerCase() === 'authorization') { + delete s[e]; + } + } + } + n = this._prepareRequest(e, a, s); + u = await this.requestRaw(n, r); + t--; + } + if (l.indexOf(u.message.statusCode) == -1) { + return u; + } + c += 1; + if (c < o) { + await u.readBody(); + await this._performExponentialBackoff(c); + } + } + return u; + } + dispose() { + if (this._agent) { + this._agent.destroy(); + } + this._disposed = true; + } + requestRaw(e, t) { + return new Promise((r, A) => { + let callbackForResult = function (e, t) { + if (e) { + A(e); + } + r(t); + }; + this.requestRawWithCallback(e, t, callbackForResult); + }); + } + requestRawWithCallback(e, t, r) { + let A; + if (typeof t === 'string') { + e.options.headers['Content-Length'] = Buffer.byteLength(t, 'utf8'); + } + let s = false; + let handleResult = (e, t) => { + if (!s) { + s = true; + r(e, t); + } + }; + let i = e.httpModule.request(e.options, (e) => { + let t = new HttpClientResponse(e); + handleResult(null, t); + }); + i.on('socket', (e) => { + A = e; + }); + i.setTimeout(this._socketTimeout || 3 * 6e4, () => { + if (A) { + A.end(); + } + handleResult(new Error('Request timeout: ' + e.options.path), null); + }); + i.on('error', function (e) { + handleResult(e, null); + }); + if (t && typeof t === 'string') { + i.write(t, 'utf8'); + } + if (t && typeof t !== 'string') { + t.on('close', function () { + i.end(); + }); + t.pipe(i); + } else { + i.end(); + } + } + getAgent(e) { + let t = A.parse(e); + return this._getAgent(t); + } + _prepareRequest(e, t, r) { + const A = {}; + A.parsedUrl = t; + const n = A.parsedUrl.protocol === 'https:'; + A.httpModule = n ? i : s; + const o = n ? 443 : 80; + A.options = {}; + A.options.host = A.parsedUrl.hostname; + A.options.port = A.parsedUrl.port ? parseInt(A.parsedUrl.port) : o; + A.options.path = (A.parsedUrl.pathname || '') + (A.parsedUrl.search || ''); + A.options.method = e; + A.options.headers = this._mergeHeaders(r); + if (this.userAgent != null) { + A.options.headers['user-agent'] = this.userAgent; + } + A.options.agent = this._getAgent(A.parsedUrl); + if (this.handlers) { + this.handlers.forEach((e) => { + e.prepareRequest(A.options); + }); + } + return A; + } + _mergeHeaders(e) { + const lowercaseKeys = (e) => Object.keys(e).reduce((t, r) => ((t[r.toLowerCase()] = e[r]), t), {}); + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(e)); + } + return lowercaseKeys(e || {}); + } + _getExistingOrDefaultHeader(e, t, r) { + const lowercaseKeys = (e) => Object.keys(e).reduce((t, r) => ((t[r.toLowerCase()] = e[r]), t), {}); + let A; + if (this.requestOptions && this.requestOptions.headers) { + A = lowercaseKeys(this.requestOptions.headers)[t]; + } + return e[t] || A || r; + } + _getAgent(e) { + let t; + let A = n.getProxyUrl(e); + let a = A && A.hostname; + if (this._keepAlive && a) { + t = this._proxyAgent; + } + if (this._keepAlive && !a) { + t = this._agent; + } + if (!!t) { + return t; + } + const c = e.protocol === 'https:'; + let u = 100; + if (!!this.requestOptions) { + u = this.requestOptions.maxSockets || s.globalAgent.maxSockets; + } + if (a) { + if (!o) { + o = r(770); + } + const e = { + maxSockets: u, + keepAlive: this._keepAlive, + proxy: {proxyAuth: A.auth, host: A.hostname, port: A.port}, + }; + let s; + const i = A.protocol === 'https:'; + if (c) { + s = i ? o.httpsOverHttps : o.httpsOverHttp; + } else { + s = i ? o.httpOverHttps : o.httpOverHttp; + } + t = s(e); + this._proxyAgent = t; + } + if (this._keepAlive && !t) { + const e = {keepAlive: this._keepAlive, maxSockets: u}; + t = c ? new i.Agent(e) : new s.Agent(e); + this._agent = t; + } + if (!t) { + t = c ? i.globalAgent : s.globalAgent; + } + if (c && this._ignoreSslError) { + t.options = Object.assign(t.options || {}, {rejectUnauthorized: false}); + } + return t; + } + _performExponentialBackoff(e) { + e = Math.min(d, e); + const t = h * Math.pow(2, e); + return new Promise((e) => setTimeout(() => e(), t)); + } + static dateTimeDeserializer(e, t) { + if (typeof t === 'string') { + let e = new Date(t); + if (!isNaN(e.valueOf())) { + return e; + } + } + return t; + } + async _processResponse(e, t) { + return new Promise(async (r, A) => { + const s = e.message.statusCode; + const i = {statusCode: s, result: null, headers: {}}; + if (s == a.NotFound) { + r(i); + } + let n; + let o; + try { + o = await e.readBody(); + if (o && o.length > 0) { + if (t && t.deserializeDates) { + n = JSON.parse(o, HttpClient.dateTimeDeserializer); + } else { + n = JSON.parse(o); + } + i.result = n; + } + i.headers = e.message.headers; + } catch (e) {} + if (s > 299) { + let e; + if (n && n.message) { + e = n.message; + } else if (o && o.length > 0) { + e = o; + } else { + e = 'Failed request: (' + s + ')'; + } + let t = new Error(e); + t['statusCode'] = s; + if (i.result) { + t['result'] = i.result; + } + A(t); + } else { + r(i); + } + }); + } + } + t.HttpClient = HttpClient; + }, + 624: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + const A = r(7016); + function getProxyUrl(e) { + let t = e.protocol === 'https:'; + let r; + if (checkBypass(e)) { + return r; + } + let s; + if (t) { + s = process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } else { + s = process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + if (s) { + r = A.parse(s); + } + return r; + } + t.getProxyUrl = getProxyUrl; + function checkBypass(e) { + if (!e.hostname) { + return false; + } + let t = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!t) { + return false; + } + let r; + if (e.port) { + r = Number(e.port); + } else if (e.protocol === 'http:') { + r = 80; + } else if (e.protocol === 'https:') { + r = 443; + } + let A = [e.hostname.toUpperCase()]; + if (typeof r === 'number') { + A.push(`${A[0]}:${r}`); + } + for (let e of t + .split(',') + .map((e) => e.trim().toUpperCase()) + .filter((e) => e)) { + if (A.some((t) => t === e)) { + return true; + } + } + return false; + } + t.checkBypass = checkBypass; + }, + 5207: function (e, t, r) { + 'use strict'; + var A = + (this && this.__awaiter) || + function (e, t, r, A) { + function adopt(e) { + return e instanceof r + ? e + : new r(function (t) { + t(e); + }); + } + return new (r || (r = Promise))(function (r, s) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + s(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + s(e); + } + } + function step(e) { + e.done ? r(e.value) : adopt(e.value).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + var s; + Object.defineProperty(t, '__esModule', {value: true}); + const i = r(2613); + const n = r(9896); + const o = r(6928); + (s = n.promises), + (t.chmod = s.chmod), + (t.copyFile = s.copyFile), + (t.lstat = s.lstat), + (t.mkdir = s.mkdir), + (t.readdir = s.readdir), + (t.readlink = s.readlink), + (t.rename = s.rename), + (t.rmdir = s.rmdir), + (t.stat = s.stat), + (t.symlink = s.symlink), + (t.unlink = s.unlink); + t.IS_WINDOWS = process.platform === 'win32'; + function exists(e) { + return A(this, void 0, void 0, function* () { + try { + yield t.stat(e); + } catch (e) { + if (e.code === 'ENOENT') { + return false; + } + throw e; + } + return true; + }); + } + t.exists = exists; + function isDirectory(e, r = false) { + return A(this, void 0, void 0, function* () { + const A = r ? yield t.stat(e) : yield t.lstat(e); + return A.isDirectory(); + }); + } + t.isDirectory = isDirectory; + function isRooted(e) { + e = normalizeSeparators(e); + if (!e) { + throw new Error('isRooted() parameter "p" cannot be empty'); + } + if (t.IS_WINDOWS) { + return e.startsWith('\\') || /^[A-Z]:/i.test(e); + } + return e.startsWith('/'); + } + t.isRooted = isRooted; + function mkdirP(e, r = 1e3, s = 1) { + return A(this, void 0, void 0, function* () { + i.ok(e, 'a path argument must be provided'); + e = o.resolve(e); + if (s >= r) return t.mkdir(e); + try { + yield t.mkdir(e); + return; + } catch (A) { + switch (A.code) { + case 'ENOENT': { + yield mkdirP(o.dirname(e), r, s + 1); + yield t.mkdir(e); + return; + } + default: { + let r; + try { + r = yield t.stat(e); + } catch (e) { + throw A; + } + if (!r.isDirectory()) throw A; + } + } + } + }); + } + t.mkdirP = mkdirP; + function tryGetExecutablePath(e, r) { + return A(this, void 0, void 0, function* () { + let A = undefined; + try { + A = yield t.stat(e); + } catch (t) { + if (t.code !== 'ENOENT') { + console.log( + `Unexpected error attempting to determine if executable file exists '${e}': ${t}`, + ); + } + } + if (A && A.isFile()) { + if (t.IS_WINDOWS) { + const t = o.extname(e).toUpperCase(); + if (r.some((e) => e.toUpperCase() === t)) { + return e; + } + } else { + if (isUnixExecutable(A)) { + return e; + } + } + } + const s = e; + for (const i of r) { + e = s + i; + A = undefined; + try { + A = yield t.stat(e); + } catch (t) { + if (t.code !== 'ENOENT') { + console.log( + `Unexpected error attempting to determine if executable file exists '${e}': ${t}`, + ); + } + } + if (A && A.isFile()) { + if (t.IS_WINDOWS) { + try { + const r = o.dirname(e); + const A = o.basename(e).toUpperCase(); + for (const s of yield t.readdir(r)) { + if (A === s.toUpperCase()) { + e = o.join(r, s); + break; + } + } + } catch (t) { + console.log( + `Unexpected error attempting to determine the actual case of the file '${e}': ${t}`, + ); + } + return e; + } else { + if (isUnixExecutable(A)) { + return e; + } + } + } + } + return ''; + }); + } + t.tryGetExecutablePath = tryGetExecutablePath; + function normalizeSeparators(e) { + e = e || ''; + if (t.IS_WINDOWS) { + e = e.replace(/\//g, '\\'); + return e.replace(/\\\\+/g, '\\'); + } + return e.replace(/\/\/+/g, '/'); + } + function isUnixExecutable(e) { + return ( + (e.mode & 1) > 0 || + ((e.mode & 8) > 0 && e.gid === process.getgid()) || + ((e.mode & 64) > 0 && e.uid === process.getuid()) + ); + } + }, + 4994: function (e, t, r) { + 'use strict'; + var A = + (this && this.__awaiter) || + function (e, t, r, A) { + function adopt(e) { + return e instanceof r + ? e + : new r(function (t) { + t(e); + }); + } + return new (r || (r = Promise))(function (r, s) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + s(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + s(e); + } + } + function step(e) { + e.done ? r(e.value) : adopt(e.value).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + Object.defineProperty(t, '__esModule', {value: true}); + const s = r(5317); + const i = r(6928); + const n = r(9023); + const o = r(5207); + const a = n.promisify(s.exec); + function cp(e, t, r = {}) { + return A(this, void 0, void 0, function* () { + const {force: A, recursive: s} = readCopyOptions(r); + const n = (yield o.exists(t)) ? yield o.stat(t) : null; + if (n && n.isFile() && !A) { + return; + } + const a = n && n.isDirectory() ? i.join(t, i.basename(e)) : t; + if (!(yield o.exists(e))) { + throw new Error(`no such file or directory: ${e}`); + } + const c = yield o.stat(e); + if (c.isDirectory()) { + if (!s) { + throw new Error( + `Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`, + ); + } else { + yield cpDirRecursive(e, a, 0, A); + } + } else { + if (i.relative(e, a) === '') { + throw new Error(`'${a}' and '${e}' are the same file`); + } + yield copyFile(e, a, A); + } + }); + } + t.cp = cp; + function mv(e, t, r = {}) { + return A(this, void 0, void 0, function* () { + if (yield o.exists(t)) { + let A = true; + if (yield o.isDirectory(t)) { + t = i.join(t, i.basename(e)); + A = yield o.exists(t); + } + if (A) { + if (r.force == null || r.force) { + yield rmRF(t); + } else { + throw new Error('Destination already exists'); + } + } + } + yield mkdirP(i.dirname(t)); + yield o.rename(e, t); + }); + } + t.mv = mv; + function rmRF(e) { + return A(this, void 0, void 0, function* () { + if (o.IS_WINDOWS) { + try { + if (yield o.isDirectory(e, true)) { + yield a(`rd /s /q "${e}"`); + } else { + yield a(`del /f /a "${e}"`); + } + } catch (e) { + if (e.code !== 'ENOENT') throw e; + } + try { + yield o.unlink(e); + } catch (e) { + if (e.code !== 'ENOENT') throw e; + } + } else { + let t = false; + try { + t = yield o.isDirectory(e); + } catch (e) { + if (e.code !== 'ENOENT') throw e; + return; + } + if (t) { + yield a(`rm -rf "${e}"`); + } else { + yield o.unlink(e); + } + } + }); + } + t.rmRF = rmRF; + function mkdirP(e) { + return A(this, void 0, void 0, function* () { + yield o.mkdirP(e); + }); + } + t.mkdirP = mkdirP; + function which(e, t) { + return A(this, void 0, void 0, function* () { + if (!e) { + throw new Error("parameter 'tool' is required"); + } + if (t) { + const t = yield which(e, false); + if (!t) { + if (o.IS_WINDOWS) { + throw new Error( + `Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`, + ); + } else { + throw new Error( + `Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`, + ); + } + } + } + try { + const t = []; + if (o.IS_WINDOWS && process.env.PATHEXT) { + for (const e of process.env.PATHEXT.split(i.delimiter)) { + if (e) { + t.push(e); + } + } + } + if (o.isRooted(e)) { + const r = yield o.tryGetExecutablePath(e, t); + if (r) { + return r; + } + return ''; + } + if (e.includes('/') || (o.IS_WINDOWS && e.includes('\\'))) { + return ''; + } + const r = []; + if (process.env.PATH) { + for (const e of process.env.PATH.split(i.delimiter)) { + if (e) { + r.push(e); + } + } + } + for (const A of r) { + const r = yield o.tryGetExecutablePath(A + i.sep + e, t); + if (r) { + return r; + } + } + return ''; + } catch (e) { + throw new Error(`which failed with message ${e.message}`); + } + }); + } + t.which = which; + function readCopyOptions(e) { + const t = e.force == null ? true : e.force; + const r = Boolean(e.recursive); + return {force: t, recursive: r}; + } + function cpDirRecursive(e, t, r, s) { + return A(this, void 0, void 0, function* () { + if (r >= 255) return; + r++; + yield mkdirP(t); + const A = yield o.readdir(e); + for (const i of A) { + const A = `${e}/${i}`; + const n = `${t}/${i}`; + const a = yield o.lstat(A); + if (a.isDirectory()) { + yield cpDirRecursive(A, n, r, s); + } else { + yield copyFile(A, n, s); + } + } + yield o.chmod(t, (yield o.stat(e)).mode); + }); + } + function copyFile(e, t, r) { + return A(this, void 0, void 0, function* () { + if ((yield o.lstat(e)).isSymbolicLink()) { + try { + yield o.lstat(t); + yield o.unlink(t); + } catch (e) { + if (e.code === 'EPERM') { + yield o.chmod(t, '0666'); + yield o.unlink(t); + } + } + const r = yield o.readlink(e); + yield o.symlink(r, t, o.IS_WINDOWS ? 'junction' : null); + } else if (!(yield o.exists(t)) || r) { + yield o.copyFile(e, t); + } + }); + } + }, + 7864: (e, t) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + async function auth(e) { + const t = e.split(/\./).length === 3 ? 'app' : /^v\d+\./.test(e) ? 'installation' : 'oauth'; + return {type: 'token', token: e, tokenType: t}; + } + function withAuthorizationPrefix(e) { + if (e.split(/\./).length === 3) { + return `bearer ${e}`; + } + return `token ${e}`; + } + async function hook(e, t, r, A) { + const s = t.endpoint.merge(r, A); + s.headers.authorization = withAuthorizationPrefix(e); + return t(s); + } + const r = function createTokenAuth(e) { + if (!e) { + throw new Error('[@octokit/auth-token] No token passed to createTokenAuth'); + } + if (typeof e !== 'string') { + throw new Error('[@octokit/auth-token] Token passed to createTokenAuth is not a string'); + } + e = e.replace(/^(token|bearer) +/i, ''); + return Object.assign(auth.bind(null, e), {hook: hook.bind(null, e)}); + }; + t.createTokenAuth = r; + }, + 4471: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + function _interopDefault(e) { + return e && typeof e === 'object' && 'default' in e ? e['default'] : e; + } + var A = _interopDefault(r(7146)); + var s = r(3843); + function lowercaseKeys(e) { + if (!e) { + return {}; + } + return Object.keys(e).reduce((t, r) => { + t[r.toLowerCase()] = e[r]; + return t; + }, {}); + } + function mergeDeep(e, t) { + const r = Object.assign({}, e); + Object.keys(t).forEach((s) => { + if (A(t[s])) { + if (!(s in e)) Object.assign(r, {[s]: t[s]}); + else r[s] = mergeDeep(e[s], t[s]); + } else { + Object.assign(r, {[s]: t[s]}); + } + }); + return r; + } + function merge(e, t, r) { + if (typeof t === 'string') { + let [e, A] = t.split(' '); + r = Object.assign(A ? {method: e, url: A} : {url: e}, r); + } else { + r = Object.assign({}, t); + } + r.headers = lowercaseKeys(r.headers); + const A = mergeDeep(e || {}, r); + if (e && e.mediaType.previews.length) { + A.mediaType.previews = e.mediaType.previews + .filter((e) => !A.mediaType.previews.includes(e)) + .concat(A.mediaType.previews); + } + A.mediaType.previews = A.mediaType.previews.map((e) => e.replace(/-preview/, '')); + return A; + } + function addQueryParameters(e, t) { + const r = /\?/.test(e) ? '&' : '?'; + const A = Object.keys(t); + if (A.length === 0) { + return e; + } + return ( + e + + r + + A.map((e) => { + if (e === 'q') { + return 'q=' + t.q.split('+').map(encodeURIComponent).join('+'); + } + return `${e}=${encodeURIComponent(t[e])}`; + }).join('&') + ); + } + const i = /\{[^}]+\}/g; + function removeNonChars(e) { + return e.replace(/^\W+|\W+$/g, '').split(/,/); + } + function extractUrlVariableNames(e) { + const t = e.match(i); + if (!t) { + return []; + } + return t.map(removeNonChars).reduce((e, t) => e.concat(t), []); + } + function omit(e, t) { + return Object.keys(e) + .filter((e) => !t.includes(e)) + .reduce((t, r) => { + t[r] = e[r]; + return t; + }, {}); + } + function encodeReserved(e) { + return e + .split(/(%[0-9A-Fa-f]{2})/g) + .map(function (e) { + if (!/%[0-9A-Fa-f]/.test(e)) { + e = encodeURI(e).replace(/%5B/g, '[').replace(/%5D/g, ']'); + } + return e; + }) + .join(''); + } + function encodeUnreserved(e) { + return encodeURIComponent(e).replace(/[!'()*]/g, function (e) { + return '%' + e.charCodeAt(0).toString(16).toUpperCase(); + }); + } + function encodeValue(e, t, r) { + t = e === '+' || e === '#' ? encodeReserved(t) : encodeUnreserved(t); + if (r) { + return encodeUnreserved(r) + '=' + t; + } else { + return t; + } + } + function isDefined(e) { + return e !== undefined && e !== null; + } + function isKeyOperator(e) { + return e === ';' || e === '&' || e === '?'; + } + function getValues(e, t, r, A) { + var s = e[r], + i = []; + if (isDefined(s) && s !== '') { + if (typeof s === 'string' || typeof s === 'number' || typeof s === 'boolean') { + s = s.toString(); + if (A && A !== '*') { + s = s.substring(0, parseInt(A, 10)); + } + i.push(encodeValue(t, s, isKeyOperator(t) ? r : '')); + } else { + if (A === '*') { + if (Array.isArray(s)) { + s.filter(isDefined).forEach(function (e) { + i.push(encodeValue(t, e, isKeyOperator(t) ? r : '')); + }); + } else { + Object.keys(s).forEach(function (e) { + if (isDefined(s[e])) { + i.push(encodeValue(t, s[e], e)); + } + }); + } + } else { + const e = []; + if (Array.isArray(s)) { + s.filter(isDefined).forEach(function (r) { + e.push(encodeValue(t, r)); + }); + } else { + Object.keys(s).forEach(function (r) { + if (isDefined(s[r])) { + e.push(encodeUnreserved(r)); + e.push(encodeValue(t, s[r].toString())); + } + }); + } + if (isKeyOperator(t)) { + i.push(encodeUnreserved(r) + '=' + e.join(',')); + } else if (e.length !== 0) { + i.push(e.join(',')); + } + } + } + } else { + if (t === ';') { + if (isDefined(s)) { + i.push(encodeUnreserved(r)); + } + } else if (s === '' && (t === '&' || t === '?')) { + i.push(encodeUnreserved(r) + '='); + } else if (s === '') { + i.push(''); + } + } + return i; + } + function parseUrl(e) { + return {expand: expand.bind(null, e)}; + } + function expand(e, t) { + var r = ['+', '#', '.', '/', ';', '?', '&']; + return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (e, A, s) { + if (A) { + let e = ''; + const s = []; + if (r.indexOf(A.charAt(0)) !== -1) { + e = A.charAt(0); + A = A.substr(1); + } + A.split(/,/g).forEach(function (r) { + var A = /([^:\*]*)(?::(\d+)|(\*))?/.exec(r); + s.push(getValues(t, e, A[1], A[2] || A[3])); + }); + if (e && e !== '+') { + var i = ','; + if (e === '?') { + i = '&'; + } else if (e !== '#') { + i = e; + } + return (s.length !== 0 ? e : '') + s.join(i); + } else { + return s.join(','); + } + } else { + return encodeReserved(s); + } + }); + } + function parse(e) { + let t = e.method.toUpperCase(); + let r = (e.url || '/').replace(/:([a-z]\w+)/g, '{+$1}'); + let A = Object.assign({}, e.headers); + let s; + let i = omit(e, ['method', 'baseUrl', 'url', 'headers', 'request', 'mediaType']); + const n = extractUrlVariableNames(r); + r = parseUrl(r).expand(i); + if (!/^http/.test(r)) { + r = e.baseUrl + r; + } + const o = Object.keys(e) + .filter((e) => n.includes(e)) + .concat('baseUrl'); + const a = omit(i, o); + const c = /application\/octet-stream/i.test(A.accept); + if (!c) { + if (e.mediaType.format) { + A.accept = A.accept + .split(/,/) + .map((t) => + t.replace( + /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, + `application/vnd$1$2.${e.mediaType.format}`, + ), + ) + .join(','); + } + if (e.mediaType.previews.length) { + const t = A.accept.match(/[\w-]+(?=-preview)/g) || []; + A.accept = t + .concat(e.mediaType.previews) + .map((t) => { + const r = e.mediaType.format ? `.${e.mediaType.format}` : '+json'; + return `application/vnd.github.${t}-preview${r}`; + }) + .join(','); + } + } + if (['GET', 'HEAD'].includes(t)) { + r = addQueryParameters(r, a); + } else { + if ('data' in a) { + s = a.data; + } else { + if (Object.keys(a).length) { + s = a; + } else { + A['content-length'] = 0; + } + } + } + if (!A['content-type'] && typeof s !== 'undefined') { + A['content-type'] = 'application/json; charset=utf-8'; + } + if (['PATCH', 'PUT'].includes(t) && typeof s === 'undefined') { + s = ''; + } + return Object.assign( + {method: t, url: r, headers: A}, + typeof s !== 'undefined' ? {body: s} : null, + e.request ? {request: e.request} : null, + ); + } + function endpointWithDefaults(e, t, r) { + return parse(merge(e, t, r)); + } + function withDefaults(e, t) { + const r = merge(e, t); + const A = endpointWithDefaults.bind(null, r); + return Object.assign(A, { + DEFAULTS: r, + defaults: withDefaults.bind(null, r), + merge: merge.bind(null, r), + parse: parse, + }); + } + const n = '6.0.2'; + const o = `octokit-endpoint.js/${n} ${s.getUserAgent()}`; + const a = { + method: 'GET', + baseUrl: 'https://api.github.com', + headers: {accept: 'application/vnd.github.v3+json', 'user-agent': o}, + mediaType: {format: '', previews: []}, + }; + const c = withDefaults(null, a); + t.endpoint = c; + }, + 7146: (e) => { + 'use strict'; + /*! + * isobject + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ function isObject(e) { + return e != null && typeof e === 'object' && Array.isArray(e) === false; + } + /*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ function isObjectObject(e) { + return isObject(e) === true && Object.prototype.toString.call(e) === '[object Object]'; + } + function isPlainObject(e) { + var t, r; + if (isObjectObject(e) === false) return false; + t = e.constructor; + if (typeof t !== 'function') return false; + r = t.prototype; + if (isObjectObject(r) === false) return false; + if (r.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + return true; + } + e.exports = isPlainObject; + }, + 7: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + var A = r(8636); + var s = r(3843); + const i = '4.5.0'; + class GraphqlError extends Error { + constructor(e, t) { + const r = t.data.errors[0].message; + super(r); + Object.assign(this, t.data); + this.name = 'GraphqlError'; + this.request = e; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + } + const n = ['method', 'baseUrl', 'url', 'headers', 'request', 'query', 'mediaType']; + function graphql(e, t, r) { + r = typeof t === 'string' ? (r = Object.assign({query: t}, r)) : (r = t); + const A = Object.keys(r).reduce((e, t) => { + if (n.includes(t)) { + e[t] = r[t]; + return e; + } + if (!e.variables) { + e.variables = {}; + } + e.variables[t] = r[t]; + return e; + }, {}); + return e(A).then((e) => { + if (e.data.errors) { + throw new GraphqlError(A, {data: e.data}); + } + return e.data.data; + }); + } + function withDefaults(e, t) { + const r = e.defaults(t); + const newApi = (e, t) => graphql(r, e, t); + return Object.assign(newApi, {defaults: withDefaults.bind(null, r), endpoint: A.request.endpoint}); + } + const o = withDefaults(A.request, { + headers: {'user-agent': `octokit-graphql.js/${i} ${s.getUserAgent()}`}, + method: 'POST', + url: '/graphql', + }); + function withCustomRequest(e) { + return withDefaults(e, {method: 'POST', url: '/graphql'}); + } + t.graphql = o; + t.withCustomRequest = withCustomRequest; + }, + 8082: (e, t) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + const r = '1.1.2'; + const A = [ + /^\/search\//, + /^\/repos\/[^/]+\/[^/]+\/commits\/[^/]+\/(check-runs|check-suites)([^/]|$)/, + /^\/installation\/repositories([^/]|$)/, + /^\/user\/installations([^/]|$)/, + /^\/repos\/[^/]+\/[^/]+\/actions\/secrets([^/]|$)/, + /^\/repos\/[^/]+\/[^/]+\/actions\/workflows(\/[^/]+\/runs)?([^/]|$)/, + /^\/repos\/[^/]+\/[^/]+\/actions\/runs(\/[^/]+\/(artifacts|jobs))?([^/]|$)/, + ]; + function normalizePaginatedListResponse(e, t, r) { + const s = t.replace(e.request.endpoint.DEFAULTS.baseUrl, ''); + const i = A.find((e) => e.test(s)); + if (!i) return; + const n = r.data.incomplete_results; + const o = r.data.repository_selection; + const a = r.data.total_count; + delete r.data.incomplete_results; + delete r.data.repository_selection; + delete r.data.total_count; + const c = Object.keys(r.data)[0]; + const u = r.data[c]; + r.data = u; + if (typeof n !== 'undefined') { + r.data.incomplete_results = n; + } + if (typeof o !== 'undefined') { + r.data.repository_selection = o; + } + r.data.total_count = a; + Object.defineProperty(r.data, c, { + get() { + e.log.warn( + `[@octokit/paginate-rest] "response.data.${c}" is deprecated for "GET ${s}". Get the results directly from "response.data"`, + ); + return Array.from(u); + }, + }); + } + function iterator(e, t, r) { + const A = e.request.endpoint(t, r); + const s = A.method; + const i = A.headers; + let n = A.url; + return { + [Symbol.asyncIterator]: () => ({ + next() { + if (!n) { + return Promise.resolve({done: true}); + } + return e.request({method: s, url: n, headers: i}).then((t) => { + normalizePaginatedListResponse(e, n, t); + n = ((t.headers.link || '').match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return {value: t}; + }); + }, + }), + }; + } + function paginate(e, t, r, A) { + if (typeof r === 'function') { + A = r; + r = undefined; + } + return gather(e, [], iterator(e, t, r)[Symbol.asyncIterator](), A); + } + function gather(e, t, r, A) { + return r.next().then((s) => { + if (s.done) { + return t; + } + let i = false; + function done() { + i = true; + } + t = t.concat(A ? A(s.value, done) : s.value.data); + if (i) { + return t; + } + return gather(e, t, r, A); + }); + } + function paginateRest(e) { + return {paginate: Object.assign(paginate.bind(null, e), {iterator: iterator.bind(null, e)})}; + } + paginateRest.VERSION = r; + t.paginateRest = paginateRest; + }, + 6966: (e, t) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + const r = '1.0.0'; + function requestLog(e) { + e.hook.wrap('request', (t, r) => { + e.log.debug('request', r); + const A = Date.now(); + const s = e.request.endpoint.parse(r); + const i = s.url.replace(r.baseUrl, ''); + return t(r) + .then((t) => { + e.log.info(`${s.method} ${i} - ${t.status} in ${Date.now() - A}ms`); + return t; + }) + .catch((t) => { + e.log.info(`${s.method} ${i} - ${t.status} in ${Date.now() - A}ms`); + throw t; + }); + }); + } + requestLog.VERSION = r; + t.requestLog = requestLog; + }, + 4935: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + var A = r(4150); + var s = { + actions: { + cancelWorkflowRun: { + method: 'POST', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + run_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/actions/runs/:run_id/cancel', + }, + createOrUpdateSecretForRepo: { + method: 'PUT', + params: { + encrypted_value: {type: 'string'}, + key_id: {type: 'string'}, + name: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/secrets/:name', + }, + createRegistrationToken: { + method: 'POST', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/actions/runners/registration-token', + }, + createRemoveToken: { + method: 'POST', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/actions/runners/remove-token', + }, + deleteArtifact: { + method: 'DELETE', + params: { + artifact_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/artifacts/:artifact_id', + }, + deleteSecretFromRepo: { + method: 'DELETE', + params: { + name: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/secrets/:name', + }, + downloadArtifact: { + method: 'GET', + params: { + archive_format: {required: true, type: 'string'}, + artifact_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/artifacts/:artifact_id/:archive_format', + }, + getArtifact: { + method: 'GET', + params: { + artifact_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/artifacts/:artifact_id', + }, + getPublicKey: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/actions/secrets/public-key', + }, + getSecret: { + method: 'GET', + params: { + name: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/secrets/:name', + }, + getSelfHostedRunner: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + runner_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/actions/runners/:runner_id', + }, + getWorkflow: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + workflow_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/actions/workflows/:workflow_id', + }, + getWorkflowJob: { + method: 'GET', + params: { + job_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/jobs/:job_id', + }, + getWorkflowRun: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + run_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/actions/runs/:run_id', + }, + listDownloadsForSelfHostedRunnerApplication: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/actions/runners/downloads', + }, + listJobsForWorkflowRun: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + run_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/actions/runs/:run_id/jobs', + }, + listRepoWorkflowRuns: { + method: 'GET', + params: { + actor: {type: 'string'}, + branch: {type: 'string'}, + event: {type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + status: {enum: ['completed', 'status', 'conclusion'], type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/runs', + }, + listRepoWorkflows: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/workflows', + }, + listSecretsForRepo: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/secrets', + }, + listSelfHostedRunnersForRepo: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/runners', + }, + listWorkflowJobLogs: { + method: 'GET', + params: { + job_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/actions/jobs/:job_id/logs', + }, + listWorkflowRunArtifacts: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + run_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/actions/runs/:run_id/artifacts', + }, + listWorkflowRunLogs: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + run_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/actions/runs/:run_id/logs', + }, + listWorkflowRuns: { + method: 'GET', + params: { + actor: {type: 'string'}, + branch: {type: 'string'}, + event: {type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + status: {enum: ['completed', 'status', 'conclusion'], type: 'string'}, + workflow_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/actions/workflows/:workflow_id/runs', + }, + reRunWorkflow: { + method: 'POST', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + run_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/actions/runs/:run_id/rerun', + }, + removeSelfHostedRunner: { + method: 'DELETE', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + runner_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/actions/runners/:runner_id', + }, + }, + activity: { + checkStarringRepo: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/user/starred/:owner/:repo', + }, + deleteRepoSubscription: { + method: 'DELETE', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/subscription', + }, + deleteThreadSubscription: { + method: 'DELETE', + params: {thread_id: {required: true, type: 'integer'}}, + url: '/notifications/threads/:thread_id/subscription', + }, + getRepoSubscription: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/subscription', + }, + getThread: { + method: 'GET', + params: {thread_id: {required: true, type: 'integer'}}, + url: '/notifications/threads/:thread_id', + }, + getThreadSubscription: { + method: 'GET', + params: {thread_id: {required: true, type: 'integer'}}, + url: '/notifications/threads/:thread_id/subscription', + }, + listEventsForOrg: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/events/orgs/:org', + }, + listEventsForUser: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/events', + }, + listFeeds: {method: 'GET', params: {}, url: '/feeds'}, + listNotifications: { + method: 'GET', + params: { + all: {type: 'boolean'}, + before: {type: 'string'}, + page: {type: 'integer'}, + participating: {type: 'boolean'}, + per_page: {type: 'integer'}, + since: {type: 'string'}, + }, + url: '/notifications', + }, + listNotificationsForRepo: { + method: 'GET', + params: { + all: {type: 'boolean'}, + before: {type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + participating: {type: 'boolean'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + since: {type: 'string'}, + }, + url: '/repos/:owner/:repo/notifications', + }, + listPublicEvents: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/events', + }, + listPublicEventsForOrg: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/orgs/:org/events', + }, + listPublicEventsForRepoNetwork: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/networks/:owner/:repo/events', + }, + listPublicEventsForUser: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/events/public', + }, + listReceivedEventsForUser: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/received_events', + }, + listReceivedPublicEventsForUser: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/received_events/public', + }, + listRepoEvents: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/events', + }, + listReposStarredByAuthenticatedUser: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + sort: {enum: ['created', 'updated'], type: 'string'}, + }, + url: '/user/starred', + }, + listReposStarredByUser: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + sort: {enum: ['created', 'updated'], type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/starred', + }, + listReposWatchedByUser: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/subscriptions', + }, + listStargazersForRepo: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/stargazers', + }, + listWatchedReposForAuthenticatedUser: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/subscriptions', + }, + listWatchersForRepo: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/subscribers', + }, + markAsRead: {method: 'PUT', params: {last_read_at: {type: 'string'}}, url: '/notifications'}, + markNotificationsAsReadForRepo: { + method: 'PUT', + params: { + last_read_at: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/notifications', + }, + markThreadAsRead: { + method: 'PATCH', + params: {thread_id: {required: true, type: 'integer'}}, + url: '/notifications/threads/:thread_id', + }, + setRepoSubscription: { + method: 'PUT', + params: { + ignored: {type: 'boolean'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + subscribed: {type: 'boolean'}, + }, + url: '/repos/:owner/:repo/subscription', + }, + setThreadSubscription: { + method: 'PUT', + params: {ignored: {type: 'boolean'}, thread_id: {required: true, type: 'integer'}}, + url: '/notifications/threads/:thread_id/subscription', + }, + starRepo: { + method: 'PUT', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/user/starred/:owner/:repo', + }, + unstarRepo: { + method: 'DELETE', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/user/starred/:owner/:repo', + }, + }, + apps: { + addRepoToInstallation: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'PUT', + params: { + installation_id: {required: true, type: 'integer'}, + repository_id: {required: true, type: 'integer'}, + }, + url: '/user/installations/:installation_id/repositories/:repository_id', + }, + checkAccountIsAssociatedWithAny: { + method: 'GET', + params: {account_id: {required: true, type: 'integer'}}, + url: '/marketplace_listing/accounts/:account_id', + }, + checkAccountIsAssociatedWithAnyStubbed: { + method: 'GET', + params: {account_id: {required: true, type: 'integer'}}, + url: '/marketplace_listing/stubbed/accounts/:account_id', + }, + checkAuthorization: { + deprecated: + 'octokit.apps.checkAuthorization() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#check-an-authorization', + method: 'GET', + params: { + access_token: {required: true, type: 'string'}, + client_id: {required: true, type: 'string'}, + }, + url: '/applications/:client_id/tokens/:access_token', + }, + checkToken: { + headers: {accept: 'application/vnd.github.doctor-strange-preview+json'}, + method: 'POST', + params: {access_token: {type: 'string'}, client_id: {required: true, type: 'string'}}, + url: '/applications/:client_id/token', + }, + createContentAttachment: { + headers: {accept: 'application/vnd.github.corsair-preview+json'}, + method: 'POST', + params: { + body: {required: true, type: 'string'}, + content_reference_id: {required: true, type: 'integer'}, + title: {required: true, type: 'string'}, + }, + url: '/content_references/:content_reference_id/attachments', + }, + createFromManifest: { + headers: {accept: 'application/vnd.github.fury-preview+json'}, + method: 'POST', + params: {code: {required: true, type: 'string'}}, + url: '/app-manifests/:code/conversions', + }, + createInstallationToken: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'POST', + params: { + installation_id: {required: true, type: 'integer'}, + permissions: {type: 'object'}, + repository_ids: {type: 'integer[]'}, + }, + url: '/app/installations/:installation_id/access_tokens', + }, + deleteAuthorization: { + headers: {accept: 'application/vnd.github.doctor-strange-preview+json'}, + method: 'DELETE', + params: {access_token: {type: 'string'}, client_id: {required: true, type: 'string'}}, + url: '/applications/:client_id/grant', + }, + deleteInstallation: { + headers: { + accept: 'application/vnd.github.gambit-preview+json,application/vnd.github.machine-man-preview+json', + }, + method: 'DELETE', + params: {installation_id: {required: true, type: 'integer'}}, + url: '/app/installations/:installation_id', + }, + deleteToken: { + headers: {accept: 'application/vnd.github.doctor-strange-preview+json'}, + method: 'DELETE', + params: {access_token: {type: 'string'}, client_id: {required: true, type: 'string'}}, + url: '/applications/:client_id/token', + }, + findOrgInstallation: { + deprecated: + 'octokit.apps.findOrgInstallation() has been renamed to octokit.apps.getOrgInstallation() (2019-04-10)', + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {org: {required: true, type: 'string'}}, + url: '/orgs/:org/installation', + }, + findRepoInstallation: { + deprecated: + 'octokit.apps.findRepoInstallation() has been renamed to octokit.apps.getRepoInstallation() (2019-04-10)', + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/installation', + }, + findUserInstallation: { + deprecated: + 'octokit.apps.findUserInstallation() has been renamed to octokit.apps.getUserInstallation() (2019-04-10)', + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {username: {required: true, type: 'string'}}, + url: '/users/:username/installation', + }, + getAuthenticated: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {}, + url: '/app', + }, + getBySlug: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {app_slug: {required: true, type: 'string'}}, + url: '/apps/:app_slug', + }, + getInstallation: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {installation_id: {required: true, type: 'integer'}}, + url: '/app/installations/:installation_id', + }, + getOrgInstallation: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {org: {required: true, type: 'string'}}, + url: '/orgs/:org/installation', + }, + getRepoInstallation: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/installation', + }, + getUserInstallation: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {username: {required: true, type: 'string'}}, + url: '/users/:username/installation', + }, + listAccountsUserOrOrgOnPlan: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + plan_id: {required: true, type: 'integer'}, + sort: {enum: ['created', 'updated'], type: 'string'}, + }, + url: '/marketplace_listing/plans/:plan_id/accounts', + }, + listAccountsUserOrOrgOnPlanStubbed: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + plan_id: {required: true, type: 'integer'}, + sort: {enum: ['created', 'updated'], type: 'string'}, + }, + url: '/marketplace_listing/stubbed/plans/:plan_id/accounts', + }, + listInstallationReposForAuthenticatedUser: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: { + installation_id: {required: true, type: 'integer'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/user/installations/:installation_id/repositories', + }, + listInstallations: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/app/installations', + }, + listInstallationsForAuthenticatedUser: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/installations', + }, + listMarketplacePurchasesForAuthenticatedUser: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/marketplace_purchases', + }, + listMarketplacePurchasesForAuthenticatedUserStubbed: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/marketplace_purchases/stubbed', + }, + listPlans: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/marketplace_listing/plans', + }, + listPlansStubbed: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/marketplace_listing/stubbed/plans', + }, + listRepos: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/installation/repositories', + }, + removeRepoFromInstallation: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'DELETE', + params: { + installation_id: {required: true, type: 'integer'}, + repository_id: {required: true, type: 'integer'}, + }, + url: '/user/installations/:installation_id/repositories/:repository_id', + }, + resetAuthorization: { + deprecated: + 'octokit.apps.resetAuthorization() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#reset-an-authorization', + method: 'POST', + params: { + access_token: {required: true, type: 'string'}, + client_id: {required: true, type: 'string'}, + }, + url: '/applications/:client_id/tokens/:access_token', + }, + resetToken: { + headers: {accept: 'application/vnd.github.doctor-strange-preview+json'}, + method: 'PATCH', + params: {access_token: {type: 'string'}, client_id: {required: true, type: 'string'}}, + url: '/applications/:client_id/token', + }, + revokeAuthorizationForApplication: { + deprecated: + 'octokit.apps.revokeAuthorizationForApplication() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#revoke-an-authorization-for-an-application', + method: 'DELETE', + params: { + access_token: {required: true, type: 'string'}, + client_id: {required: true, type: 'string'}, + }, + url: '/applications/:client_id/tokens/:access_token', + }, + revokeGrantForApplication: { + deprecated: + 'octokit.apps.revokeGrantForApplication() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#revoke-a-grant-for-an-application', + method: 'DELETE', + params: { + access_token: {required: true, type: 'string'}, + client_id: {required: true, type: 'string'}, + }, + url: '/applications/:client_id/grants/:access_token', + }, + revokeInstallationToken: { + headers: {accept: 'application/vnd.github.gambit-preview+json'}, + method: 'DELETE', + params: {}, + url: '/installation/token', + }, + }, + checks: { + create: { + headers: {accept: 'application/vnd.github.antiope-preview+json'}, + method: 'POST', + params: { + actions: {type: 'object[]'}, + 'actions[].description': {required: true, type: 'string'}, + 'actions[].identifier': {required: true, type: 'string'}, + 'actions[].label': {required: true, type: 'string'}, + completed_at: {type: 'string'}, + conclusion: { + enum: ['success', 'failure', 'neutral', 'cancelled', 'timed_out', 'action_required'], + type: 'string', + }, + details_url: {type: 'string'}, + external_id: {type: 'string'}, + head_sha: {required: true, type: 'string'}, + name: {required: true, type: 'string'}, + output: {type: 'object'}, + 'output.annotations': {type: 'object[]'}, + 'output.annotations[].annotation_level': { + enum: ['notice', 'warning', 'failure'], + required: true, + type: 'string', + }, + 'output.annotations[].end_column': {type: 'integer'}, + 'output.annotations[].end_line': {required: true, type: 'integer'}, + 'output.annotations[].message': {required: true, type: 'string'}, + 'output.annotations[].path': {required: true, type: 'string'}, + 'output.annotations[].raw_details': {type: 'string'}, + 'output.annotations[].start_column': {type: 'integer'}, + 'output.annotations[].start_line': {required: true, type: 'integer'}, + 'output.annotations[].title': {type: 'string'}, + 'output.images': {type: 'object[]'}, + 'output.images[].alt': {required: true, type: 'string'}, + 'output.images[].caption': {type: 'string'}, + 'output.images[].image_url': {required: true, type: 'string'}, + 'output.summary': {required: true, type: 'string'}, + 'output.text': {type: 'string'}, + 'output.title': {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + started_at: {type: 'string'}, + status: {enum: ['queued', 'in_progress', 'completed'], type: 'string'}, + }, + url: '/repos/:owner/:repo/check-runs', + }, + createSuite: { + headers: {accept: 'application/vnd.github.antiope-preview+json'}, + method: 'POST', + params: { + head_sha: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/check-suites', + }, + get: { + headers: {accept: 'application/vnd.github.antiope-preview+json'}, + method: 'GET', + params: { + check_run_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/check-runs/:check_run_id', + }, + getSuite: { + headers: {accept: 'application/vnd.github.antiope-preview+json'}, + method: 'GET', + params: { + check_suite_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/check-suites/:check_suite_id', + }, + listAnnotations: { + headers: {accept: 'application/vnd.github.antiope-preview+json'}, + method: 'GET', + params: { + check_run_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/check-runs/:check_run_id/annotations', + }, + listForRef: { + headers: {accept: 'application/vnd.github.antiope-preview+json'}, + method: 'GET', + params: { + check_name: {type: 'string'}, + filter: {enum: ['latest', 'all'], type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + status: {enum: ['queued', 'in_progress', 'completed'], type: 'string'}, + }, + url: '/repos/:owner/:repo/commits/:ref/check-runs', + }, + listForSuite: { + headers: {accept: 'application/vnd.github.antiope-preview+json'}, + method: 'GET', + params: { + check_name: {type: 'string'}, + check_suite_id: {required: true, type: 'integer'}, + filter: {enum: ['latest', 'all'], type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + status: {enum: ['queued', 'in_progress', 'completed'], type: 'string'}, + }, + url: '/repos/:owner/:repo/check-suites/:check_suite_id/check-runs', + }, + listSuitesForRef: { + headers: {accept: 'application/vnd.github.antiope-preview+json'}, + method: 'GET', + params: { + app_id: {type: 'integer'}, + check_name: {type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/commits/:ref/check-suites', + }, + rerequestSuite: { + headers: {accept: 'application/vnd.github.antiope-preview+json'}, + method: 'POST', + params: { + check_suite_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/check-suites/:check_suite_id/rerequest', + }, + setSuitesPreferences: { + headers: {accept: 'application/vnd.github.antiope-preview+json'}, + method: 'PATCH', + params: { + auto_trigger_checks: {type: 'object[]'}, + 'auto_trigger_checks[].app_id': {required: true, type: 'integer'}, + 'auto_trigger_checks[].setting': {required: true, type: 'boolean'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/check-suites/preferences', + }, + update: { + headers: {accept: 'application/vnd.github.antiope-preview+json'}, + method: 'PATCH', + params: { + actions: {type: 'object[]'}, + 'actions[].description': {required: true, type: 'string'}, + 'actions[].identifier': {required: true, type: 'string'}, + 'actions[].label': {required: true, type: 'string'}, + check_run_id: {required: true, type: 'integer'}, + completed_at: {type: 'string'}, + conclusion: { + enum: ['success', 'failure', 'neutral', 'cancelled', 'timed_out', 'action_required'], + type: 'string', + }, + details_url: {type: 'string'}, + external_id: {type: 'string'}, + name: {type: 'string'}, + output: {type: 'object'}, + 'output.annotations': {type: 'object[]'}, + 'output.annotations[].annotation_level': { + enum: ['notice', 'warning', 'failure'], + required: true, + type: 'string', + }, + 'output.annotations[].end_column': {type: 'integer'}, + 'output.annotations[].end_line': {required: true, type: 'integer'}, + 'output.annotations[].message': {required: true, type: 'string'}, + 'output.annotations[].path': {required: true, type: 'string'}, + 'output.annotations[].raw_details': {type: 'string'}, + 'output.annotations[].start_column': {type: 'integer'}, + 'output.annotations[].start_line': {required: true, type: 'integer'}, + 'output.annotations[].title': {type: 'string'}, + 'output.images': {type: 'object[]'}, + 'output.images[].alt': {required: true, type: 'string'}, + 'output.images[].caption': {type: 'string'}, + 'output.images[].image_url': {required: true, type: 'string'}, + 'output.summary': {required: true, type: 'string'}, + 'output.text': {type: 'string'}, + 'output.title': {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + started_at: {type: 'string'}, + status: {enum: ['queued', 'in_progress', 'completed'], type: 'string'}, + }, + url: '/repos/:owner/:repo/check-runs/:check_run_id', + }, + }, + codesOfConduct: { + getConductCode: { + headers: {accept: 'application/vnd.github.scarlet-witch-preview+json'}, + method: 'GET', + params: {key: {required: true, type: 'string'}}, + url: '/codes_of_conduct/:key', + }, + getForRepo: { + headers: {accept: 'application/vnd.github.scarlet-witch-preview+json'}, + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/community/code_of_conduct', + }, + listConductCodes: { + headers: {accept: 'application/vnd.github.scarlet-witch-preview+json'}, + method: 'GET', + params: {}, + url: '/codes_of_conduct', + }, + }, + emojis: {get: {method: 'GET', params: {}, url: '/emojis'}}, + gists: { + checkIsStarred: { + method: 'GET', + params: {gist_id: {required: true, type: 'string'}}, + url: '/gists/:gist_id/star', + }, + create: { + method: 'POST', + params: { + description: {type: 'string'}, + files: {required: true, type: 'object'}, + 'files.content': {type: 'string'}, + public: {type: 'boolean'}, + }, + url: '/gists', + }, + createComment: { + method: 'POST', + params: {body: {required: true, type: 'string'}, gist_id: {required: true, type: 'string'}}, + url: '/gists/:gist_id/comments', + }, + delete: { + method: 'DELETE', + params: {gist_id: {required: true, type: 'string'}}, + url: '/gists/:gist_id', + }, + deleteComment: { + method: 'DELETE', + params: { + comment_id: {required: true, type: 'integer'}, + gist_id: {required: true, type: 'string'}, + }, + url: '/gists/:gist_id/comments/:comment_id', + }, + fork: { + method: 'POST', + params: {gist_id: {required: true, type: 'string'}}, + url: '/gists/:gist_id/forks', + }, + get: {method: 'GET', params: {gist_id: {required: true, type: 'string'}}, url: '/gists/:gist_id'}, + getComment: { + method: 'GET', + params: { + comment_id: {required: true, type: 'integer'}, + gist_id: {required: true, type: 'string'}, + }, + url: '/gists/:gist_id/comments/:comment_id', + }, + getRevision: { + method: 'GET', + params: {gist_id: {required: true, type: 'string'}, sha: {required: true, type: 'string'}}, + url: '/gists/:gist_id/:sha', + }, + list: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}, since: {type: 'string'}}, + url: '/gists', + }, + listComments: { + method: 'GET', + params: { + gist_id: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/gists/:gist_id/comments', + }, + listCommits: { + method: 'GET', + params: { + gist_id: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/gists/:gist_id/commits', + }, + listForks: { + method: 'GET', + params: { + gist_id: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/gists/:gist_id/forks', + }, + listPublic: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}, since: {type: 'string'}}, + url: '/gists/public', + }, + listPublicForUser: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + since: {type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/gists', + }, + listStarred: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}, since: {type: 'string'}}, + url: '/gists/starred', + }, + star: { + method: 'PUT', + params: {gist_id: {required: true, type: 'string'}}, + url: '/gists/:gist_id/star', + }, + unstar: { + method: 'DELETE', + params: {gist_id: {required: true, type: 'string'}}, + url: '/gists/:gist_id/star', + }, + update: { + method: 'PATCH', + params: { + description: {type: 'string'}, + files: {type: 'object'}, + 'files.content': {type: 'string'}, + 'files.filename': {type: 'string'}, + gist_id: {required: true, type: 'string'}, + }, + url: '/gists/:gist_id', + }, + updateComment: { + method: 'PATCH', + params: { + body: {required: true, type: 'string'}, + comment_id: {required: true, type: 'integer'}, + gist_id: {required: true, type: 'string'}, + }, + url: '/gists/:gist_id/comments/:comment_id', + }, + }, + git: { + createBlob: { + method: 'POST', + params: { + content: {required: true, type: 'string'}, + encoding: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/blobs', + }, + createCommit: { + method: 'POST', + params: { + author: {type: 'object'}, + 'author.date': {type: 'string'}, + 'author.email': {type: 'string'}, + 'author.name': {type: 'string'}, + committer: {type: 'object'}, + 'committer.date': {type: 'string'}, + 'committer.email': {type: 'string'}, + 'committer.name': {type: 'string'}, + message: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + parents: {required: true, type: 'string[]'}, + repo: {required: true, type: 'string'}, + signature: {type: 'string'}, + tree: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/commits', + }, + createRef: { + method: 'POST', + params: { + owner: {required: true, type: 'string'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + sha: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/refs', + }, + createTag: { + method: 'POST', + params: { + message: {required: true, type: 'string'}, + object: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + tag: {required: true, type: 'string'}, + tagger: {type: 'object'}, + 'tagger.date': {type: 'string'}, + 'tagger.email': {type: 'string'}, + 'tagger.name': {type: 'string'}, + type: {enum: ['commit', 'tree', 'blob'], required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/tags', + }, + createTree: { + method: 'POST', + params: { + base_tree: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + tree: {required: true, type: 'object[]'}, + 'tree[].content': {type: 'string'}, + 'tree[].mode': {enum: ['100644', '100755', '040000', '160000', '120000'], type: 'string'}, + 'tree[].path': {type: 'string'}, + 'tree[].sha': {allowNull: true, type: 'string'}, + 'tree[].type': {enum: ['blob', 'tree', 'commit'], type: 'string'}, + }, + url: '/repos/:owner/:repo/git/trees', + }, + deleteRef: { + method: 'DELETE', + params: { + owner: {required: true, type: 'string'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/refs/:ref', + }, + getBlob: { + method: 'GET', + params: { + file_sha: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/blobs/:file_sha', + }, + getCommit: { + method: 'GET', + params: { + commit_sha: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/commits/:commit_sha', + }, + getRef: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/ref/:ref', + }, + getTag: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + tag_sha: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/tags/:tag_sha', + }, + getTree: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + recursive: {enum: ['1'], type: 'integer'}, + repo: {required: true, type: 'string'}, + tree_sha: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/trees/:tree_sha', + }, + listMatchingRefs: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/matching-refs/:ref', + }, + listRefs: { + method: 'GET', + params: { + namespace: {type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/refs/:namespace', + }, + updateRef: { + method: 'PATCH', + params: { + force: {type: 'boolean'}, + owner: {required: true, type: 'string'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + sha: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/git/refs/:ref', + }, + }, + gitignore: { + getTemplate: { + method: 'GET', + params: {name: {required: true, type: 'string'}}, + url: '/gitignore/templates/:name', + }, + listTemplates: {method: 'GET', params: {}, url: '/gitignore/templates'}, + }, + interactions: { + addOrUpdateRestrictionsForOrg: { + headers: {accept: 'application/vnd.github.sombra-preview+json'}, + method: 'PUT', + params: { + limit: { + enum: ['existing_users', 'contributors_only', 'collaborators_only'], + required: true, + type: 'string', + }, + org: {required: true, type: 'string'}, + }, + url: '/orgs/:org/interaction-limits', + }, + addOrUpdateRestrictionsForRepo: { + headers: {accept: 'application/vnd.github.sombra-preview+json'}, + method: 'PUT', + params: { + limit: { + enum: ['existing_users', 'contributors_only', 'collaborators_only'], + required: true, + type: 'string', + }, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/interaction-limits', + }, + getRestrictionsForOrg: { + headers: {accept: 'application/vnd.github.sombra-preview+json'}, + method: 'GET', + params: {org: {required: true, type: 'string'}}, + url: '/orgs/:org/interaction-limits', + }, + getRestrictionsForRepo: { + headers: {accept: 'application/vnd.github.sombra-preview+json'}, + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/interaction-limits', + }, + removeRestrictionsForOrg: { + headers: {accept: 'application/vnd.github.sombra-preview+json'}, + method: 'DELETE', + params: {org: {required: true, type: 'string'}}, + url: '/orgs/:org/interaction-limits', + }, + removeRestrictionsForRepo: { + headers: {accept: 'application/vnd.github.sombra-preview+json'}, + method: 'DELETE', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/interaction-limits', + }, + }, + issues: { + addAssignees: { + method: 'POST', + params: { + assignees: {type: 'string[]'}, + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/assignees', + }, + addLabels: { + method: 'POST', + params: { + issue_number: {required: true, type: 'integer'}, + labels: {required: true, type: 'string[]'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/labels', + }, + checkAssignee: { + method: 'GET', + params: { + assignee: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/assignees/:assignee', + }, + create: { + method: 'POST', + params: { + assignee: {type: 'string'}, + assignees: {type: 'string[]'}, + body: {type: 'string'}, + labels: {type: 'string[]'}, + milestone: {type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + title: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues', + }, + createComment: { + method: 'POST', + params: { + body: {required: true, type: 'string'}, + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/comments', + }, + createLabel: { + method: 'POST', + params: { + color: {required: true, type: 'string'}, + description: {type: 'string'}, + name: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/labels', + }, + createMilestone: { + method: 'POST', + params: { + description: {type: 'string'}, + due_on: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + state: {enum: ['open', 'closed'], type: 'string'}, + title: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/milestones', + }, + deleteComment: { + method: 'DELETE', + params: { + comment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/comments/:comment_id', + }, + deleteLabel: { + method: 'DELETE', + params: { + name: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/labels/:name', + }, + deleteMilestone: { + method: 'DELETE', + params: { + milestone_number: {required: true, type: 'integer'}, + number: {alias: 'milestone_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/milestones/:milestone_number', + }, + get: { + method: 'GET', + params: { + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number', + }, + getComment: { + method: 'GET', + params: { + comment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/comments/:comment_id', + }, + getEvent: { + method: 'GET', + params: { + event_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/events/:event_id', + }, + getLabel: { + method: 'GET', + params: { + name: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/labels/:name', + }, + getMilestone: { + method: 'GET', + params: { + milestone_number: {required: true, type: 'integer'}, + number: {alias: 'milestone_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/milestones/:milestone_number', + }, + list: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + filter: {enum: ['assigned', 'created', 'mentioned', 'subscribed', 'all'], type: 'string'}, + labels: {type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + since: {type: 'string'}, + sort: {enum: ['created', 'updated', 'comments'], type: 'string'}, + state: {enum: ['open', 'closed', 'all'], type: 'string'}, + }, + url: '/issues', + }, + listAssignees: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/assignees', + }, + listComments: { + method: 'GET', + params: { + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + since: {type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/comments', + }, + listCommentsForRepo: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + since: {type: 'string'}, + sort: {enum: ['created', 'updated'], type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/comments', + }, + listEvents: { + method: 'GET', + params: { + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/events', + }, + listEventsForRepo: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/events', + }, + listEventsForTimeline: { + headers: {accept: 'application/vnd.github.mockingbird-preview+json'}, + method: 'GET', + params: { + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/timeline', + }, + listForAuthenticatedUser: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + filter: {enum: ['assigned', 'created', 'mentioned', 'subscribed', 'all'], type: 'string'}, + labels: {type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + since: {type: 'string'}, + sort: {enum: ['created', 'updated', 'comments'], type: 'string'}, + state: {enum: ['open', 'closed', 'all'], type: 'string'}, + }, + url: '/user/issues', + }, + listForOrg: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + filter: {enum: ['assigned', 'created', 'mentioned', 'subscribed', 'all'], type: 'string'}, + labels: {type: 'string'}, + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + since: {type: 'string'}, + sort: {enum: ['created', 'updated', 'comments'], type: 'string'}, + state: {enum: ['open', 'closed', 'all'], type: 'string'}, + }, + url: '/orgs/:org/issues', + }, + listForRepo: { + method: 'GET', + params: { + assignee: {type: 'string'}, + creator: {type: 'string'}, + direction: {enum: ['asc', 'desc'], type: 'string'}, + labels: {type: 'string'}, + mentioned: {type: 'string'}, + milestone: {type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + since: {type: 'string'}, + sort: {enum: ['created', 'updated', 'comments'], type: 'string'}, + state: {enum: ['open', 'closed', 'all'], type: 'string'}, + }, + url: '/repos/:owner/:repo/issues', + }, + listLabelsForMilestone: { + method: 'GET', + params: { + milestone_number: {required: true, type: 'integer'}, + number: {alias: 'milestone_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/milestones/:milestone_number/labels', + }, + listLabelsForRepo: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/labels', + }, + listLabelsOnIssue: { + method: 'GET', + params: { + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/labels', + }, + listMilestonesForRepo: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + sort: {enum: ['due_on', 'completeness'], type: 'string'}, + state: {enum: ['open', 'closed', 'all'], type: 'string'}, + }, + url: '/repos/:owner/:repo/milestones', + }, + lock: { + method: 'PUT', + params: { + issue_number: {required: true, type: 'integer'}, + lock_reason: {enum: ['off-topic', 'too heated', 'resolved', 'spam'], type: 'string'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/lock', + }, + removeAssignees: { + method: 'DELETE', + params: { + assignees: {type: 'string[]'}, + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/assignees', + }, + removeLabel: { + method: 'DELETE', + params: { + issue_number: {required: true, type: 'integer'}, + name: {required: true, type: 'string'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/labels/:name', + }, + removeLabels: { + method: 'DELETE', + params: { + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/labels', + }, + replaceLabels: { + method: 'PUT', + params: { + issue_number: {required: true, type: 'integer'}, + labels: {type: 'string[]'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/labels', + }, + unlock: { + method: 'DELETE', + params: { + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/lock', + }, + update: { + method: 'PATCH', + params: { + assignee: {type: 'string'}, + assignees: {type: 'string[]'}, + body: {type: 'string'}, + issue_number: {required: true, type: 'integer'}, + labels: {type: 'string[]'}, + milestone: {allowNull: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + state: {enum: ['open', 'closed'], type: 'string'}, + title: {type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number', + }, + updateComment: { + method: 'PATCH', + params: { + body: {required: true, type: 'string'}, + comment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/comments/:comment_id', + }, + updateLabel: { + method: 'PATCH', + params: { + color: {type: 'string'}, + current_name: {required: true, type: 'string'}, + description: {type: 'string'}, + name: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/labels/:current_name', + }, + updateMilestone: { + method: 'PATCH', + params: { + description: {type: 'string'}, + due_on: {type: 'string'}, + milestone_number: {required: true, type: 'integer'}, + number: {alias: 'milestone_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + state: {enum: ['open', 'closed'], type: 'string'}, + title: {type: 'string'}, + }, + url: '/repos/:owner/:repo/milestones/:milestone_number', + }, + }, + licenses: { + get: { + method: 'GET', + params: {license: {required: true, type: 'string'}}, + url: '/licenses/:license', + }, + getForRepo: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/license', + }, + list: { + deprecated: + 'octokit.licenses.list() has been renamed to octokit.licenses.listCommonlyUsed() (2019-03-05)', + method: 'GET', + params: {}, + url: '/licenses', + }, + listCommonlyUsed: {method: 'GET', params: {}, url: '/licenses'}, + }, + markdown: { + render: { + method: 'POST', + params: { + context: {type: 'string'}, + mode: {enum: ['markdown', 'gfm'], type: 'string'}, + text: {required: true, type: 'string'}, + }, + url: '/markdown', + }, + renderRaw: { + headers: {'content-type': 'text/plain; charset=utf-8'}, + method: 'POST', + params: {data: {mapTo: 'data', required: true, type: 'string'}}, + url: '/markdown/raw', + }, + }, + meta: {get: {method: 'GET', params: {}, url: '/meta'}}, + migrations: { + cancelImport: { + method: 'DELETE', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/import', + }, + deleteArchiveForAuthenticatedUser: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'DELETE', + params: {migration_id: {required: true, type: 'integer'}}, + url: '/user/migrations/:migration_id/archive', + }, + deleteArchiveForOrg: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'DELETE', + params: { + migration_id: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + }, + url: '/orgs/:org/migrations/:migration_id/archive', + }, + downloadArchiveForOrg: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'GET', + params: { + migration_id: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + }, + url: '/orgs/:org/migrations/:migration_id/archive', + }, + getArchiveForAuthenticatedUser: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'GET', + params: {migration_id: {required: true, type: 'integer'}}, + url: '/user/migrations/:migration_id/archive', + }, + getArchiveForOrg: { + deprecated: + 'octokit.migrations.getArchiveForOrg() has been renamed to octokit.migrations.downloadArchiveForOrg() (2020-01-27)', + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'GET', + params: { + migration_id: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + }, + url: '/orgs/:org/migrations/:migration_id/archive', + }, + getCommitAuthors: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + since: {type: 'string'}, + }, + url: '/repos/:owner/:repo/import/authors', + }, + getImportProgress: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/import', + }, + getLargeFiles: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/import/large_files', + }, + getStatusForAuthenticatedUser: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'GET', + params: {migration_id: {required: true, type: 'integer'}}, + url: '/user/migrations/:migration_id', + }, + getStatusForOrg: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'GET', + params: { + migration_id: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + }, + url: '/orgs/:org/migrations/:migration_id', + }, + listForAuthenticatedUser: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/migrations', + }, + listForOrg: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/orgs/:org/migrations', + }, + listReposForOrg: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'GET', + params: { + migration_id: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/orgs/:org/migrations/:migration_id/repositories', + }, + listReposForUser: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'GET', + params: { + migration_id: {required: true, type: 'integer'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/user/:migration_id/repositories', + }, + mapCommitAuthor: { + method: 'PATCH', + params: { + author_id: {required: true, type: 'integer'}, + email: {type: 'string'}, + name: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/import/authors/:author_id', + }, + setLfsPreference: { + method: 'PATCH', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + use_lfs: {enum: ['opt_in', 'opt_out'], required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/import/lfs', + }, + startForAuthenticatedUser: { + method: 'POST', + params: { + exclude_attachments: {type: 'boolean'}, + lock_repositories: {type: 'boolean'}, + repositories: {required: true, type: 'string[]'}, + }, + url: '/user/migrations', + }, + startForOrg: { + method: 'POST', + params: { + exclude_attachments: {type: 'boolean'}, + lock_repositories: {type: 'boolean'}, + org: {required: true, type: 'string'}, + repositories: {required: true, type: 'string[]'}, + }, + url: '/orgs/:org/migrations', + }, + startImport: { + method: 'PUT', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + tfvc_project: {type: 'string'}, + vcs: {enum: ['subversion', 'git', 'mercurial', 'tfvc'], type: 'string'}, + vcs_password: {type: 'string'}, + vcs_url: {required: true, type: 'string'}, + vcs_username: {type: 'string'}, + }, + url: '/repos/:owner/:repo/import', + }, + unlockRepoForAuthenticatedUser: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'DELETE', + params: { + migration_id: {required: true, type: 'integer'}, + repo_name: {required: true, type: 'string'}, + }, + url: '/user/migrations/:migration_id/repos/:repo_name/lock', + }, + unlockRepoForOrg: { + headers: {accept: 'application/vnd.github.wyandotte-preview+json'}, + method: 'DELETE', + params: { + migration_id: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + repo_name: {required: true, type: 'string'}, + }, + url: '/orgs/:org/migrations/:migration_id/repos/:repo_name/lock', + }, + updateImport: { + method: 'PATCH', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + vcs_password: {type: 'string'}, + vcs_username: {type: 'string'}, + }, + url: '/repos/:owner/:repo/import', + }, + }, + oauthAuthorizations: { + checkAuthorization: { + deprecated: + 'octokit.oauthAuthorizations.checkAuthorization() has been renamed to octokit.apps.checkAuthorization() (2019-11-05)', + method: 'GET', + params: { + access_token: {required: true, type: 'string'}, + client_id: {required: true, type: 'string'}, + }, + url: '/applications/:client_id/tokens/:access_token', + }, + createAuthorization: { + deprecated: + 'octokit.oauthAuthorizations.createAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization', + method: 'POST', + params: { + client_id: {type: 'string'}, + client_secret: {type: 'string'}, + fingerprint: {type: 'string'}, + note: {required: true, type: 'string'}, + note_url: {type: 'string'}, + scopes: {type: 'string[]'}, + }, + url: '/authorizations', + }, + deleteAuthorization: { + deprecated: + 'octokit.oauthAuthorizations.deleteAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#delete-an-authorization', + method: 'DELETE', + params: {authorization_id: {required: true, type: 'integer'}}, + url: '/authorizations/:authorization_id', + }, + deleteGrant: { + deprecated: + 'octokit.oauthAuthorizations.deleteGrant() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#delete-a-grant', + method: 'DELETE', + params: {grant_id: {required: true, type: 'integer'}}, + url: '/applications/grants/:grant_id', + }, + getAuthorization: { + deprecated: + 'octokit.oauthAuthorizations.getAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-a-single-authorization', + method: 'GET', + params: {authorization_id: {required: true, type: 'integer'}}, + url: '/authorizations/:authorization_id', + }, + getGrant: { + deprecated: + 'octokit.oauthAuthorizations.getGrant() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-a-single-grant', + method: 'GET', + params: {grant_id: {required: true, type: 'integer'}}, + url: '/applications/grants/:grant_id', + }, + getOrCreateAuthorizationForApp: { + deprecated: + 'octokit.oauthAuthorizations.getOrCreateAuthorizationForApp() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app', + method: 'PUT', + params: { + client_id: {required: true, type: 'string'}, + client_secret: {required: true, type: 'string'}, + fingerprint: {type: 'string'}, + note: {type: 'string'}, + note_url: {type: 'string'}, + scopes: {type: 'string[]'}, + }, + url: '/authorizations/clients/:client_id', + }, + getOrCreateAuthorizationForAppAndFingerprint: { + deprecated: + 'octokit.oauthAuthorizations.getOrCreateAuthorizationForAppAndFingerprint() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint', + method: 'PUT', + params: { + client_id: {required: true, type: 'string'}, + client_secret: {required: true, type: 'string'}, + fingerprint: {required: true, type: 'string'}, + note: {type: 'string'}, + note_url: {type: 'string'}, + scopes: {type: 'string[]'}, + }, + url: '/authorizations/clients/:client_id/:fingerprint', + }, + getOrCreateAuthorizationForAppFingerprint: { + deprecated: + 'octokit.oauthAuthorizations.getOrCreateAuthorizationForAppFingerprint() has been renamed to octokit.oauthAuthorizations.getOrCreateAuthorizationForAppAndFingerprint() (2018-12-27)', + method: 'PUT', + params: { + client_id: {required: true, type: 'string'}, + client_secret: {required: true, type: 'string'}, + fingerprint: {required: true, type: 'string'}, + note: {type: 'string'}, + note_url: {type: 'string'}, + scopes: {type: 'string[]'}, + }, + url: '/authorizations/clients/:client_id/:fingerprint', + }, + listAuthorizations: { + deprecated: + 'octokit.oauthAuthorizations.listAuthorizations() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#list-your-authorizations', + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/authorizations', + }, + listGrants: { + deprecated: + 'octokit.oauthAuthorizations.listGrants() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#list-your-grants', + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/applications/grants', + }, + resetAuthorization: { + deprecated: + 'octokit.oauthAuthorizations.resetAuthorization() has been renamed to octokit.apps.resetAuthorization() (2019-11-05)', + method: 'POST', + params: { + access_token: {required: true, type: 'string'}, + client_id: {required: true, type: 'string'}, + }, + url: '/applications/:client_id/tokens/:access_token', + }, + revokeAuthorizationForApplication: { + deprecated: + 'octokit.oauthAuthorizations.revokeAuthorizationForApplication() has been renamed to octokit.apps.revokeAuthorizationForApplication() (2019-11-05)', + method: 'DELETE', + params: { + access_token: {required: true, type: 'string'}, + client_id: {required: true, type: 'string'}, + }, + url: '/applications/:client_id/tokens/:access_token', + }, + revokeGrantForApplication: { + deprecated: + 'octokit.oauthAuthorizations.revokeGrantForApplication() has been renamed to octokit.apps.revokeGrantForApplication() (2019-11-05)', + method: 'DELETE', + params: { + access_token: {required: true, type: 'string'}, + client_id: {required: true, type: 'string'}, + }, + url: '/applications/:client_id/grants/:access_token', + }, + updateAuthorization: { + deprecated: + 'octokit.oauthAuthorizations.updateAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#update-an-existing-authorization', + method: 'PATCH', + params: { + add_scopes: {type: 'string[]'}, + authorization_id: {required: true, type: 'integer'}, + fingerprint: {type: 'string'}, + note: {type: 'string'}, + note_url: {type: 'string'}, + remove_scopes: {type: 'string[]'}, + scopes: {type: 'string[]'}, + }, + url: '/authorizations/:authorization_id', + }, + }, + orgs: { + addOrUpdateMembership: { + method: 'PUT', + params: { + org: {required: true, type: 'string'}, + role: {enum: ['admin', 'member'], type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/orgs/:org/memberships/:username', + }, + blockUser: { + method: 'PUT', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/blocks/:username', + }, + checkBlockedUser: { + method: 'GET', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/blocks/:username', + }, + checkMembership: { + method: 'GET', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/members/:username', + }, + checkPublicMembership: { + method: 'GET', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/public_members/:username', + }, + concealMembership: { + method: 'DELETE', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/public_members/:username', + }, + convertMemberToOutsideCollaborator: { + method: 'PUT', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/outside_collaborators/:username', + }, + createHook: { + method: 'POST', + params: { + active: {type: 'boolean'}, + config: {required: true, type: 'object'}, + 'config.content_type': {type: 'string'}, + 'config.insecure_ssl': {type: 'string'}, + 'config.secret': {type: 'string'}, + 'config.url': {required: true, type: 'string'}, + events: {type: 'string[]'}, + name: {required: true, type: 'string'}, + org: {required: true, type: 'string'}, + }, + url: '/orgs/:org/hooks', + }, + createInvitation: { + method: 'POST', + params: { + email: {type: 'string'}, + invitee_id: {type: 'integer'}, + org: {required: true, type: 'string'}, + role: {enum: ['admin', 'direct_member', 'billing_manager'], type: 'string'}, + team_ids: {type: 'integer[]'}, + }, + url: '/orgs/:org/invitations', + }, + deleteHook: { + method: 'DELETE', + params: {hook_id: {required: true, type: 'integer'}, org: {required: true, type: 'string'}}, + url: '/orgs/:org/hooks/:hook_id', + }, + get: {method: 'GET', params: {org: {required: true, type: 'string'}}, url: '/orgs/:org'}, + getHook: { + method: 'GET', + params: {hook_id: {required: true, type: 'integer'}, org: {required: true, type: 'string'}}, + url: '/orgs/:org/hooks/:hook_id', + }, + getMembership: { + method: 'GET', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/memberships/:username', + }, + getMembershipForAuthenticatedUser: { + method: 'GET', + params: {org: {required: true, type: 'string'}}, + url: '/user/memberships/orgs/:org', + }, + list: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}, since: {type: 'integer'}}, + url: '/organizations', + }, + listBlockedUsers: { + method: 'GET', + params: {org: {required: true, type: 'string'}}, + url: '/orgs/:org/blocks', + }, + listForAuthenticatedUser: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/orgs', + }, + listForUser: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/orgs', + }, + listHooks: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/orgs/:org/hooks', + }, + listInstallations: { + headers: {accept: 'application/vnd.github.machine-man-preview+json'}, + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/orgs/:org/installations', + }, + listInvitationTeams: { + method: 'GET', + params: { + invitation_id: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/orgs/:org/invitations/:invitation_id/teams', + }, + listMembers: { + method: 'GET', + params: { + filter: {enum: ['2fa_disabled', 'all'], type: 'string'}, + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + role: {enum: ['all', 'admin', 'member'], type: 'string'}, + }, + url: '/orgs/:org/members', + }, + listMemberships: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + state: {enum: ['active', 'pending'], type: 'string'}, + }, + url: '/user/memberships/orgs', + }, + listOutsideCollaborators: { + method: 'GET', + params: { + filter: {enum: ['2fa_disabled', 'all'], type: 'string'}, + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/orgs/:org/outside_collaborators', + }, + listPendingInvitations: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/orgs/:org/invitations', + }, + listPublicMembers: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/orgs/:org/public_members', + }, + pingHook: { + method: 'POST', + params: {hook_id: {required: true, type: 'integer'}, org: {required: true, type: 'string'}}, + url: '/orgs/:org/hooks/:hook_id/pings', + }, + publicizeMembership: { + method: 'PUT', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/public_members/:username', + }, + removeMember: { + method: 'DELETE', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/members/:username', + }, + removeMembership: { + method: 'DELETE', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/memberships/:username', + }, + removeOutsideCollaborator: { + method: 'DELETE', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/outside_collaborators/:username', + }, + unblockUser: { + method: 'DELETE', + params: {org: {required: true, type: 'string'}, username: {required: true, type: 'string'}}, + url: '/orgs/:org/blocks/:username', + }, + update: { + method: 'PATCH', + params: { + billing_email: {type: 'string'}, + company: {type: 'string'}, + default_repository_permission: {enum: ['read', 'write', 'admin', 'none'], type: 'string'}, + description: {type: 'string'}, + email: {type: 'string'}, + has_organization_projects: {type: 'boolean'}, + has_repository_projects: {type: 'boolean'}, + location: {type: 'string'}, + members_allowed_repository_creation_type: { + enum: ['all', 'private', 'none'], + type: 'string', + }, + members_can_create_internal_repositories: {type: 'boolean'}, + members_can_create_private_repositories: {type: 'boolean'}, + members_can_create_public_repositories: {type: 'boolean'}, + members_can_create_repositories: {type: 'boolean'}, + name: {type: 'string'}, + org: {required: true, type: 'string'}, + }, + url: '/orgs/:org', + }, + updateHook: { + method: 'PATCH', + params: { + active: {type: 'boolean'}, + config: {type: 'object'}, + 'config.content_type': {type: 'string'}, + 'config.insecure_ssl': {type: 'string'}, + 'config.secret': {type: 'string'}, + 'config.url': {required: true, type: 'string'}, + events: {type: 'string[]'}, + hook_id: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + }, + url: '/orgs/:org/hooks/:hook_id', + }, + updateMembership: { + method: 'PATCH', + params: { + org: {required: true, type: 'string'}, + state: {enum: ['active'], required: true, type: 'string'}, + }, + url: '/user/memberships/orgs/:org', + }, + }, + projects: { + addCollaborator: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'PUT', + params: { + permission: {enum: ['read', 'write', 'admin'], type: 'string'}, + project_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/projects/:project_id/collaborators/:username', + }, + createCard: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'POST', + params: { + column_id: {required: true, type: 'integer'}, + content_id: {type: 'integer'}, + content_type: {type: 'string'}, + note: {type: 'string'}, + }, + url: '/projects/columns/:column_id/cards', + }, + createColumn: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'POST', + params: {name: {required: true, type: 'string'}, project_id: {required: true, type: 'integer'}}, + url: '/projects/:project_id/columns', + }, + createForAuthenticatedUser: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'POST', + params: {body: {type: 'string'}, name: {required: true, type: 'string'}}, + url: '/user/projects', + }, + createForOrg: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'POST', + params: { + body: {type: 'string'}, + name: {required: true, type: 'string'}, + org: {required: true, type: 'string'}, + }, + url: '/orgs/:org/projects', + }, + createForRepo: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'POST', + params: { + body: {type: 'string'}, + name: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/projects', + }, + delete: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'DELETE', + params: {project_id: {required: true, type: 'integer'}}, + url: '/projects/:project_id', + }, + deleteCard: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'DELETE', + params: {card_id: {required: true, type: 'integer'}}, + url: '/projects/columns/cards/:card_id', + }, + deleteColumn: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'DELETE', + params: {column_id: {required: true, type: 'integer'}}, + url: '/projects/columns/:column_id', + }, + get: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: {project_id: {required: true, type: 'integer'}}, + url: '/projects/:project_id', + }, + getCard: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: {card_id: {required: true, type: 'integer'}}, + url: '/projects/columns/cards/:card_id', + }, + getColumn: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: {column_id: {required: true, type: 'integer'}}, + url: '/projects/columns/:column_id', + }, + listCards: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + archived_state: {enum: ['all', 'archived', 'not_archived'], type: 'string'}, + column_id: {required: true, type: 'integer'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/projects/columns/:column_id/cards', + }, + listCollaborators: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + affiliation: {enum: ['outside', 'direct', 'all'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + project_id: {required: true, type: 'integer'}, + }, + url: '/projects/:project_id/collaborators', + }, + listColumns: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + project_id: {required: true, type: 'integer'}, + }, + url: '/projects/:project_id/columns', + }, + listForOrg: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + state: {enum: ['open', 'closed', 'all'], type: 'string'}, + }, + url: '/orgs/:org/projects', + }, + listForRepo: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + state: {enum: ['open', 'closed', 'all'], type: 'string'}, + }, + url: '/repos/:owner/:repo/projects', + }, + listForUser: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + state: {enum: ['open', 'closed', 'all'], type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/projects', + }, + moveCard: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'POST', + params: { + card_id: {required: true, type: 'integer'}, + column_id: {type: 'integer'}, + position: {required: true, type: 'string', validation: '^(top|bottom|after:\\d+)$'}, + }, + url: '/projects/columns/cards/:card_id/moves', + }, + moveColumn: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'POST', + params: { + column_id: {required: true, type: 'integer'}, + position: {required: true, type: 'string', validation: '^(first|last|after:\\d+)$'}, + }, + url: '/projects/columns/:column_id/moves', + }, + removeCollaborator: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'DELETE', + params: { + project_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/projects/:project_id/collaborators/:username', + }, + reviewUserPermissionLevel: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + project_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/projects/:project_id/collaborators/:username/permission', + }, + update: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'PATCH', + params: { + body: {type: 'string'}, + name: {type: 'string'}, + organization_permission: {type: 'string'}, + private: {type: 'boolean'}, + project_id: {required: true, type: 'integer'}, + state: {enum: ['open', 'closed'], type: 'string'}, + }, + url: '/projects/:project_id', + }, + updateCard: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'PATCH', + params: { + archived: {type: 'boolean'}, + card_id: {required: true, type: 'integer'}, + note: {type: 'string'}, + }, + url: '/projects/columns/cards/:card_id', + }, + updateColumn: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'PATCH', + params: {column_id: {required: true, type: 'integer'}, name: {required: true, type: 'string'}}, + url: '/projects/columns/:column_id', + }, + }, + pulls: { + checkIfMerged: { + method: 'GET', + params: { + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/merge', + }, + create: { + method: 'POST', + params: { + base: {required: true, type: 'string'}, + body: {type: 'string'}, + draft: {type: 'boolean'}, + head: {required: true, type: 'string'}, + maintainer_can_modify: {type: 'boolean'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + title: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls', + }, + createComment: { + method: 'POST', + params: { + body: {required: true, type: 'string'}, + commit_id: {required: true, type: 'string'}, + in_reply_to: { + deprecated: true, + description: + 'The comment ID to reply to. **Note**: This must be the ID of a top-level comment, not a reply to that comment. Replies to replies are not supported.', + type: 'integer', + }, + line: {type: 'integer'}, + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + path: {required: true, type: 'string'}, + position: {type: 'integer'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + side: {enum: ['LEFT', 'RIGHT'], type: 'string'}, + start_line: {type: 'integer'}, + start_side: {enum: ['LEFT', 'RIGHT', 'side'], type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/comments', + }, + createCommentReply: { + deprecated: + 'octokit.pulls.createCommentReply() has been renamed to octokit.pulls.createComment() (2019-09-09)', + method: 'POST', + params: { + body: {required: true, type: 'string'}, + commit_id: {required: true, type: 'string'}, + in_reply_to: { + deprecated: true, + description: + 'The comment ID to reply to. **Note**: This must be the ID of a top-level comment, not a reply to that comment. Replies to replies are not supported.', + type: 'integer', + }, + line: {type: 'integer'}, + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + path: {required: true, type: 'string'}, + position: {type: 'integer'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + side: {enum: ['LEFT', 'RIGHT'], type: 'string'}, + start_line: {type: 'integer'}, + start_side: {enum: ['LEFT', 'RIGHT', 'side'], type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/comments', + }, + createFromIssue: { + deprecated: + 'octokit.pulls.createFromIssue() is deprecated, see https://developer.github.com/v3/pulls/#create-a-pull-request', + method: 'POST', + params: { + base: {required: true, type: 'string'}, + draft: {type: 'boolean'}, + head: {required: true, type: 'string'}, + issue: {required: true, type: 'integer'}, + maintainer_can_modify: {type: 'boolean'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls', + }, + createReview: { + method: 'POST', + params: { + body: {type: 'string'}, + comments: {type: 'object[]'}, + 'comments[].body': {required: true, type: 'string'}, + 'comments[].path': {required: true, type: 'string'}, + 'comments[].position': {required: true, type: 'integer'}, + commit_id: {type: 'string'}, + event: {enum: ['APPROVE', 'REQUEST_CHANGES', 'COMMENT'], type: 'string'}, + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/reviews', + }, + createReviewCommentReply: { + method: 'POST', + params: { + body: {required: true, type: 'string'}, + comment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies', + }, + createReviewRequest: { + method: 'POST', + params: { + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + reviewers: {type: 'string[]'}, + team_reviewers: {type: 'string[]'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/requested_reviewers', + }, + deleteComment: { + method: 'DELETE', + params: { + comment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/comments/:comment_id', + }, + deletePendingReview: { + method: 'DELETE', + params: { + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + review_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id', + }, + deleteReviewRequest: { + method: 'DELETE', + params: { + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + reviewers: {type: 'string[]'}, + team_reviewers: {type: 'string[]'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/requested_reviewers', + }, + dismissReview: { + method: 'PUT', + params: { + message: {required: true, type: 'string'}, + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + review_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/dismissals', + }, + get: { + method: 'GET', + params: { + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number', + }, + getComment: { + method: 'GET', + params: { + comment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/comments/:comment_id', + }, + getCommentsForReview: { + method: 'GET', + params: { + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + review_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/comments', + }, + getReview: { + method: 'GET', + params: { + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + review_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id', + }, + list: { + method: 'GET', + params: { + base: {type: 'string'}, + direction: {enum: ['asc', 'desc'], type: 'string'}, + head: {type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + sort: {enum: ['created', 'updated', 'popularity', 'long-running'], type: 'string'}, + state: {enum: ['open', 'closed', 'all'], type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls', + }, + listComments: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + since: {type: 'string'}, + sort: {enum: ['created', 'updated'], type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/comments', + }, + listCommentsForRepo: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + since: {type: 'string'}, + sort: {enum: ['created', 'updated'], type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/comments', + }, + listCommits: { + method: 'GET', + params: { + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/commits', + }, + listFiles: { + method: 'GET', + params: { + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/files', + }, + listReviewRequests: { + method: 'GET', + params: { + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/requested_reviewers', + }, + listReviews: { + method: 'GET', + params: { + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/reviews', + }, + merge: { + method: 'PUT', + params: { + commit_message: {type: 'string'}, + commit_title: {type: 'string'}, + merge_method: {enum: ['merge', 'squash', 'rebase'], type: 'string'}, + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + sha: {type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/merge', + }, + submitReview: { + method: 'POST', + params: { + body: {type: 'string'}, + event: {enum: ['APPROVE', 'REQUEST_CHANGES', 'COMMENT'], required: true, type: 'string'}, + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + review_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/events', + }, + update: { + method: 'PATCH', + params: { + base: {type: 'string'}, + body: {type: 'string'}, + maintainer_can_modify: {type: 'boolean'}, + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + state: {enum: ['open', 'closed'], type: 'string'}, + title: {type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number', + }, + updateBranch: { + headers: {accept: 'application/vnd.github.lydian-preview+json'}, + method: 'PUT', + params: { + expected_head_sha: {type: 'string'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/update-branch', + }, + updateComment: { + method: 'PATCH', + params: { + body: {required: true, type: 'string'}, + comment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/comments/:comment_id', + }, + updateReview: { + method: 'PUT', + params: { + body: {required: true, type: 'string'}, + number: {alias: 'pull_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + pull_number: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + review_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id', + }, + }, + rateLimit: {get: {method: 'GET', params: {}, url: '/rate_limit'}}, + reactions: { + createForCommitComment: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'POST', + params: { + comment_id: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + required: true, + type: 'string', + }, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/comments/:comment_id/reactions', + }, + createForIssue: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'POST', + params: { + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + required: true, + type: 'string', + }, + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/reactions', + }, + createForIssueComment: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'POST', + params: { + comment_id: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + required: true, + type: 'string', + }, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/comments/:comment_id/reactions', + }, + createForPullRequestReviewComment: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'POST', + params: { + comment_id: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + required: true, + type: 'string', + }, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/comments/:comment_id/reactions', + }, + createForTeamDiscussion: { + deprecated: + 'octokit.reactions.createForTeamDiscussion() has been renamed to octokit.reactions.createForTeamDiscussionLegacy() (2020-01-16)', + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'POST', + params: { + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + required: true, + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/reactions', + }, + createForTeamDiscussionComment: { + deprecated: + 'octokit.reactions.createForTeamDiscussionComment() has been renamed to octokit.reactions.createForTeamDiscussionCommentLegacy() (2020-01-16)', + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'POST', + params: { + comment_number: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + required: true, + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions', + }, + createForTeamDiscussionCommentInOrg: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'POST', + params: { + comment_number: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + required: true, + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions', + }, + createForTeamDiscussionCommentLegacy: { + deprecated: + 'octokit.reactions.createForTeamDiscussionCommentLegacy() is deprecated, see https://developer.github.com/v3/reactions/#create-reaction-for-a-team-discussion-comment-legacy', + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'POST', + params: { + comment_number: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + required: true, + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions', + }, + createForTeamDiscussionInOrg: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'POST', + params: { + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + required: true, + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions', + }, + createForTeamDiscussionLegacy: { + deprecated: + 'octokit.reactions.createForTeamDiscussionLegacy() is deprecated, see https://developer.github.com/v3/reactions/#create-reaction-for-a-team-discussion-legacy', + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'POST', + params: { + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + required: true, + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/reactions', + }, + delete: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'DELETE', + params: {reaction_id: {required: true, type: 'integer'}}, + url: '/reactions/:reaction_id', + }, + listForCommitComment: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'GET', + params: { + comment_id: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + type: 'string', + }, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/comments/:comment_id/reactions', + }, + listForIssue: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'GET', + params: { + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + type: 'string', + }, + issue_number: {required: true, type: 'integer'}, + number: {alias: 'issue_number', deprecated: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/:issue_number/reactions', + }, + listForIssueComment: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'GET', + params: { + comment_id: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + type: 'string', + }, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/issues/comments/:comment_id/reactions', + }, + listForPullRequestReviewComment: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'GET', + params: { + comment_id: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + type: 'string', + }, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pulls/comments/:comment_id/reactions', + }, + listForTeamDiscussion: { + deprecated: + 'octokit.reactions.listForTeamDiscussion() has been renamed to octokit.reactions.listForTeamDiscussionLegacy() (2020-01-16)', + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'GET', + params: { + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/reactions', + }, + listForTeamDiscussionComment: { + deprecated: + 'octokit.reactions.listForTeamDiscussionComment() has been renamed to octokit.reactions.listForTeamDiscussionCommentLegacy() (2020-01-16)', + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'GET', + params: { + comment_number: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions', + }, + listForTeamDiscussionCommentInOrg: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'GET', + params: { + comment_number: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions', + }, + listForTeamDiscussionCommentLegacy: { + deprecated: + 'octokit.reactions.listForTeamDiscussionCommentLegacy() is deprecated, see https://developer.github.com/v3/reactions/#list-reactions-for-a-team-discussion-comment-legacy', + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'GET', + params: { + comment_number: {required: true, type: 'integer'}, + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions', + }, + listForTeamDiscussionInOrg: { + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'GET', + params: { + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions', + }, + listForTeamDiscussionLegacy: { + deprecated: + 'octokit.reactions.listForTeamDiscussionLegacy() is deprecated, see https://developer.github.com/v3/reactions/#list-reactions-for-a-team-discussion-legacy', + headers: {accept: 'application/vnd.github.squirrel-girl-preview+json'}, + method: 'GET', + params: { + content: { + enum: ['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes'], + type: 'string', + }, + discussion_number: {required: true, type: 'integer'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/reactions', + }, + }, + repos: { + acceptInvitation: { + method: 'PATCH', + params: {invitation_id: {required: true, type: 'integer'}}, + url: '/user/repository_invitations/:invitation_id', + }, + addCollaborator: { + method: 'PUT', + params: { + owner: {required: true, type: 'string'}, + permission: {enum: ['pull', 'push', 'admin'], type: 'string'}, + repo: {required: true, type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/collaborators/:username', + }, + addDeployKey: { + method: 'POST', + params: { + key: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + read_only: {type: 'boolean'}, + repo: {required: true, type: 'string'}, + title: {type: 'string'}, + }, + url: '/repos/:owner/:repo/keys', + }, + addProtectedBranchAdminEnforcement: { + method: 'POST', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/enforce_admins', + }, + addProtectedBranchAppRestrictions: { + method: 'POST', + params: { + apps: {mapTo: 'data', required: true, type: 'string[]'}, + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/apps', + }, + addProtectedBranchRequiredSignatures: { + headers: {accept: 'application/vnd.github.zzzax-preview+json'}, + method: 'POST', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_signatures', + }, + addProtectedBranchRequiredStatusChecksContexts: { + method: 'POST', + params: { + branch: {required: true, type: 'string'}, + contexts: {mapTo: 'data', required: true, type: 'string[]'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts', + }, + addProtectedBranchTeamRestrictions: { + method: 'POST', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + teams: {mapTo: 'data', required: true, type: 'string[]'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/teams', + }, + addProtectedBranchUserRestrictions: { + method: 'POST', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + users: {mapTo: 'data', required: true, type: 'string[]'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/users', + }, + checkCollaborator: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/collaborators/:username', + }, + checkVulnerabilityAlerts: { + headers: {accept: 'application/vnd.github.dorian-preview+json'}, + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/vulnerability-alerts', + }, + compareCommits: { + method: 'GET', + params: { + base: {required: true, type: 'string'}, + head: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/compare/:base...:head', + }, + createCommitComment: { + method: 'POST', + params: { + body: {required: true, type: 'string'}, + commit_sha: {required: true, type: 'string'}, + line: {type: 'integer'}, + owner: {required: true, type: 'string'}, + path: {type: 'string'}, + position: {type: 'integer'}, + repo: {required: true, type: 'string'}, + sha: {alias: 'commit_sha', deprecated: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/commits/:commit_sha/comments', + }, + createDeployment: { + method: 'POST', + params: { + auto_merge: {type: 'boolean'}, + description: {type: 'string'}, + environment: {type: 'string'}, + owner: {required: true, type: 'string'}, + payload: {type: 'string'}, + production_environment: {type: 'boolean'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + required_contexts: {type: 'string[]'}, + task: {type: 'string'}, + transient_environment: {type: 'boolean'}, + }, + url: '/repos/:owner/:repo/deployments', + }, + createDeploymentStatus: { + method: 'POST', + params: { + auto_inactive: {type: 'boolean'}, + deployment_id: {required: true, type: 'integer'}, + description: {type: 'string'}, + environment: {enum: ['production', 'staging', 'qa'], type: 'string'}, + environment_url: {type: 'string'}, + log_url: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + state: { + enum: ['error', 'failure', 'inactive', 'in_progress', 'queued', 'pending', 'success'], + required: true, + type: 'string', + }, + target_url: {type: 'string'}, + }, + url: '/repos/:owner/:repo/deployments/:deployment_id/statuses', + }, + createDispatchEvent: { + method: 'POST', + params: { + client_payload: {type: 'object'}, + event_type: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/dispatches', + }, + createFile: { + deprecated: + 'octokit.repos.createFile() has been renamed to octokit.repos.createOrUpdateFile() (2019-06-07)', + method: 'PUT', + params: { + author: {type: 'object'}, + 'author.email': {required: true, type: 'string'}, + 'author.name': {required: true, type: 'string'}, + branch: {type: 'string'}, + committer: {type: 'object'}, + 'committer.email': {required: true, type: 'string'}, + 'committer.name': {required: true, type: 'string'}, + content: {required: true, type: 'string'}, + message: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + path: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + sha: {type: 'string'}, + }, + url: '/repos/:owner/:repo/contents/:path', + }, + createForAuthenticatedUser: { + method: 'POST', + params: { + allow_merge_commit: {type: 'boolean'}, + allow_rebase_merge: {type: 'boolean'}, + allow_squash_merge: {type: 'boolean'}, + auto_init: {type: 'boolean'}, + delete_branch_on_merge: {type: 'boolean'}, + description: {type: 'string'}, + gitignore_template: {type: 'string'}, + has_issues: {type: 'boolean'}, + has_projects: {type: 'boolean'}, + has_wiki: {type: 'boolean'}, + homepage: {type: 'string'}, + is_template: {type: 'boolean'}, + license_template: {type: 'string'}, + name: {required: true, type: 'string'}, + private: {type: 'boolean'}, + team_id: {type: 'integer'}, + visibility: {enum: ['public', 'private', 'visibility', 'internal'], type: 'string'}, + }, + url: '/user/repos', + }, + createFork: { + method: 'POST', + params: { + organization: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/forks', + }, + createHook: { + method: 'POST', + params: { + active: {type: 'boolean'}, + config: {required: true, type: 'object'}, + 'config.content_type': {type: 'string'}, + 'config.insecure_ssl': {type: 'string'}, + 'config.secret': {type: 'string'}, + 'config.url': {required: true, type: 'string'}, + events: {type: 'string[]'}, + name: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/hooks', + }, + createInOrg: { + method: 'POST', + params: { + allow_merge_commit: {type: 'boolean'}, + allow_rebase_merge: {type: 'boolean'}, + allow_squash_merge: {type: 'boolean'}, + auto_init: {type: 'boolean'}, + delete_branch_on_merge: {type: 'boolean'}, + description: {type: 'string'}, + gitignore_template: {type: 'string'}, + has_issues: {type: 'boolean'}, + has_projects: {type: 'boolean'}, + has_wiki: {type: 'boolean'}, + homepage: {type: 'string'}, + is_template: {type: 'boolean'}, + license_template: {type: 'string'}, + name: {required: true, type: 'string'}, + org: {required: true, type: 'string'}, + private: {type: 'boolean'}, + team_id: {type: 'integer'}, + visibility: {enum: ['public', 'private', 'visibility', 'internal'], type: 'string'}, + }, + url: '/orgs/:org/repos', + }, + createOrUpdateFile: { + method: 'PUT', + params: { + author: {type: 'object'}, + 'author.email': {required: true, type: 'string'}, + 'author.name': {required: true, type: 'string'}, + branch: {type: 'string'}, + committer: {type: 'object'}, + 'committer.email': {required: true, type: 'string'}, + 'committer.name': {required: true, type: 'string'}, + content: {required: true, type: 'string'}, + message: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + path: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + sha: {type: 'string'}, + }, + url: '/repos/:owner/:repo/contents/:path', + }, + createRelease: { + method: 'POST', + params: { + body: {type: 'string'}, + draft: {type: 'boolean'}, + name: {type: 'string'}, + owner: {required: true, type: 'string'}, + prerelease: {type: 'boolean'}, + repo: {required: true, type: 'string'}, + tag_name: {required: true, type: 'string'}, + target_commitish: {type: 'string'}, + }, + url: '/repos/:owner/:repo/releases', + }, + createStatus: { + method: 'POST', + params: { + context: {type: 'string'}, + description: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + sha: {required: true, type: 'string'}, + state: {enum: ['error', 'failure', 'pending', 'success'], required: true, type: 'string'}, + target_url: {type: 'string'}, + }, + url: '/repos/:owner/:repo/statuses/:sha', + }, + createUsingTemplate: { + headers: {accept: 'application/vnd.github.baptiste-preview+json'}, + method: 'POST', + params: { + description: {type: 'string'}, + name: {required: true, type: 'string'}, + owner: {type: 'string'}, + private: {type: 'boolean'}, + template_owner: {required: true, type: 'string'}, + template_repo: {required: true, type: 'string'}, + }, + url: '/repos/:template_owner/:template_repo/generate', + }, + declineInvitation: { + method: 'DELETE', + params: {invitation_id: {required: true, type: 'integer'}}, + url: '/user/repository_invitations/:invitation_id', + }, + delete: { + method: 'DELETE', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo', + }, + deleteCommitComment: { + method: 'DELETE', + params: { + comment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/comments/:comment_id', + }, + deleteDownload: { + method: 'DELETE', + params: { + download_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/downloads/:download_id', + }, + deleteFile: { + method: 'DELETE', + params: { + author: {type: 'object'}, + 'author.email': {type: 'string'}, + 'author.name': {type: 'string'}, + branch: {type: 'string'}, + committer: {type: 'object'}, + 'committer.email': {type: 'string'}, + 'committer.name': {type: 'string'}, + message: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + path: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + sha: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/contents/:path', + }, + deleteHook: { + method: 'DELETE', + params: { + hook_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/hooks/:hook_id', + }, + deleteInvitation: { + method: 'DELETE', + params: { + invitation_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/invitations/:invitation_id', + }, + deleteRelease: { + method: 'DELETE', + params: { + owner: {required: true, type: 'string'}, + release_id: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/releases/:release_id', + }, + deleteReleaseAsset: { + method: 'DELETE', + params: { + asset_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/releases/assets/:asset_id', + }, + disableAutomatedSecurityFixes: { + headers: {accept: 'application/vnd.github.london-preview+json'}, + method: 'DELETE', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/automated-security-fixes', + }, + disablePagesSite: { + headers: {accept: 'application/vnd.github.switcheroo-preview+json'}, + method: 'DELETE', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/pages', + }, + disableVulnerabilityAlerts: { + headers: {accept: 'application/vnd.github.dorian-preview+json'}, + method: 'DELETE', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/vulnerability-alerts', + }, + enableAutomatedSecurityFixes: { + headers: {accept: 'application/vnd.github.london-preview+json'}, + method: 'PUT', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/automated-security-fixes', + }, + enablePagesSite: { + headers: {accept: 'application/vnd.github.switcheroo-preview+json'}, + method: 'POST', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + source: {type: 'object'}, + 'source.branch': {enum: ['master', 'gh-pages'], type: 'string'}, + 'source.path': {type: 'string'}, + }, + url: '/repos/:owner/:repo/pages', + }, + enableVulnerabilityAlerts: { + headers: {accept: 'application/vnd.github.dorian-preview+json'}, + method: 'PUT', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/vulnerability-alerts', + }, + get: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo', + }, + getAppsWithAccessToProtectedBranch: { + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/apps', + }, + getArchiveLink: { + method: 'GET', + params: { + archive_format: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/:archive_format/:ref', + }, + getBranch: { + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch', + }, + getBranchProtection: { + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection', + }, + getClones: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + per: {enum: ['day', 'week'], type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/traffic/clones', + }, + getCodeFrequencyStats: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/stats/code_frequency', + }, + getCollaboratorPermissionLevel: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/collaborators/:username/permission', + }, + getCombinedStatusForRef: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/commits/:ref/status', + }, + getCommit: { + method: 'GET', + params: { + commit_sha: {alias: 'ref', deprecated: true, type: 'string'}, + owner: {required: true, type: 'string'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + sha: {alias: 'ref', deprecated: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/commits/:ref', + }, + getCommitActivityStats: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/stats/commit_activity', + }, + getCommitComment: { + method: 'GET', + params: { + comment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/comments/:comment_id', + }, + getCommitRefSha: { + deprecated: + 'octokit.repos.getCommitRefSha() is deprecated, see https://developer.github.com/v3/repos/commits/#get-a-single-commit', + headers: {accept: 'application/vnd.github.v3.sha'}, + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/commits/:ref', + }, + getContents: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + path: {required: true, type: 'string'}, + ref: {type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/contents/:path', + }, + getContributorsStats: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/stats/contributors', + }, + getDeployKey: { + method: 'GET', + params: { + key_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/keys/:key_id', + }, + getDeployment: { + method: 'GET', + params: { + deployment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/deployments/:deployment_id', + }, + getDeploymentStatus: { + method: 'GET', + params: { + deployment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + status_id: {required: true, type: 'integer'}, + }, + url: '/repos/:owner/:repo/deployments/:deployment_id/statuses/:status_id', + }, + getDownload: { + method: 'GET', + params: { + download_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/downloads/:download_id', + }, + getHook: { + method: 'GET', + params: { + hook_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/hooks/:hook_id', + }, + getLatestPagesBuild: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/pages/builds/latest', + }, + getLatestRelease: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/releases/latest', + }, + getPages: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/pages', + }, + getPagesBuild: { + method: 'GET', + params: { + build_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pages/builds/:build_id', + }, + getParticipationStats: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/stats/participation', + }, + getProtectedBranchAdminEnforcement: { + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/enforce_admins', + }, + getProtectedBranchPullRequestReviewEnforcement: { + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews', + }, + getProtectedBranchRequiredSignatures: { + headers: {accept: 'application/vnd.github.zzzax-preview+json'}, + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_signatures', + }, + getProtectedBranchRequiredStatusChecks: { + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_status_checks', + }, + getProtectedBranchRestrictions: { + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions', + }, + getPunchCardStats: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/stats/punch_card', + }, + getReadme: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + ref: {type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/readme', + }, + getRelease: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + release_id: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/releases/:release_id', + }, + getReleaseAsset: { + method: 'GET', + params: { + asset_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/releases/assets/:asset_id', + }, + getReleaseByTag: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + tag: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/releases/tags/:tag', + }, + getTeamsWithAccessToProtectedBranch: { + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/teams', + }, + getTopPaths: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/traffic/popular/paths', + }, + getTopReferrers: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/traffic/popular/referrers', + }, + getUsersWithAccessToProtectedBranch: { + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/users', + }, + getViews: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + per: {enum: ['day', 'week'], type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/traffic/views', + }, + list: { + method: 'GET', + params: { + affiliation: {type: 'string'}, + direction: {enum: ['asc', 'desc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + sort: {enum: ['created', 'updated', 'pushed', 'full_name'], type: 'string'}, + type: {enum: ['all', 'owner', 'public', 'private', 'member'], type: 'string'}, + visibility: {enum: ['all', 'public', 'private'], type: 'string'}, + }, + url: '/user/repos', + }, + listAppsWithAccessToProtectedBranch: { + deprecated: + 'octokit.repos.listAppsWithAccessToProtectedBranch() has been renamed to octokit.repos.getAppsWithAccessToProtectedBranch() (2019-09-13)', + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/apps', + }, + listAssetsForRelease: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + release_id: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/releases/:release_id/assets', + }, + listBranches: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + protected: {type: 'boolean'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches', + }, + listBranchesForHeadCommit: { + headers: {accept: 'application/vnd.github.groot-preview+json'}, + method: 'GET', + params: { + commit_sha: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/commits/:commit_sha/branches-where-head', + }, + listCollaborators: { + method: 'GET', + params: { + affiliation: {enum: ['outside', 'direct', 'all'], type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/collaborators', + }, + listCommentsForCommit: { + method: 'GET', + params: { + commit_sha: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + ref: {alias: 'commit_sha', deprecated: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/commits/:commit_sha/comments', + }, + listCommitComments: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/comments', + }, + listCommits: { + method: 'GET', + params: { + author: {type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + path: {type: 'string'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + sha: {type: 'string'}, + since: {type: 'string'}, + until: {type: 'string'}, + }, + url: '/repos/:owner/:repo/commits', + }, + listContributors: { + method: 'GET', + params: { + anon: {type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/contributors', + }, + listDeployKeys: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/keys', + }, + listDeploymentStatuses: { + method: 'GET', + params: { + deployment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/deployments/:deployment_id/statuses', + }, + listDeployments: { + method: 'GET', + params: { + environment: {type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + ref: {type: 'string'}, + repo: {required: true, type: 'string'}, + sha: {type: 'string'}, + task: {type: 'string'}, + }, + url: '/repos/:owner/:repo/deployments', + }, + listDownloads: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/downloads', + }, + listForOrg: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + sort: {enum: ['created', 'updated', 'pushed', 'full_name'], type: 'string'}, + type: { + enum: ['all', 'public', 'private', 'forks', 'sources', 'member', 'internal'], + type: 'string', + }, + }, + url: '/orgs/:org/repos', + }, + listForUser: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + sort: {enum: ['created', 'updated', 'pushed', 'full_name'], type: 'string'}, + type: {enum: ['all', 'owner', 'member'], type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/repos', + }, + listForks: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + sort: {enum: ['newest', 'oldest', 'stargazers'], type: 'string'}, + }, + url: '/repos/:owner/:repo/forks', + }, + listHooks: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/hooks', + }, + listInvitations: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/invitations', + }, + listInvitationsForAuthenticatedUser: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/repository_invitations', + }, + listLanguages: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/languages', + }, + listPagesBuilds: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/pages/builds', + }, + listProtectedBranchRequiredStatusChecksContexts: { + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts', + }, + listProtectedBranchTeamRestrictions: { + deprecated: + 'octokit.repos.listProtectedBranchTeamRestrictions() has been renamed to octokit.repos.getTeamsWithAccessToProtectedBranch() (2019-09-09)', + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/teams', + }, + listProtectedBranchUserRestrictions: { + deprecated: + 'octokit.repos.listProtectedBranchUserRestrictions() has been renamed to octokit.repos.getUsersWithAccessToProtectedBranch() (2019-09-09)', + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/users', + }, + listPublic: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}, since: {type: 'integer'}}, + url: '/repositories', + }, + listPullRequestsAssociatedWithCommit: { + headers: {accept: 'application/vnd.github.groot-preview+json'}, + method: 'GET', + params: { + commit_sha: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/commits/:commit_sha/pulls', + }, + listReleases: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/releases', + }, + listStatusesForRef: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + ref: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/commits/:ref/statuses', + }, + listTags: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/tags', + }, + listTeams: { + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/teams', + }, + listTeamsWithAccessToProtectedBranch: { + deprecated: + 'octokit.repos.listTeamsWithAccessToProtectedBranch() has been renamed to octokit.repos.getTeamsWithAccessToProtectedBranch() (2019-09-13)', + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/teams', + }, + listTopics: { + headers: {accept: 'application/vnd.github.mercy-preview+json'}, + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/topics', + }, + listUsersWithAccessToProtectedBranch: { + deprecated: + 'octokit.repos.listUsersWithAccessToProtectedBranch() has been renamed to octokit.repos.getUsersWithAccessToProtectedBranch() (2019-09-13)', + method: 'GET', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/users', + }, + merge: { + method: 'POST', + params: { + base: {required: true, type: 'string'}, + commit_message: {type: 'string'}, + head: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/merges', + }, + pingHook: { + method: 'POST', + params: { + hook_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/hooks/:hook_id/pings', + }, + removeBranchProtection: { + method: 'DELETE', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection', + }, + removeCollaborator: { + method: 'DELETE', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/collaborators/:username', + }, + removeDeployKey: { + method: 'DELETE', + params: { + key_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/keys/:key_id', + }, + removeProtectedBranchAdminEnforcement: { + method: 'DELETE', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/enforce_admins', + }, + removeProtectedBranchAppRestrictions: { + method: 'DELETE', + params: { + apps: {mapTo: 'data', required: true, type: 'string[]'}, + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/apps', + }, + removeProtectedBranchPullRequestReviewEnforcement: { + method: 'DELETE', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews', + }, + removeProtectedBranchRequiredSignatures: { + headers: {accept: 'application/vnd.github.zzzax-preview+json'}, + method: 'DELETE', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_signatures', + }, + removeProtectedBranchRequiredStatusChecks: { + method: 'DELETE', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_status_checks', + }, + removeProtectedBranchRequiredStatusChecksContexts: { + method: 'DELETE', + params: { + branch: {required: true, type: 'string'}, + contexts: {mapTo: 'data', required: true, type: 'string[]'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts', + }, + removeProtectedBranchRestrictions: { + method: 'DELETE', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions', + }, + removeProtectedBranchTeamRestrictions: { + method: 'DELETE', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + teams: {mapTo: 'data', required: true, type: 'string[]'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/teams', + }, + removeProtectedBranchUserRestrictions: { + method: 'DELETE', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + users: {mapTo: 'data', required: true, type: 'string[]'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/users', + }, + replaceProtectedBranchAppRestrictions: { + method: 'PUT', + params: { + apps: {mapTo: 'data', required: true, type: 'string[]'}, + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/apps', + }, + replaceProtectedBranchRequiredStatusChecksContexts: { + method: 'PUT', + params: { + branch: {required: true, type: 'string'}, + contexts: {mapTo: 'data', required: true, type: 'string[]'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts', + }, + replaceProtectedBranchTeamRestrictions: { + method: 'PUT', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + teams: {mapTo: 'data', required: true, type: 'string[]'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/teams', + }, + replaceProtectedBranchUserRestrictions: { + method: 'PUT', + params: { + branch: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + users: {mapTo: 'data', required: true, type: 'string[]'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/restrictions/users', + }, + replaceTopics: { + headers: {accept: 'application/vnd.github.mercy-preview+json'}, + method: 'PUT', + params: { + names: {required: true, type: 'string[]'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/topics', + }, + requestPageBuild: { + method: 'POST', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/pages/builds', + }, + retrieveCommunityProfileMetrics: { + method: 'GET', + params: {owner: {required: true, type: 'string'}, repo: {required: true, type: 'string'}}, + url: '/repos/:owner/:repo/community/profile', + }, + testPushHook: { + method: 'POST', + params: { + hook_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/hooks/:hook_id/tests', + }, + transfer: { + method: 'POST', + params: { + new_owner: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + team_ids: {type: 'integer[]'}, + }, + url: '/repos/:owner/:repo/transfer', + }, + update: { + method: 'PATCH', + params: { + allow_merge_commit: {type: 'boolean'}, + allow_rebase_merge: {type: 'boolean'}, + allow_squash_merge: {type: 'boolean'}, + archived: {type: 'boolean'}, + default_branch: {type: 'string'}, + delete_branch_on_merge: {type: 'boolean'}, + description: {type: 'string'}, + has_issues: {type: 'boolean'}, + has_projects: {type: 'boolean'}, + has_wiki: {type: 'boolean'}, + homepage: {type: 'string'}, + is_template: {type: 'boolean'}, + name: {type: 'string'}, + owner: {required: true, type: 'string'}, + private: {type: 'boolean'}, + repo: {required: true, type: 'string'}, + visibility: {enum: ['public', 'private', 'visibility', 'internal'], type: 'string'}, + }, + url: '/repos/:owner/:repo', + }, + updateBranchProtection: { + method: 'PUT', + params: { + allow_deletions: {type: 'boolean'}, + allow_force_pushes: {allowNull: true, type: 'boolean'}, + branch: {required: true, type: 'string'}, + enforce_admins: {allowNull: true, required: true, type: 'boolean'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + required_linear_history: {type: 'boolean'}, + required_pull_request_reviews: {allowNull: true, required: true, type: 'object'}, + 'required_pull_request_reviews.dismiss_stale_reviews': {type: 'boolean'}, + 'required_pull_request_reviews.dismissal_restrictions': {type: 'object'}, + 'required_pull_request_reviews.dismissal_restrictions.teams': {type: 'string[]'}, + 'required_pull_request_reviews.dismissal_restrictions.users': {type: 'string[]'}, + 'required_pull_request_reviews.require_code_owner_reviews': {type: 'boolean'}, + 'required_pull_request_reviews.required_approving_review_count': {type: 'integer'}, + required_status_checks: {allowNull: true, required: true, type: 'object'}, + 'required_status_checks.contexts': {required: true, type: 'string[]'}, + 'required_status_checks.strict': {required: true, type: 'boolean'}, + restrictions: {allowNull: true, required: true, type: 'object'}, + 'restrictions.apps': {type: 'string[]'}, + 'restrictions.teams': {required: true, type: 'string[]'}, + 'restrictions.users': {required: true, type: 'string[]'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection', + }, + updateCommitComment: { + method: 'PATCH', + params: { + body: {required: true, type: 'string'}, + comment_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/comments/:comment_id', + }, + updateFile: { + deprecated: + 'octokit.repos.updateFile() has been renamed to octokit.repos.createOrUpdateFile() (2019-06-07)', + method: 'PUT', + params: { + author: {type: 'object'}, + 'author.email': {required: true, type: 'string'}, + 'author.name': {required: true, type: 'string'}, + branch: {type: 'string'}, + committer: {type: 'object'}, + 'committer.email': {required: true, type: 'string'}, + 'committer.name': {required: true, type: 'string'}, + content: {required: true, type: 'string'}, + message: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + path: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + sha: {type: 'string'}, + }, + url: '/repos/:owner/:repo/contents/:path', + }, + updateHook: { + method: 'PATCH', + params: { + active: {type: 'boolean'}, + add_events: {type: 'string[]'}, + config: {type: 'object'}, + 'config.content_type': {type: 'string'}, + 'config.insecure_ssl': {type: 'string'}, + 'config.secret': {type: 'string'}, + 'config.url': {required: true, type: 'string'}, + events: {type: 'string[]'}, + hook_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + remove_events: {type: 'string[]'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/hooks/:hook_id', + }, + updateInformationAboutPagesSite: { + method: 'PUT', + params: { + cname: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + source: {enum: ['"gh-pages"', '"master"', '"master /docs"'], type: 'string'}, + }, + url: '/repos/:owner/:repo/pages', + }, + updateInvitation: { + method: 'PATCH', + params: { + invitation_id: {required: true, type: 'integer'}, + owner: {required: true, type: 'string'}, + permissions: {enum: ['read', 'write', 'admin'], type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/invitations/:invitation_id', + }, + updateProtectedBranchPullRequestReviewEnforcement: { + method: 'PATCH', + params: { + branch: {required: true, type: 'string'}, + dismiss_stale_reviews: {type: 'boolean'}, + dismissal_restrictions: {type: 'object'}, + 'dismissal_restrictions.teams': {type: 'string[]'}, + 'dismissal_restrictions.users': {type: 'string[]'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + require_code_owner_reviews: {type: 'boolean'}, + required_approving_review_count: {type: 'integer'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews', + }, + updateProtectedBranchRequiredStatusChecks: { + method: 'PATCH', + params: { + branch: {required: true, type: 'string'}, + contexts: {type: 'string[]'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + strict: {type: 'boolean'}, + }, + url: '/repos/:owner/:repo/branches/:branch/protection/required_status_checks', + }, + updateRelease: { + method: 'PATCH', + params: { + body: {type: 'string'}, + draft: {type: 'boolean'}, + name: {type: 'string'}, + owner: {required: true, type: 'string'}, + prerelease: {type: 'boolean'}, + release_id: {required: true, type: 'integer'}, + repo: {required: true, type: 'string'}, + tag_name: {type: 'string'}, + target_commitish: {type: 'string'}, + }, + url: '/repos/:owner/:repo/releases/:release_id', + }, + updateReleaseAsset: { + method: 'PATCH', + params: { + asset_id: {required: true, type: 'integer'}, + label: {type: 'string'}, + name: {type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + }, + url: '/repos/:owner/:repo/releases/assets/:asset_id', + }, + uploadReleaseAsset: { + method: 'POST', + params: { + data: {mapTo: 'data', required: true, type: 'string | object'}, + file: {alias: 'data', deprecated: true, type: 'string | object'}, + headers: {required: true, type: 'object'}, + 'headers.content-length': {required: true, type: 'integer'}, + 'headers.content-type': {required: true, type: 'string'}, + label: {type: 'string'}, + name: {required: true, type: 'string'}, + url: {required: true, type: 'string'}, + }, + url: ':url', + }, + }, + search: { + code: { + method: 'GET', + params: { + order: {enum: ['desc', 'asc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + q: {required: true, type: 'string'}, + sort: {enum: ['indexed'], type: 'string'}, + }, + url: '/search/code', + }, + commits: { + headers: {accept: 'application/vnd.github.cloak-preview+json'}, + method: 'GET', + params: { + order: {enum: ['desc', 'asc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + q: {required: true, type: 'string'}, + sort: {enum: ['author-date', 'committer-date'], type: 'string'}, + }, + url: '/search/commits', + }, + issues: { + deprecated: + 'octokit.search.issues() has been renamed to octokit.search.issuesAndPullRequests() (2018-12-27)', + method: 'GET', + params: { + order: {enum: ['desc', 'asc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + q: {required: true, type: 'string'}, + sort: { + enum: [ + 'comments', + 'reactions', + 'reactions-+1', + 'reactions--1', + 'reactions-smile', + 'reactions-thinking_face', + 'reactions-heart', + 'reactions-tada', + 'interactions', + 'created', + 'updated', + ], + type: 'string', + }, + }, + url: '/search/issues', + }, + issuesAndPullRequests: { + method: 'GET', + params: { + order: {enum: ['desc', 'asc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + q: {required: true, type: 'string'}, + sort: { + enum: [ + 'comments', + 'reactions', + 'reactions-+1', + 'reactions--1', + 'reactions-smile', + 'reactions-thinking_face', + 'reactions-heart', + 'reactions-tada', + 'interactions', + 'created', + 'updated', + ], + type: 'string', + }, + }, + url: '/search/issues', + }, + labels: { + method: 'GET', + params: { + order: {enum: ['desc', 'asc'], type: 'string'}, + q: {required: true, type: 'string'}, + repository_id: {required: true, type: 'integer'}, + sort: {enum: ['created', 'updated'], type: 'string'}, + }, + url: '/search/labels', + }, + repos: { + method: 'GET', + params: { + order: {enum: ['desc', 'asc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + q: {required: true, type: 'string'}, + sort: {enum: ['stars', 'forks', 'help-wanted-issues', 'updated'], type: 'string'}, + }, + url: '/search/repositories', + }, + topics: {method: 'GET', params: {q: {required: true, type: 'string'}}, url: '/search/topics'}, + users: { + method: 'GET', + params: { + order: {enum: ['desc', 'asc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + q: {required: true, type: 'string'}, + sort: {enum: ['followers', 'repositories', 'joined'], type: 'string'}, + }, + url: '/search/users', + }, + }, + teams: { + addMember: { + deprecated: + 'octokit.teams.addMember() has been renamed to octokit.teams.addMemberLegacy() (2020-01-16)', + method: 'PUT', + params: { + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/members/:username', + }, + addMemberLegacy: { + deprecated: + 'octokit.teams.addMemberLegacy() is deprecated, see https://developer.github.com/v3/teams/members/#add-team-member-legacy', + method: 'PUT', + params: { + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/members/:username', + }, + addOrUpdateMembership: { + deprecated: + 'octokit.teams.addOrUpdateMembership() has been renamed to octokit.teams.addOrUpdateMembershipLegacy() (2020-01-16)', + method: 'PUT', + params: { + role: {enum: ['member', 'maintainer'], type: 'string'}, + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/memberships/:username', + }, + addOrUpdateMembershipInOrg: { + method: 'PUT', + params: { + org: {required: true, type: 'string'}, + role: {enum: ['member', 'maintainer'], type: 'string'}, + team_slug: {required: true, type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/memberships/:username', + }, + addOrUpdateMembershipLegacy: { + deprecated: + 'octokit.teams.addOrUpdateMembershipLegacy() is deprecated, see https://developer.github.com/v3/teams/members/#add-or-update-team-membership-legacy', + method: 'PUT', + params: { + role: {enum: ['member', 'maintainer'], type: 'string'}, + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/memberships/:username', + }, + addOrUpdateProject: { + deprecated: + 'octokit.teams.addOrUpdateProject() has been renamed to octokit.teams.addOrUpdateProjectLegacy() (2020-01-16)', + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'PUT', + params: { + permission: {enum: ['read', 'write', 'admin'], type: 'string'}, + project_id: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/projects/:project_id', + }, + addOrUpdateProjectInOrg: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'PUT', + params: { + org: {required: true, type: 'string'}, + permission: {enum: ['read', 'write', 'admin'], type: 'string'}, + project_id: {required: true, type: 'integer'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/projects/:project_id', + }, + addOrUpdateProjectLegacy: { + deprecated: + 'octokit.teams.addOrUpdateProjectLegacy() is deprecated, see https://developer.github.com/v3/teams/#add-or-update-team-project-legacy', + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'PUT', + params: { + permission: {enum: ['read', 'write', 'admin'], type: 'string'}, + project_id: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/projects/:project_id', + }, + addOrUpdateRepo: { + deprecated: + 'octokit.teams.addOrUpdateRepo() has been renamed to octokit.teams.addOrUpdateRepoLegacy() (2020-01-16)', + method: 'PUT', + params: { + owner: {required: true, type: 'string'}, + permission: {enum: ['pull', 'push', 'admin'], type: 'string'}, + repo: {required: true, type: 'string'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/repos/:owner/:repo', + }, + addOrUpdateRepoInOrg: { + method: 'PUT', + params: { + org: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + permission: {enum: ['pull', 'push', 'admin'], type: 'string'}, + repo: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/repos/:owner/:repo', + }, + addOrUpdateRepoLegacy: { + deprecated: + 'octokit.teams.addOrUpdateRepoLegacy() is deprecated, see https://developer.github.com/v3/teams/#add-or-update-team-repository-legacy', + method: 'PUT', + params: { + owner: {required: true, type: 'string'}, + permission: {enum: ['pull', 'push', 'admin'], type: 'string'}, + repo: {required: true, type: 'string'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/repos/:owner/:repo', + }, + checkManagesRepo: { + deprecated: + 'octokit.teams.checkManagesRepo() has been renamed to octokit.teams.checkManagesRepoLegacy() (2020-01-16)', + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/repos/:owner/:repo', + }, + checkManagesRepoInOrg: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/repos/:owner/:repo', + }, + checkManagesRepoLegacy: { + deprecated: + 'octokit.teams.checkManagesRepoLegacy() is deprecated, see https://developer.github.com/v3/teams/#check-if-a-team-manages-a-repository-legacy', + method: 'GET', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/repos/:owner/:repo', + }, + create: { + method: 'POST', + params: { + description: {type: 'string'}, + maintainers: {type: 'string[]'}, + name: {required: true, type: 'string'}, + org: {required: true, type: 'string'}, + parent_team_id: {type: 'integer'}, + permission: {enum: ['pull', 'push', 'admin'], type: 'string'}, + privacy: {enum: ['secret', 'closed'], type: 'string'}, + repo_names: {type: 'string[]'}, + }, + url: '/orgs/:org/teams', + }, + createDiscussion: { + deprecated: + 'octokit.teams.createDiscussion() has been renamed to octokit.teams.createDiscussionLegacy() (2020-01-16)', + method: 'POST', + params: { + body: {required: true, type: 'string'}, + private: {type: 'boolean'}, + team_id: {required: true, type: 'integer'}, + title: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/discussions', + }, + createDiscussionComment: { + deprecated: + 'octokit.teams.createDiscussionComment() has been renamed to octokit.teams.createDiscussionCommentLegacy() (2020-01-16)', + method: 'POST', + params: { + body: {required: true, type: 'string'}, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments', + }, + createDiscussionCommentInOrg: { + method: 'POST', + params: { + body: {required: true, type: 'string'}, + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments', + }, + createDiscussionCommentLegacy: { + deprecated: + 'octokit.teams.createDiscussionCommentLegacy() is deprecated, see https://developer.github.com/v3/teams/discussion_comments/#create-a-comment-legacy', + method: 'POST', + params: { + body: {required: true, type: 'string'}, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments', + }, + createDiscussionInOrg: { + method: 'POST', + params: { + body: {required: true, type: 'string'}, + org: {required: true, type: 'string'}, + private: {type: 'boolean'}, + team_slug: {required: true, type: 'string'}, + title: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions', + }, + createDiscussionLegacy: { + deprecated: + 'octokit.teams.createDiscussionLegacy() is deprecated, see https://developer.github.com/v3/teams/discussions/#create-a-discussion-legacy', + method: 'POST', + params: { + body: {required: true, type: 'string'}, + private: {type: 'boolean'}, + team_id: {required: true, type: 'integer'}, + title: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/discussions', + }, + delete: { + deprecated: + 'octokit.teams.delete() has been renamed to octokit.teams.deleteLegacy() (2020-01-16)', + method: 'DELETE', + params: {team_id: {required: true, type: 'integer'}}, + url: '/teams/:team_id', + }, + deleteDiscussion: { + deprecated: + 'octokit.teams.deleteDiscussion() has been renamed to octokit.teams.deleteDiscussionLegacy() (2020-01-16)', + method: 'DELETE', + params: { + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number', + }, + deleteDiscussionComment: { + deprecated: + 'octokit.teams.deleteDiscussionComment() has been renamed to octokit.teams.deleteDiscussionCommentLegacy() (2020-01-16)', + method: 'DELETE', + params: { + comment_number: {required: true, type: 'integer'}, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments/:comment_number', + }, + deleteDiscussionCommentInOrg: { + method: 'DELETE', + params: { + comment_number: {required: true, type: 'integer'}, + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number', + }, + deleteDiscussionCommentLegacy: { + deprecated: + 'octokit.teams.deleteDiscussionCommentLegacy() is deprecated, see https://developer.github.com/v3/teams/discussion_comments/#delete-a-comment-legacy', + method: 'DELETE', + params: { + comment_number: {required: true, type: 'integer'}, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments/:comment_number', + }, + deleteDiscussionInOrg: { + method: 'DELETE', + params: { + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number', + }, + deleteDiscussionLegacy: { + deprecated: + 'octokit.teams.deleteDiscussionLegacy() is deprecated, see https://developer.github.com/v3/teams/discussions/#delete-a-discussion-legacy', + method: 'DELETE', + params: { + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number', + }, + deleteInOrg: { + method: 'DELETE', + params: {org: {required: true, type: 'string'}, team_slug: {required: true, type: 'string'}}, + url: '/orgs/:org/teams/:team_slug', + }, + deleteLegacy: { + deprecated: + 'octokit.teams.deleteLegacy() is deprecated, see https://developer.github.com/v3/teams/#delete-team-legacy', + method: 'DELETE', + params: {team_id: {required: true, type: 'integer'}}, + url: '/teams/:team_id', + }, + get: { + deprecated: 'octokit.teams.get() has been renamed to octokit.teams.getLegacy() (2020-01-16)', + method: 'GET', + params: {team_id: {required: true, type: 'integer'}}, + url: '/teams/:team_id', + }, + getByName: { + method: 'GET', + params: {org: {required: true, type: 'string'}, team_slug: {required: true, type: 'string'}}, + url: '/orgs/:org/teams/:team_slug', + }, + getDiscussion: { + deprecated: + 'octokit.teams.getDiscussion() has been renamed to octokit.teams.getDiscussionLegacy() (2020-01-16)', + method: 'GET', + params: { + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number', + }, + getDiscussionComment: { + deprecated: + 'octokit.teams.getDiscussionComment() has been renamed to octokit.teams.getDiscussionCommentLegacy() (2020-01-16)', + method: 'GET', + params: { + comment_number: {required: true, type: 'integer'}, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments/:comment_number', + }, + getDiscussionCommentInOrg: { + method: 'GET', + params: { + comment_number: {required: true, type: 'integer'}, + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number', + }, + getDiscussionCommentLegacy: { + deprecated: + 'octokit.teams.getDiscussionCommentLegacy() is deprecated, see https://developer.github.com/v3/teams/discussion_comments/#get-a-single-comment-legacy', + method: 'GET', + params: { + comment_number: {required: true, type: 'integer'}, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments/:comment_number', + }, + getDiscussionInOrg: { + method: 'GET', + params: { + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number', + }, + getDiscussionLegacy: { + deprecated: + 'octokit.teams.getDiscussionLegacy() is deprecated, see https://developer.github.com/v3/teams/discussions/#get-a-single-discussion-legacy', + method: 'GET', + params: { + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number', + }, + getLegacy: { + deprecated: + 'octokit.teams.getLegacy() is deprecated, see https://developer.github.com/v3/teams/#get-team-legacy', + method: 'GET', + params: {team_id: {required: true, type: 'integer'}}, + url: '/teams/:team_id', + }, + getMember: { + deprecated: + 'octokit.teams.getMember() has been renamed to octokit.teams.getMemberLegacy() (2020-01-16)', + method: 'GET', + params: { + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/members/:username', + }, + getMemberLegacy: { + deprecated: + 'octokit.teams.getMemberLegacy() is deprecated, see https://developer.github.com/v3/teams/members/#get-team-member-legacy', + method: 'GET', + params: { + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/members/:username', + }, + getMembership: { + deprecated: + 'octokit.teams.getMembership() has been renamed to octokit.teams.getMembershipLegacy() (2020-01-16)', + method: 'GET', + params: { + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/memberships/:username', + }, + getMembershipInOrg: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/memberships/:username', + }, + getMembershipLegacy: { + deprecated: + 'octokit.teams.getMembershipLegacy() is deprecated, see https://developer.github.com/v3/teams/members/#get-team-membership-legacy', + method: 'GET', + params: { + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/memberships/:username', + }, + list: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + }, + url: '/orgs/:org/teams', + }, + listChild: { + deprecated: + 'octokit.teams.listChild() has been renamed to octokit.teams.listChildLegacy() (2020-01-16)', + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/teams', + }, + listChildInOrg: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/teams', + }, + listChildLegacy: { + deprecated: + 'octokit.teams.listChildLegacy() is deprecated, see https://developer.github.com/v3/teams/#list-child-teams-legacy', + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/teams', + }, + listDiscussionComments: { + deprecated: + 'octokit.teams.listDiscussionComments() has been renamed to octokit.teams.listDiscussionCommentsLegacy() (2020-01-16)', + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + discussion_number: {required: true, type: 'integer'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments', + }, + listDiscussionCommentsInOrg: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments', + }, + listDiscussionCommentsLegacy: { + deprecated: + 'octokit.teams.listDiscussionCommentsLegacy() is deprecated, see https://developer.github.com/v3/teams/discussion_comments/#list-comments-legacy', + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + discussion_number: {required: true, type: 'integer'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments', + }, + listDiscussions: { + deprecated: + 'octokit.teams.listDiscussions() has been renamed to octokit.teams.listDiscussionsLegacy() (2020-01-16)', + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions', + }, + listDiscussionsInOrg: { + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions', + }, + listDiscussionsLegacy: { + deprecated: + 'octokit.teams.listDiscussionsLegacy() is deprecated, see https://developer.github.com/v3/teams/discussions/#list-discussions-legacy', + method: 'GET', + params: { + direction: {enum: ['asc', 'desc'], type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions', + }, + listForAuthenticatedUser: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/teams', + }, + listMembers: { + deprecated: + 'octokit.teams.listMembers() has been renamed to octokit.teams.listMembersLegacy() (2020-01-16)', + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + role: {enum: ['member', 'maintainer', 'all'], type: 'string'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/members', + }, + listMembersInOrg: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + role: {enum: ['member', 'maintainer', 'all'], type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/members', + }, + listMembersLegacy: { + deprecated: + 'octokit.teams.listMembersLegacy() is deprecated, see https://developer.github.com/v3/teams/members/#list-team-members-legacy', + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + role: {enum: ['member', 'maintainer', 'all'], type: 'string'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/members', + }, + listPendingInvitations: { + deprecated: + 'octokit.teams.listPendingInvitations() has been renamed to octokit.teams.listPendingInvitationsLegacy() (2020-01-16)', + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/invitations', + }, + listPendingInvitationsInOrg: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/invitations', + }, + listPendingInvitationsLegacy: { + deprecated: + 'octokit.teams.listPendingInvitationsLegacy() is deprecated, see https://developer.github.com/v3/teams/members/#list-pending-team-invitations-legacy', + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/invitations', + }, + listProjects: { + deprecated: + 'octokit.teams.listProjects() has been renamed to octokit.teams.listProjectsLegacy() (2020-01-16)', + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/projects', + }, + listProjectsInOrg: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/projects', + }, + listProjectsLegacy: { + deprecated: + 'octokit.teams.listProjectsLegacy() is deprecated, see https://developer.github.com/v3/teams/#list-team-projects-legacy', + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/projects', + }, + listRepos: { + deprecated: + 'octokit.teams.listRepos() has been renamed to octokit.teams.listReposLegacy() (2020-01-16)', + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/repos', + }, + listReposInOrg: { + method: 'GET', + params: { + org: {required: true, type: 'string'}, + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/repos', + }, + listReposLegacy: { + deprecated: + 'octokit.teams.listReposLegacy() is deprecated, see https://developer.github.com/v3/teams/#list-team-repos-legacy', + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/repos', + }, + removeMember: { + deprecated: + 'octokit.teams.removeMember() has been renamed to octokit.teams.removeMemberLegacy() (2020-01-16)', + method: 'DELETE', + params: { + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/members/:username', + }, + removeMemberLegacy: { + deprecated: + 'octokit.teams.removeMemberLegacy() is deprecated, see https://developer.github.com/v3/teams/members/#remove-team-member-legacy', + method: 'DELETE', + params: { + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/members/:username', + }, + removeMembership: { + deprecated: + 'octokit.teams.removeMembership() has been renamed to octokit.teams.removeMembershipLegacy() (2020-01-16)', + method: 'DELETE', + params: { + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/memberships/:username', + }, + removeMembershipInOrg: { + method: 'DELETE', + params: { + org: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/memberships/:username', + }, + removeMembershipLegacy: { + deprecated: + 'octokit.teams.removeMembershipLegacy() is deprecated, see https://developer.github.com/v3/teams/members/#remove-team-membership-legacy', + method: 'DELETE', + params: { + team_id: {required: true, type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/teams/:team_id/memberships/:username', + }, + removeProject: { + deprecated: + 'octokit.teams.removeProject() has been renamed to octokit.teams.removeProjectLegacy() (2020-01-16)', + method: 'DELETE', + params: { + project_id: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/projects/:project_id', + }, + removeProjectInOrg: { + method: 'DELETE', + params: { + org: {required: true, type: 'string'}, + project_id: {required: true, type: 'integer'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/projects/:project_id', + }, + removeProjectLegacy: { + deprecated: + 'octokit.teams.removeProjectLegacy() is deprecated, see https://developer.github.com/v3/teams/#remove-team-project-legacy', + method: 'DELETE', + params: { + project_id: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/projects/:project_id', + }, + removeRepo: { + deprecated: + 'octokit.teams.removeRepo() has been renamed to octokit.teams.removeRepoLegacy() (2020-01-16)', + method: 'DELETE', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/repos/:owner/:repo', + }, + removeRepoInOrg: { + method: 'DELETE', + params: { + org: {required: true, type: 'string'}, + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/repos/:owner/:repo', + }, + removeRepoLegacy: { + deprecated: + 'octokit.teams.removeRepoLegacy() is deprecated, see https://developer.github.com/v3/teams/#remove-team-repository-legacy', + method: 'DELETE', + params: { + owner: {required: true, type: 'string'}, + repo: {required: true, type: 'string'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/repos/:owner/:repo', + }, + reviewProject: { + deprecated: + 'octokit.teams.reviewProject() has been renamed to octokit.teams.reviewProjectLegacy() (2020-01-16)', + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + project_id: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/projects/:project_id', + }, + reviewProjectInOrg: { + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + org: {required: true, type: 'string'}, + project_id: {required: true, type: 'integer'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/projects/:project_id', + }, + reviewProjectLegacy: { + deprecated: + 'octokit.teams.reviewProjectLegacy() is deprecated, see https://developer.github.com/v3/teams/#review-a-team-project-legacy', + headers: {accept: 'application/vnd.github.inertia-preview+json'}, + method: 'GET', + params: { + project_id: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/projects/:project_id', + }, + update: { + deprecated: + 'octokit.teams.update() has been renamed to octokit.teams.updateLegacy() (2020-01-16)', + method: 'PATCH', + params: { + description: {type: 'string'}, + name: {required: true, type: 'string'}, + parent_team_id: {type: 'integer'}, + permission: {enum: ['pull', 'push', 'admin'], type: 'string'}, + privacy: {enum: ['secret', 'closed'], type: 'string'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id', + }, + updateDiscussion: { + deprecated: + 'octokit.teams.updateDiscussion() has been renamed to octokit.teams.updateDiscussionLegacy() (2020-01-16)', + method: 'PATCH', + params: { + body: {type: 'string'}, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + title: {type: 'string'}, + }, + url: '/teams/:team_id/discussions/:discussion_number', + }, + updateDiscussionComment: { + deprecated: + 'octokit.teams.updateDiscussionComment() has been renamed to octokit.teams.updateDiscussionCommentLegacy() (2020-01-16)', + method: 'PATCH', + params: { + body: {required: true, type: 'string'}, + comment_number: {required: true, type: 'integer'}, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments/:comment_number', + }, + updateDiscussionCommentInOrg: { + method: 'PATCH', + params: { + body: {required: true, type: 'string'}, + comment_number: {required: true, type: 'integer'}, + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number', + }, + updateDiscussionCommentLegacy: { + deprecated: + 'octokit.teams.updateDiscussionCommentLegacy() is deprecated, see https://developer.github.com/v3/teams/discussion_comments/#edit-a-comment-legacy', + method: 'PATCH', + params: { + body: {required: true, type: 'string'}, + comment_number: {required: true, type: 'integer'}, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id/discussions/:discussion_number/comments/:comment_number', + }, + updateDiscussionInOrg: { + method: 'PATCH', + params: { + body: {type: 'string'}, + discussion_number: {required: true, type: 'integer'}, + org: {required: true, type: 'string'}, + team_slug: {required: true, type: 'string'}, + title: {type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug/discussions/:discussion_number', + }, + updateDiscussionLegacy: { + deprecated: + 'octokit.teams.updateDiscussionLegacy() is deprecated, see https://developer.github.com/v3/teams/discussions/#edit-a-discussion-legacy', + method: 'PATCH', + params: { + body: {type: 'string'}, + discussion_number: {required: true, type: 'integer'}, + team_id: {required: true, type: 'integer'}, + title: {type: 'string'}, + }, + url: '/teams/:team_id/discussions/:discussion_number', + }, + updateInOrg: { + method: 'PATCH', + params: { + description: {type: 'string'}, + name: {required: true, type: 'string'}, + org: {required: true, type: 'string'}, + parent_team_id: {type: 'integer'}, + permission: {enum: ['pull', 'push', 'admin'], type: 'string'}, + privacy: {enum: ['secret', 'closed'], type: 'string'}, + team_slug: {required: true, type: 'string'}, + }, + url: '/orgs/:org/teams/:team_slug', + }, + updateLegacy: { + deprecated: + 'octokit.teams.updateLegacy() is deprecated, see https://developer.github.com/v3/teams/#edit-team-legacy', + method: 'PATCH', + params: { + description: {type: 'string'}, + name: {required: true, type: 'string'}, + parent_team_id: {type: 'integer'}, + permission: {enum: ['pull', 'push', 'admin'], type: 'string'}, + privacy: {enum: ['secret', 'closed'], type: 'string'}, + team_id: {required: true, type: 'integer'}, + }, + url: '/teams/:team_id', + }, + }, + users: { + addEmails: { + method: 'POST', + params: {emails: {required: true, type: 'string[]'}}, + url: '/user/emails', + }, + block: { + method: 'PUT', + params: {username: {required: true, type: 'string'}}, + url: '/user/blocks/:username', + }, + checkBlocked: { + method: 'GET', + params: {username: {required: true, type: 'string'}}, + url: '/user/blocks/:username', + }, + checkFollowing: { + method: 'GET', + params: {username: {required: true, type: 'string'}}, + url: '/user/following/:username', + }, + checkFollowingForUser: { + method: 'GET', + params: { + target_user: {required: true, type: 'string'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/following/:target_user', + }, + createGpgKey: { + method: 'POST', + params: {armored_public_key: {type: 'string'}}, + url: '/user/gpg_keys', + }, + createPublicKey: { + method: 'POST', + params: {key: {type: 'string'}, title: {type: 'string'}}, + url: '/user/keys', + }, + deleteEmails: { + method: 'DELETE', + params: {emails: {required: true, type: 'string[]'}}, + url: '/user/emails', + }, + deleteGpgKey: { + method: 'DELETE', + params: {gpg_key_id: {required: true, type: 'integer'}}, + url: '/user/gpg_keys/:gpg_key_id', + }, + deletePublicKey: { + method: 'DELETE', + params: {key_id: {required: true, type: 'integer'}}, + url: '/user/keys/:key_id', + }, + follow: { + method: 'PUT', + params: {username: {required: true, type: 'string'}}, + url: '/user/following/:username', + }, + getAuthenticated: {method: 'GET', params: {}, url: '/user'}, + getByUsername: { + method: 'GET', + params: {username: {required: true, type: 'string'}}, + url: '/users/:username', + }, + getContextForUser: { + method: 'GET', + params: { + subject_id: {type: 'string'}, + subject_type: { + enum: ['organization', 'repository', 'issue', 'pull_request'], + type: 'string', + }, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/hovercard', + }, + getGpgKey: { + method: 'GET', + params: {gpg_key_id: {required: true, type: 'integer'}}, + url: '/user/gpg_keys/:gpg_key_id', + }, + getPublicKey: { + method: 'GET', + params: {key_id: {required: true, type: 'integer'}}, + url: '/user/keys/:key_id', + }, + list: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}, since: {type: 'string'}}, + url: '/users', + }, + listBlocked: {method: 'GET', params: {}, url: '/user/blocks'}, + listEmails: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/emails', + }, + listFollowersForAuthenticatedUser: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/followers', + }, + listFollowersForUser: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/followers', + }, + listFollowingForAuthenticatedUser: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/following', + }, + listFollowingForUser: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/following', + }, + listGpgKeys: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/gpg_keys', + }, + listGpgKeysForUser: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/gpg_keys', + }, + listPublicEmails: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/public_emails', + }, + listPublicKeys: { + method: 'GET', + params: {page: {type: 'integer'}, per_page: {type: 'integer'}}, + url: '/user/keys', + }, + listPublicKeysForUser: { + method: 'GET', + params: { + page: {type: 'integer'}, + per_page: {type: 'integer'}, + username: {required: true, type: 'string'}, + }, + url: '/users/:username/keys', + }, + togglePrimaryEmailVisibility: { + method: 'PATCH', + params: {email: {required: true, type: 'string'}, visibility: {required: true, type: 'string'}}, + url: '/user/email/visibility', + }, + unblock: { + method: 'DELETE', + params: {username: {required: true, type: 'string'}}, + url: '/user/blocks/:username', + }, + unfollow: { + method: 'DELETE', + params: {username: {required: true, type: 'string'}}, + url: '/user/following/:username', + }, + updateAuthenticated: { + method: 'PATCH', + params: { + bio: {type: 'string'}, + blog: {type: 'string'}, + company: {type: 'string'}, + email: {type: 'string'}, + hireable: {type: 'boolean'}, + location: {type: 'string'}, + name: {type: 'string'}, + }, + url: '/user', + }, + }, + }; + const i = '2.4.0'; + function registerEndpoints(e, t) { + Object.keys(t).forEach((r) => { + if (!e[r]) { + e[r] = {}; + } + Object.keys(t[r]).forEach((s) => { + const i = t[r][s]; + const n = ['method', 'url', 'headers'].reduce((e, t) => { + if (typeof i[t] !== 'undefined') { + e[t] = i[t]; + } + return e; + }, {}); + n.request = {validate: i.params}; + let o = e.request.defaults(n); + const a = Object.keys(i.params || {}).find((e) => i.params[e].deprecated); + if (a) { + const t = patchForDeprecation.bind(null, e, i); + o = t(e.request.defaults(n), `.${r}.${s}()`); + o.endpoint = t(o.endpoint, `.${r}.${s}.endpoint()`); + o.endpoint.merge = t(o.endpoint.merge, `.${r}.${s}.endpoint.merge()`); + } + if (i.deprecated) { + e[r][s] = Object.assign(function deprecatedEndpointMethod() { + e.log.warn(new A.Deprecation(`[@octokit/rest] ${i.deprecated}`)); + e[r][s] = o; + return o.apply(null, arguments); + }, o); + return; + } + e[r][s] = o; + }); + }); + } + function patchForDeprecation(e, t, r, s) { + const patchedMethod = (i) => { + i = Object.assign({}, i); + Object.keys(i).forEach((r) => { + if (t.params[r] && t.params[r].deprecated) { + const n = t.params[r].alias; + e.log.warn( + new A.Deprecation( + `[@octokit/rest] "${r}" parameter is deprecated for "${s}". Use "${n}" instead`, + ), + ); + if (!(n in i)) { + i[n] = i[r]; + } + delete i[r]; + } + }); + return r(i); + }; + Object.keys(r).forEach((e) => { + patchedMethod[e] = r[e]; + }); + return patchedMethod; + } + function restEndpointMethods(e) { + e.registerEndpoints = registerEndpoints.bind(null, e); + registerEndpoints(e, s); + [ + ['gitdata', 'git'], + ['authorization', 'oauthAuthorizations'], + ['pullRequests', 'pulls'], + ].forEach(([t, r]) => { + Object.defineProperty(e, t, { + get() { + e.log.warn( + new A.Deprecation( + `[@octokit/plugin-rest-endpoint-methods] "octokit.${t}.*" methods are deprecated, use "octokit.${r}.*" instead`, + ), + ); + return e[r]; + }, + }); + }); + return {}; + } + restEndpointMethods.VERSION = i; + t.restEndpointMethods = restEndpointMethods; + }, + 8636: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + function _interopDefault(e) { + return e && typeof e === 'object' && 'default' in e ? e['default'] : e; + } + var A = r(4471); + var s = r(3843); + var i = _interopDefault(r(7906)); + var n = _interopDefault(r(6705)); + var o = r(4071); + const a = '5.4.4'; + function getBufferResponse(e) { + return e.arrayBuffer(); + } + function fetchWrapper(e) { + if (i(e.body) || Array.isArray(e.body)) { + e.body = JSON.stringify(e.body); + } + let t = {}; + let r; + let A; + const s = (e.request && e.request.fetch) || n; + return s( + e.url, + Object.assign( + {method: e.method, body: e.body, headers: e.headers, redirect: e.redirect}, + e.request, + ), + ) + .then((s) => { + A = s.url; + r = s.status; + for (const e of s.headers) { + t[e[0]] = e[1]; + } + if (r === 204 || r === 205) { + return; + } + if (e.method === 'HEAD') { + if (r < 400) { + return; + } + throw new o.RequestError(s.statusText, r, {headers: t, request: e}); + } + if (r === 304) { + throw new o.RequestError('Not modified', r, {headers: t, request: e}); + } + if (r >= 400) { + return s.text().then((A) => { + const s = new o.RequestError(A, r, {headers: t, request: e}); + try { + let e = JSON.parse(s.message); + Object.assign(s, e); + let t = e.errors; + s.message = s.message + ': ' + t.map(JSON.stringify).join(', '); + } catch (e) {} + throw s; + }); + } + const i = s.headers.get('content-type'); + if (/application\/json/.test(i)) { + return s.json(); + } + if (!i || /^text\/|charset=utf-8$/.test(i)) { + return s.text(); + } + return getBufferResponse(s); + }) + .then((e) => ({status: r, url: A, headers: t, data: e})) + .catch((r) => { + if (r instanceof o.RequestError) { + throw r; + } + throw new o.RequestError(r.message, 500, {headers: t, request: e}); + }); + } + function withDefaults(e, t) { + const r = e.defaults(t); + const newApi = function (e, t) { + const A = r.merge(e, t); + if (!A.request || !A.request.hook) { + return fetchWrapper(r.parse(A)); + } + const request = (e, t) => fetchWrapper(r.parse(r.merge(e, t))); + Object.assign(request, {endpoint: r, defaults: withDefaults.bind(null, r)}); + return A.request.hook(request, A); + }; + return Object.assign(newApi, {endpoint: r, defaults: withDefaults.bind(null, r)}); + } + const c = withDefaults(A.endpoint, { + headers: {'user-agent': `octokit-request.js/${a} ${s.getUserAgent()}`}, + }); + t.request = c; + }, + 4071: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + function _interopDefault(e) { + return e && typeof e === 'object' && 'default' in e ? e['default'] : e; + } + var A = r(4150); + var s = _interopDefault(r(5560)); + const i = s((e) => console.warn(e)); + class RequestError extends Error { + constructor(e, t, r) { + super(e); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = 'HttpError'; + this.status = t; + Object.defineProperty(this, 'code', { + get() { + i( + new A.Deprecation( + '[@octokit/request-error] `error.code` is deprecated, use `error.status`.', + ), + ); + return t; + }, + }); + this.headers = r.headers || {}; + const s = Object.assign({}, r.request); + if (r.request.headers.authorization) { + s.headers = Object.assign({}, r.request.headers, { + authorization: r.request.headers.authorization.replace(/ .*$/, ' [REDACTED]'), + }); + } + s.url = s.url + .replace(/\bclient_secret=\w+/g, 'client_secret=[REDACTED]') + .replace(/\baccess_token=\w+/g, 'access_token=[REDACTED]'); + this.request = s; + } + } + t.RequestError = RequestError; + }, + 7906: (e) => { + 'use strict'; + /*! + * isobject + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ function isObject(e) { + return e != null && typeof e === 'object' && Array.isArray(e) === false; + } + /*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ function isObjectObject(e) { + return isObject(e) === true && Object.prototype.toString.call(e) === '[object Object]'; + } + function isPlainObject(e) { + var t, r; + if (isObjectObject(e) === false) return false; + t = e.constructor; + if (typeof t !== 'function') return false; + r = t.prototype; + if (isObjectObject(r) === false) return false; + if (r.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + return true; + } + e.exports = isPlainObject; + }, + 1148: (e, t, r) => { + const {requestLog: A} = r(6966); + const {restEndpointMethods: s} = r(4935); + const i = r(3649); + const n = [r(4964), r(8078), A, r(5112), s, r(9362), r(4035)]; + const o = i.plugin(n); + function DeprecatedOctokit(e) { + const t = e && e.log && e.log.warn ? e.log.warn : console.warn; + t( + '[@octokit/rest] `const Octokit = require("@octokit/rest")` is deprecated. Use `const { Octokit } = require("@octokit/rest")` instead', + ); + return new o(e); + } + const a = Object.assign(DeprecatedOctokit, {Octokit: o}); + Object.keys(o).forEach((e) => { + if (o.hasOwnProperty(e)) { + a[e] = o[e]; + } + }); + e.exports = a; + }, + 5196: (e, t, r) => { + e.exports = Octokit; + const {request: A} = r(8636); + const s = r(2732); + const i = r(8300); + function Octokit(e, t) { + t = t || {}; + const r = new s.Collection(); + const n = Object.assign( + {debug: () => {}, info: () => {}, warn: console.warn, error: console.error}, + t && t.log, + ); + const o = {hook: r, log: n, request: A.defaults(i(t, n, r))}; + e.forEach((e) => e(o, t)); + return o; + } + }, + 3649: (e, t, r) => { + const A = r(8566); + e.exports = A(); + }, + 8566: (e, t, r) => { + e.exports = factory; + const A = r(5196); + const s = r(2795); + function factory(e) { + const t = A.bind(null, e || []); + t.plugin = s.bind(null, e || []); + return t; + } + }, + 8300: (e, t, r) => { + e.exports = parseOptions; + const {Deprecation: A} = r(4150); + const {getUserAgent: s} = r(2887); + const i = r(5560); + const n = r(9796); + const o = i((e, t) => e.warn(t)); + const a = i((e, t) => e.warn(t)); + const c = i((e, t) => e.warn(t)); + function parseOptions(e, t, r) { + if (e.headers) { + e.headers = Object.keys(e.headers).reduce((t, r) => { + t[r.toLowerCase()] = e.headers[r]; + return t; + }, {}); + } + const i = {headers: e.headers || {}, request: e.request || {}, mediaType: {previews: [], format: ''}}; + if (e.baseUrl) { + i.baseUrl = e.baseUrl; + } + if (e.userAgent) { + i.headers['user-agent'] = e.userAgent; + } + if (e.previews) { + i.mediaType.previews = e.previews; + } + if (e.timeZone) { + i.headers['time-zone'] = e.timeZone; + } + if (e.timeout) { + o( + t, + new A( + '[@octokit/rest] new Octokit({timeout}) is deprecated. Use {request: {timeout}} instead. See https://github.com/octokit/request.js#request', + ), + ); + i.request.timeout = e.timeout; + } + if (e.agent) { + a( + t, + new A( + '[@octokit/rest] new Octokit({agent}) is deprecated. Use {request: {agent}} instead. See https://github.com/octokit/request.js#request', + ), + ); + i.request.agent = e.agent; + } + if (e.headers) { + c( + t, + new A( + '[@octokit/rest] new Octokit({headers}) is deprecated. Use {userAgent, previews} instead. See https://github.com/octokit/request.js#request', + ), + ); + } + const u = i.headers['user-agent']; + const g = `octokit.js/${n.version} ${s()}`; + i.headers['user-agent'] = [u, g].filter(Boolean).join(' '); + i.request.hook = r.bind(null, 'request'); + return i; + } + }, + 2795: (e, t, r) => { + e.exports = registerPlugin; + const A = r(8566); + function registerPlugin(e, t) { + return A(e.includes(t) ? e : e.concat(t)); + } + }, + 9128: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + function _interopDefault(e) { + return e && typeof e === 'object' && 'default' in e ? e['default'] : e; + } + var A = r(4150); + var s = _interopDefault(r(5560)); + const i = s((e) => console.warn(e)); + class RequestError extends Error { + constructor(e, t, r) { + super(e); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = 'HttpError'; + this.status = t; + Object.defineProperty(this, 'code', { + get() { + i( + new A.Deprecation( + '[@octokit/request-error] `error.code` is deprecated, use `error.status`.', + ), + ); + return t; + }, + }); + this.headers = r.headers || {}; + const s = Object.assign({}, r.request); + if (r.request.headers.authorization) { + s.headers = Object.assign({}, r.request.headers, { + authorization: r.request.headers.authorization.replace(/ .*$/, ' [REDACTED]'), + }); + } + s.url = s.url + .replace(/\bclient_secret=\w+/g, 'client_secret=[REDACTED]') + .replace(/\baccess_token=\w+/g, 'access_token=[REDACTED]'); + this.request = s; + } + } + t.RequestError = RequestError; + }, + 2887: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + function _interopDefault(e) { + return e && typeof e === 'object' && 'default' in e ? e['default'] : e; + } + var A = _interopDefault(r(5254)); + function getUserAgent() { + try { + return `Node.js/${process.version.substr(1)} (${A()}; ${process.arch})`; + } catch (e) { + if (/wmic os get Caption/.test(e.message)) { + return 'Windows '; + } + throw e; + } + } + t.getUserAgent = getUserAgent; + }, + 833: (e, t, r) => { + e.exports = authenticate; + const {Deprecation: A} = r(4150); + const s = r(5560); + const i = s((e, t) => e.warn(t)); + function authenticate(e, t) { + i( + e.octokit.log, + new A( + '[@octokit/rest] octokit.authenticate() is deprecated. Use "auth" constructor option instead.', + ), + ); + if (!t) { + e.auth = false; + return; + } + switch (t.type) { + case 'basic': + if (!t.username || !t.password) { + throw new Error('Basic authentication requires both a username and password to be set'); + } + break; + case 'oauth': + if (!t.token && !(t.key && t.secret)) { + throw new Error('OAuth2 authentication requires a token or key & secret to be set'); + } + break; + case 'token': + case 'app': + if (!t.token) { + throw new Error('Token authentication requires a token to be set'); + } + break; + default: + throw new Error("Invalid authentication type, must be 'basic', 'oauth', 'token' or 'app'"); + } + e.auth = t; + } + }, + 1775: (e, t, r) => { + e.exports = authenticationBeforeRequest; + const A = r(9516); + const s = r(8620); + function authenticationBeforeRequest(e, t) { + if (!e.auth.type) { + return; + } + if (e.auth.type === 'basic') { + const r = A(`${e.auth.username}:${e.auth.password}`); + t.headers.authorization = `Basic ${r}`; + return; + } + if (e.auth.type === 'token') { + t.headers.authorization = `token ${e.auth.token}`; + return; + } + if (e.auth.type === 'app') { + t.headers.authorization = `Bearer ${e.auth.token}`; + const r = t.headers.accept.split(',').concat('application/vnd.github.machine-man-preview+json'); + t.headers.accept = s(r).filter(Boolean).join(','); + return; + } + t.url += t.url.indexOf('?') === -1 ? '?' : '&'; + if (e.auth.token) { + t.url += `access_token=${encodeURIComponent(e.auth.token)}`; + return; + } + const r = encodeURIComponent(e.auth.key); + const i = encodeURIComponent(e.auth.secret); + t.url += `client_id=${r}&client_secret=${i}`; + } + }, + 8078: (e, t, r) => { + e.exports = authenticationPlugin; + const {Deprecation: A} = r(4150); + const s = r(5560); + const i = s((e, t) => e.warn(t)); + const n = r(833); + const o = r(1775); + const a = r(6748); + function authenticationPlugin(e, t) { + if (t.auth) { + e.authenticate = () => { + i( + e.log, + new A( + '[@octokit/rest] octokit.authenticate() is deprecated and has no effect when "auth" option is set on Octokit constructor', + ), + ); + }; + return; + } + const r = {octokit: e, auth: false}; + e.authenticate = n.bind(null, r); + e.hook.before('request', o.bind(null, r)); + e.hook.error('request', a.bind(null, r)); + } + }, + 6748: (e, t, r) => { + e.exports = authenticationRequestError; + const {RequestError: A} = r(9128); + function authenticationRequestError(e, t, r) { + if (!t.headers) throw t; + const s = /required/.test(t.headers['x-github-otp'] || ''); + if (t.status !== 401 || !s) { + throw t; + } + if (t.status === 401 && s && t.request && t.request.headers['x-github-otp']) { + throw new A('Invalid one-time password for two-factor authentication', 401, { + headers: t.headers, + request: r, + }); + } + if (typeof e.auth.on2fa !== 'function') { + throw new A( + '2FA required, but options.on2fa is not a function. See https://github.com/octokit/rest.js#authentication', + 401, + {headers: t.headers, request: r}, + ); + } + return Promise.resolve() + .then(() => e.auth.on2fa()) + .then((t) => { + const A = Object.assign(r, {headers: Object.assign({'x-github-otp': t}, r.headers)}); + return e.octokit.request(A); + }); + } + }, + 4813: (e, t, r) => { + e.exports = authenticationBeforeRequest; + const A = r(9516); + const s = r(7287); + function authenticationBeforeRequest(e, t) { + if (typeof e.auth === 'string') { + t.headers.authorization = s(e.auth); + return; + } + if (e.auth.username) { + const r = A(`${e.auth.username}:${e.auth.password}`); + t.headers.authorization = `Basic ${r}`; + if (e.otp) { + t.headers['x-github-otp'] = e.otp; + } + return; + } + if (e.auth.clientId) { + if (/\/applications\/:?[\w_]+\/tokens\/:?[\w_]+($|\?)/.test(t.url)) { + const r = A(`${e.auth.clientId}:${e.auth.clientSecret}`); + t.headers.authorization = `Basic ${r}`; + return; + } + t.url += t.url.indexOf('?') === -1 ? '?' : '&'; + t.url += `client_id=${e.auth.clientId}&client_secret=${e.auth.clientSecret}`; + return; + } + return Promise.resolve() + .then(() => e.auth()) + .then((e) => { + t.headers.authorization = s(e); + }); + } + }, + 4964: (e, t, r) => { + e.exports = authenticationPlugin; + const {createTokenAuth: A} = r(7864); + const {Deprecation: s} = r(4150); + const i = r(5560); + const n = r(4813); + const o = r(9686); + const a = r(5508); + const c = r(7287); + const u = i((e, t) => e.warn(t)); + const g = i((e, t) => e.warn(t)); + function authenticationPlugin(e, t) { + if (t.authStrategy) { + const r = t.authStrategy(t.auth); + e.hook.wrap('request', r.hook); + e.auth = r; + return; + } + if (!t.auth) { + e.auth = () => Promise.resolve({type: 'unauthenticated'}); + return; + } + const r = typeof t.auth === 'string' && /^basic/.test(c(t.auth)); + if (typeof t.auth === 'string' && !r) { + const r = A(t.auth); + e.hook.wrap('request', r.hook); + e.auth = r; + return; + } + const [i, l] = r + ? [ + u, + 'Setting the "new Octokit({ auth })" option to a Basic Auth string is deprecated. Use https://github.com/octokit/auth-basic.js instead. See (https://octokit.github.io/rest.js/#authentication)', + ] + : [ + g, + 'Setting the "new Octokit({ auth })" option to an object without also setting the "authStrategy" option is deprecated and will be removed in v17. See (https://octokit.github.io/rest.js/#authentication)', + ]; + i(e.log, new s('[@octokit/rest] ' + l)); + e.auth = () => Promise.resolve({type: 'deprecated', message: l}); + a(t.auth); + const p = {octokit: e, auth: t.auth}; + e.hook.before('request', n.bind(null, p)); + e.hook.error('request', o.bind(null, p)); + } + }, + 9686: (e, t, r) => { + e.exports = authenticationRequestError; + const {RequestError: A} = r(9128); + function authenticationRequestError(e, t, r) { + if (!t.headers) throw t; + const s = /required/.test(t.headers['x-github-otp'] || ''); + if (t.status !== 401 || !s) { + throw t; + } + if (t.status === 401 && s && t.request && t.request.headers['x-github-otp']) { + if (e.otp) { + delete e.otp; + } else { + throw new A('Invalid one-time password for two-factor authentication', 401, { + headers: t.headers, + request: r, + }); + } + } + if (typeof e.auth.on2fa !== 'function') { + throw new A( + '2FA required, but options.on2fa is not a function. See https://github.com/octokit/rest.js#authentication', + 401, + {headers: t.headers, request: r}, + ); + } + return Promise.resolve() + .then(() => e.auth.on2fa()) + .then((t) => { + const A = Object.assign(r, {headers: Object.assign(r.headers, {'x-github-otp': t})}); + return e.octokit.request(A).then((r) => { + e.otp = t; + return r; + }); + }); + } + }, + 5508: (e) => { + e.exports = validateAuth; + function validateAuth(e) { + if (typeof e === 'string') { + return; + } + if (typeof e === 'function') { + return; + } + if (e.username && e.password) { + return; + } + if (e.clientId && e.clientSecret) { + return; + } + throw new Error(`Invalid "auth" option: ${JSON.stringify(e)}`); + } + }, + 7287: (e, t, r) => { + e.exports = withAuthorizationPrefix; + const A = r(28); + const s = /^[\w-]+:/; + function withAuthorizationPrefix(e) { + if (/^(basic|bearer|token) /i.test(e)) { + return e; + } + try { + if (s.test(A(e))) { + return `basic ${e}`; + } + } catch (e) {} + if (e.split(/\./).length === 3) { + return `bearer ${e}`; + } + return `token ${e}`; + } + }, + 5112: (e, t, r) => { + e.exports = paginatePlugin; + const {paginateRest: A} = r(8082); + function paginatePlugin(e) { + Object.assign(e, A(e)); + } + }, + 9362: (e, t, r) => { + e.exports = octokitValidate; + const A = r(2614); + function octokitValidate(e) { + e.hook.before('request', A.bind(null, e)); + } + }, + 2614: (e, t, r) => { + 'use strict'; + e.exports = validate; + const {RequestError: A} = r(9128); + const s = r(615); + const i = r(8203); + function validate(e, t) { + if (!t.request.validate) { + return; + } + const {validate: r} = t.request; + Object.keys(r).forEach((e) => { + const n = s(r, e); + const o = n.type; + let a; + let c; + let u = true; + let g = false; + if (/\./.test(e)) { + a = e.replace(/\.[^.]+$/, ''); + g = a.slice(-2) === '[]'; + if (g) { + a = a.slice(0, -2); + } + c = s(t, a); + u = a === 'headers' || (typeof c === 'object' && c !== null); + } + const l = g ? (s(t, a) || []).map((t) => t[e.split(/\./).pop()]) : [s(t, e)]; + l.forEach((r, s) => { + const a = typeof r !== 'undefined'; + const c = r === null; + const l = g ? e.replace(/\[\]/, `[${s}]`) : e; + if (!n.required && !a) { + return; + } + if (!u) { + return; + } + if (n.allowNull && c) { + return; + } + if (!n.allowNull && c) { + throw new A(`'${l}' cannot be null`, 400, {request: t}); + } + if (n.required && !a) { + throw new A(`Empty value for parameter '${l}': ${JSON.stringify(r)}`, 400, {request: t}); + } + if (o === 'integer') { + const e = r; + r = parseInt(r, 10); + if (isNaN(r)) { + throw new A(`Invalid value for parameter '${l}': ${JSON.stringify(e)} is NaN`, 400, { + request: t, + }); + } + } + if (n.enum && n.enum.indexOf(String(r)) === -1) { + throw new A(`Invalid value for parameter '${l}': ${JSON.stringify(r)}`, 400, {request: t}); + } + if (n.validation) { + const e = new RegExp(n.validation); + if (!e.test(r)) { + throw new A(`Invalid value for parameter '${l}': ${JSON.stringify(r)}`, 400, { + request: t, + }); + } + } + if (o === 'object' && typeof r === 'string') { + try { + r = JSON.parse(r); + } catch (e) { + throw new A( + `JSON parse error of value for parameter '${l}': ${JSON.stringify(r)}`, + 400, + {request: t}, + ); + } + } + i(t, n.mapTo || l, r); + }); + }); + return t; + } + }, + 28: (e) => { + e.exports = function atob(e) { + return Buffer.from(e, 'base64').toString('binary'); + }; + }, + 2732: (e, t, r) => { + var A = r(1063); + var s = r(2027); + var i = r(9934); + var n = Function.bind; + var o = n.bind(n); + function bindApi(e, t, r) { + var A = o(i, null).apply(null, r ? [t, r] : [t]); + e.api = {remove: A}; + e.remove = A; + ['before', 'error', 'after', 'wrap'].forEach(function (A) { + var i = r ? [t, A, r] : [t, A]; + e[A] = e.api[A] = o(s, null).apply(null, i); + }); + } + function HookSingular() { + var e = 'h'; + var t = {registry: {}}; + var r = A.bind(null, t, e); + bindApi(r, t, e); + return r; + } + function HookCollection() { + var e = {registry: {}}; + var t = A.bind(null, e); + bindApi(t, e); + return t; + } + var a = false; + function Hook() { + if (!a) { + console.warn( + '[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4', + ); + a = true; + } + return HookCollection(); + } + Hook.Singular = HookSingular.bind(); + Hook.Collection = HookCollection.bind(); + e.exports = Hook; + e.exports.Hook = Hook; + e.exports.Singular = Hook.Singular; + e.exports.Collection = Hook.Collection; + }, + 2027: (e) => { + e.exports = addHook; + function addHook(e, t, r, A) { + var s = A; + if (!e.registry[r]) { + e.registry[r] = []; + } + if (t === 'before') { + A = function (e, t) { + return Promise.resolve().then(s.bind(null, t)).then(e.bind(null, t)); + }; + } + if (t === 'after') { + A = function (e, t) { + var r; + return Promise.resolve() + .then(e.bind(null, t)) + .then(function (e) { + r = e; + return s(r, t); + }) + .then(function () { + return r; + }); + }; + } + if (t === 'error') { + A = function (e, t) { + return Promise.resolve() + .then(e.bind(null, t)) + .catch(function (e) { + return s(e, t); + }); + }; + } + e.registry[r].push({hook: A, orig: s}); + } + }, + 1063: (e) => { + e.exports = register; + function register(e, t, r, A) { + if (typeof r !== 'function') { + throw new Error('method for before hook must be a function'); + } + if (!A) { + A = {}; + } + if (Array.isArray(t)) { + return t.reverse().reduce(function (t, r) { + return register.bind(null, e, r, t, A); + }, r)(); + } + return Promise.resolve().then(function () { + if (!e.registry[t]) { + return r(A); + } + return e.registry[t].reduce(function (e, t) { + return t.hook.bind(null, e, A); + }, r)(); + }); + } + }, + 9934: (e) => { + e.exports = removeHook; + function removeHook(e, t, r) { + if (!e.registry[t]) { + return; + } + var A = e.registry[t] + .map(function (e) { + return e.orig; + }) + .indexOf(r); + if (A === -1) { + return; + } + e.registry[t].splice(A, 1); + } + }, + 9516: (e) => { + e.exports = function btoa(e) { + return new Buffer(e).toString('base64'); + }; + }, + 6110: (e, t, r) => { + t.log = log; + t.formatArgs = formatArgs; + t.save = save; + t.load = load; + t.useColors = useColors; + t.storage = localstorage(); + t.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33', + ]; + function useColors() { + if ( + typeof window !== 'undefined' && + window.process && + (window.process.type === 'renderer' || window.process.__nwjs) + ) { + return true; + } + if ( + typeof navigator !== 'undefined' && + navigator.userAgent && + navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/) + ) { + return false; + } + return ( + (typeof document !== 'undefined' && + document.documentElement && + document.documentElement.style && + document.documentElement.style.WebkitAppearance) || + (typeof window !== 'undefined' && + window.console && + (window.console.firebug || (window.console.exception && window.console.table))) || + (typeof navigator !== 'undefined' && + navigator.userAgent && + navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && + parseInt(RegExp.$1, 10) >= 31) || + (typeof navigator !== 'undefined' && + navigator.userAgent && + navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)) + ); + } + function formatArgs(t) { + t[0] = + (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + t[0] + + (this.useColors ? '%c ' : ' ') + + '+' + + e.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const r = 'color: ' + this.color; + t.splice(1, 0, r, 'color: inherit'); + let A = 0; + let s = 0; + t[0].replace(/%[a-zA-Z%]/g, (e) => { + if (e === '%%') { + return; + } + A++; + if (e === '%c') { + s = A; + } + }); + t.splice(s, 0, r); + } + function log(...e) { + return typeof console === 'object' && console.log && console.log(...e); + } + function save(e) { + try { + if (e) { + t.storage.setItem('debug', e); + } else { + t.storage.removeItem('debug'); + } + } catch (e) {} + } + function load() { + let e; + try { + e = t.storage.getItem('debug'); + } catch (e) {} + if (!e && typeof process !== 'undefined' && 'env' in process) { + e = process.env.DEBUG; + } + return e; + } + function localstorage() { + try { + return localStorage; + } catch (e) {} + } + e.exports = r(897)(t); + const {formatters: A} = e.exports; + A.j = function (e) { + try { + return JSON.stringify(e); + } catch (e) { + return '[UnexpectedJSONParseError]: ' + e.message; + } + }; + }, + 897: (e, t, r) => { + function setup(e) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = r(744); + Object.keys(e).forEach((t) => { + createDebug[t] = e[t]; + }); + createDebug.instances = []; + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(e) { + let t = 0; + for (let r = 0; r < e.length; r++) { + t = (t << 5) - t + e.charCodeAt(r); + t |= 0; + } + return createDebug.colors[Math.abs(t) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + function createDebug(e) { + let t; + function debug(...e) { + if (!debug.enabled) { + return; + } + const r = debug; + const A = Number(new Date()); + const s = A - (t || A); + r.diff = s; + r.prev = t; + r.curr = A; + t = A; + e[0] = createDebug.coerce(e[0]); + if (typeof e[0] !== 'string') { + e.unshift('%O'); + } + let i = 0; + e[0] = e[0].replace(/%([a-zA-Z%])/g, (t, A) => { + if (t === '%%') { + return t; + } + i++; + const s = createDebug.formatters[A]; + if (typeof s === 'function') { + const A = e[i]; + t = s.call(r, A); + e.splice(i, 1); + i--; + } + return t; + }); + createDebug.formatArgs.call(r, e); + const n = r.log || createDebug.log; + n.apply(r, e); + } + debug.namespace = e; + debug.enabled = createDebug.enabled(e); + debug.useColors = createDebug.useColors(); + debug.color = selectColor(e); + debug.destroy = destroy; + debug.extend = extend; + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + createDebug.instances.push(debug); + return debug; + } + function destroy() { + const e = createDebug.instances.indexOf(this); + if (e !== -1) { + createDebug.instances.splice(e, 1); + return true; + } + return false; + } + function extend(e, t) { + const r = createDebug(this.namespace + (typeof t === 'undefined' ? ':' : t) + e); + r.log = this.log; + return r; + } + function enable(e) { + createDebug.save(e); + createDebug.names = []; + createDebug.skips = []; + let t; + const r = (typeof e === 'string' ? e : '').split(/[\s,]+/); + const A = r.length; + for (t = 0; t < A; t++) { + if (!r[t]) { + continue; + } + e = r[t].replace(/\*/g, '.*?'); + if (e[0] === '-') { + createDebug.skips.push(new RegExp('^' + e.substr(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + e + '$')); + } + } + for (t = 0; t < createDebug.instances.length; t++) { + const e = createDebug.instances[t]; + e.enabled = createDebug.enabled(e.namespace); + } + } + function disable() { + const e = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map((e) => '-' + e), + ].join(','); + createDebug.enable(''); + return e; + } + function enabled(e) { + if (e[e.length - 1] === '*') { + return true; + } + let t; + let r; + for (t = 0, r = createDebug.skips.length; t < r; t++) { + if (createDebug.skips[t].test(e)) { + return false; + } + } + for (t = 0, r = createDebug.names.length; t < r; t++) { + if (createDebug.names[t].test(e)) { + return true; + } + } + return false; + } + function toNamespace(e) { + return e + .toString() + .substring(2, e.toString().length - 2) + .replace(/\.\*\?$/, '*'); + } + function coerce(e) { + if (e instanceof Error) { + return e.stack || e.message; + } + return e; + } + createDebug.enable(createDebug.load()); + return createDebug; + } + e.exports = setup; + }, + 2830: (e, t, r) => { + if ( + typeof process === 'undefined' || + process.type === 'renderer' || + process.browser === true || + process.__nwjs + ) { + e.exports = r(6110); + } else { + e.exports = r(5108); + } + }, + 5108: (e, t, r) => { + const A = r(2018); + const s = r(9023); + t.init = init; + t.log = log; + t.formatArgs = formatArgs; + t.save = save; + t.load = load; + t.useColors = useColors; + t.colors = [6, 2, 3, 4, 5, 1]; + try { + const e = r(1450); + if (e && (e.stderr || e).level >= 2) { + t.colors = [ + 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, + 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221, + ]; + } + } catch (e) {} + t.inspectOpts = Object.keys(process.env) + .filter((e) => /^debug_/i.test(e)) + .reduce((e, t) => { + const r = t + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (e, t) => t.toUpperCase()); + let A = process.env[t]; + if (/^(yes|on|true|enabled)$/i.test(A)) { + A = true; + } else if (/^(no|off|false|disabled)$/i.test(A)) { + A = false; + } else if (A === 'null') { + A = null; + } else { + A = Number(A); + } + e[r] = A; + return e; + }, {}); + function useColors() { + return 'colors' in t.inspectOpts ? Boolean(t.inspectOpts.colors) : A.isatty(process.stderr.fd); + } + function formatArgs(t) { + const {namespace: r, useColors: A} = this; + if (A) { + const A = this.color; + const s = '[3' + (A < 8 ? A : '8;5;' + A); + const i = ` ${s};1m${r} `; + t[0] = i + t[0].split('\n').join('\n' + i); + t.push(s + 'm+' + e.exports.humanize(this.diff) + ''); + } else { + t[0] = getDate() + r + ' ' + t[0]; + } + } + function getDate() { + if (t.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; + } + function log(...e) { + return process.stderr.write(s.format(...e) + '\n'); + } + function save(e) { + if (e) { + process.env.DEBUG = e; + } else { + delete process.env.DEBUG; + } + } + function load() { + return process.env.DEBUG; + } + function init(e) { + e.inspectOpts = {}; + const r = Object.keys(t.inspectOpts); + for (let A = 0; A < r.length; A++) { + e.inspectOpts[r[A]] = t.inspectOpts[r[A]]; + } + } + e.exports = r(897)(t); + const {formatters: i} = e.exports; + i.o = function (e) { + this.inspectOpts.colors = this.useColors; + return s.inspect(e, this.inspectOpts).replace(/\s*\n\s*/g, ' '); + }; + i.O = function (e) { + this.inspectOpts.colors = this.useColors; + return s.inspect(e, this.inspectOpts); + }; + }, + 4150: (e, t) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + class Deprecation extends Error { + constructor(e) { + super(e); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = 'Deprecation'; + } + } + t.Deprecation = Deprecation; + }, + 1424: (e, t, r) => { + var A = r(5560); + var noop = function () {}; + var isRequest = function (e) { + return e.setHeader && typeof e.abort === 'function'; + }; + var isChildProcess = function (e) { + return e.stdio && Array.isArray(e.stdio) && e.stdio.length === 3; + }; + var eos = function (e, t, r) { + if (typeof t === 'function') return eos(e, null, t); + if (!t) t = {}; + r = A(r || noop); + var s = e._writableState; + var i = e._readableState; + var n = t.readable || (t.readable !== false && e.readable); + var o = t.writable || (t.writable !== false && e.writable); + var a = false; + var onlegacyfinish = function () { + if (!e.writable) onfinish(); + }; + var onfinish = function () { + o = false; + if (!n) r.call(e); + }; + var onend = function () { + n = false; + if (!o) r.call(e); + }; + var onexit = function (t) { + r.call(e, t ? new Error('exited with error code: ' + t) : null); + }; + var onerror = function (t) { + r.call(e, t); + }; + var onclose = function () { + process.nextTick(onclosenexttick); + }; + var onclosenexttick = function () { + if (a) return; + if (n && !(i && i.ended && !i.destroyed)) return r.call(e, new Error('premature close')); + if (o && !(s && s.ended && !s.destroyed)) return r.call(e, new Error('premature close')); + }; + var onrequest = function () { + e.req.on('finish', onfinish); + }; + if (isRequest(e)) { + e.on('complete', onfinish); + e.on('abort', onclose); + if (e.req) onrequest(); + else e.on('request', onrequest); + } else if (o && !s) { + e.on('end', onlegacyfinish); + e.on('close', onlegacyfinish); + } + if (isChildProcess(e)) e.on('exit', onexit); + e.on('end', onend); + e.on('finish', onfinish); + if (t.error !== false) e.on('error', onerror); + e.on('close', onclose); + return function () { + a = true; + e.removeListener('complete', onfinish); + e.removeListener('abort', onclose); + e.removeListener('request', onrequest); + if (e.req) e.req.removeListener('finish', onfinish); + e.removeListener('end', onlegacyfinish); + e.removeListener('close', onlegacyfinish); + e.removeListener('finish', onfinish); + e.removeListener('exit', onexit); + e.removeListener('end', onend); + e.removeListener('error', onerror); + e.removeListener('close', onclose); + }; + }; + e.exports = eos; + }, + 8204: (e, t, r) => { + 'use strict'; + const A = r(6928); + const s = r(5317); + const i = r(5046); + const n = r(7017); + const o = r(3655); + const a = r(5651); + const c = r(4583); + const u = r(2766); + const g = r(6627); + const l = r(6500); + const p = r(5109); + const d = 1e3 * 1e3 * 10; + function handleArgs(e, t, r) { + let s; + r = Object.assign({extendEnv: true, env: {}}, r); + if (r.extendEnv) { + r.env = Object.assign({}, process.env, r.env); + } + if (r.__winShell === true) { + delete r.__winShell; + s = {command: e, args: t, options: r, file: e, original: {cmd: e, args: t}}; + } else { + s = i._parse(e, t, r); + } + r = Object.assign( + { + maxBuffer: d, + buffer: true, + stripEof: true, + preferLocal: true, + localDir: s.options.cwd || process.cwd(), + encoding: 'utf8', + reject: true, + cleanup: true, + }, + s.options, + ); + r.stdio = p(r); + if (r.preferLocal) { + r.env = o.env(Object.assign({}, r, {cwd: r.localDir})); + } + if (r.detached) { + r.cleanup = false; + } + if (process.platform === 'win32' && A.basename(s.command) === 'cmd.exe') { + s.args.unshift('/q'); + } + return {cmd: s.command, args: s.args, opts: r, parsed: s}; + } + function handleInput(e, t) { + if (t === null || t === undefined) { + return; + } + if (a(t)) { + t.pipe(e.stdin); + } else { + e.stdin.end(t); + } + } + function handleOutput(e, t) { + if (t && e.stripEof) { + t = n(t); + } + return t; + } + function handleShell(e, t, r) { + let A = '/bin/sh'; + let s = ['-c', t]; + r = Object.assign({}, r); + if (process.platform === 'win32') { + r.__winShell = true; + A = process.env.comspec || 'cmd.exe'; + s = ['/s', '/c', `"${t}"`]; + r.windowsVerbatimArguments = true; + } + if (r.shell) { + A = r.shell; + delete r.shell; + } + return e(A, s, r); + } + function getStream(e, t, {encoding: r, buffer: A, maxBuffer: s}) { + if (!e[t]) { + return null; + } + let i; + if (!A) { + i = new Promise((r, A) => { + e[t].once('end', r).once('error', A); + }); + } else if (r) { + i = c(e[t], {encoding: r, maxBuffer: s}); + } else { + i = c.buffer(e[t], {maxBuffer: s}); + } + return i.catch((e) => { + e.stream = t; + e.message = `${t} ${e.message}`; + throw e; + }); + } + function makeError(e, t) { + const {stdout: r, stderr: A} = e; + let s = e.error; + const {code: i, signal: n} = e; + const {parsed: o, joinedCmd: a} = t; + const c = t.timedOut || false; + if (!s) { + let e = ''; + if (Array.isArray(o.opts.stdio)) { + if (o.opts.stdio[2] !== 'inherit') { + e += e.length > 0 ? A : `\n${A}`; + } + if (o.opts.stdio[1] !== 'inherit') { + e += `\n${r}`; + } + } else if (o.opts.stdio !== 'inherit') { + e = `\n${A}${r}`; + } + s = new Error(`Command failed: ${a}${e}`); + s.code = i < 0 ? l(i) : i; + } + s.stdout = r; + s.stderr = A; + s.failed = true; + s.signal = n || null; + s.cmd = a; + s.timedOut = c; + return s; + } + function joinCmd(e, t) { + let r = e; + if (Array.isArray(t) && t.length > 0) { + r += ' ' + t.join(' '); + } + return r; + } + e.exports = (e, t, r) => { + const A = handleArgs(e, t, r); + const {encoding: n, buffer: o, maxBuffer: a} = A.opts; + const c = joinCmd(e, t); + let l; + try { + l = s.spawn(A.cmd, A.args, A.opts); + } catch (e) { + return Promise.reject(e); + } + let p; + if (A.opts.cleanup) { + p = g(() => { + l.kill(); + }); + } + let d = null; + let h = false; + const cleanup = () => { + if (d) { + clearTimeout(d); + d = null; + } + if (p) { + p(); + } + }; + if (A.opts.timeout > 0) { + d = setTimeout(() => { + d = null; + h = true; + l.kill(A.opts.killSignal); + }, A.opts.timeout); + } + const C = new Promise((e) => { + l.on('exit', (t, r) => { + cleanup(); + e({code: t, signal: r}); + }); + l.on('error', (t) => { + cleanup(); + e({error: t}); + }); + if (l.stdin) { + l.stdin.on('error', (t) => { + cleanup(); + e({error: t}); + }); + } + }); + function destroy() { + if (l.stdout) { + l.stdout.destroy(); + } + if (l.stderr) { + l.stderr.destroy(); + } + } + const handlePromise = () => + u( + Promise.all([ + C, + getStream(l, 'stdout', {encoding: n, buffer: o, maxBuffer: a}), + getStream(l, 'stderr', {encoding: n, buffer: o, maxBuffer: a}), + ]).then((e) => { + const t = e[0]; + t.stdout = e[1]; + t.stderr = e[2]; + if (t.error || t.code !== 0 || t.signal !== null) { + const e = makeError(t, {joinedCmd: c, parsed: A, timedOut: h}); + e.killed = e.killed || l.killed; + if (!A.opts.reject) { + return e; + } + throw e; + } + return { + stdout: handleOutput(A.opts, t.stdout), + stderr: handleOutput(A.opts, t.stderr), + code: 0, + failed: false, + killed: false, + signal: null, + cmd: c, + timedOut: false, + }; + }), + destroy, + ); + i._enoent.hookChildProcess(l, A.parsed); + handleInput(l, A.opts.input); + l.then = (e, t) => handlePromise().then(e, t); + l.catch = (e) => handlePromise().catch(e); + return l; + }; + e.exports.stdout = (...t) => e.exports(...t).then((e) => e.stdout); + e.exports.stderr = (...t) => e.exports(...t).then((e) => e.stderr); + e.exports.shell = (t, r) => handleShell(e.exports, t, r); + e.exports.sync = (e, t, r) => { + const A = handleArgs(e, t, r); + const i = joinCmd(e, t); + if (a(A.opts.input)) { + throw new TypeError('The `input` option cannot be a stream in sync mode'); + } + const n = s.spawnSync(A.cmd, A.args, A.opts); + n.code = n.status; + if (n.error || n.status !== 0 || n.signal !== null) { + const e = makeError(n, {joinedCmd: i, parsed: A}); + if (!A.opts.reject) { + return e; + } + throw e; + } + return { + stdout: handleOutput(A.opts, n.stdout), + stderr: handleOutput(A.opts, n.stderr), + code: 0, + failed: false, + signal: null, + cmd: i, + timedOut: false, + }; + }; + e.exports.shellSync = (t, r) => handleShell(e.exports.sync, t, r); + }, + 6500: (e, t, r) => { + 'use strict'; + const A = r(9023); + let s; + if (typeof A.getSystemErrorName === 'function') { + e.exports = A.getSystemErrorName; + } else { + try { + s = process.binding('uv'); + if (typeof s.errname !== 'function') { + throw new TypeError('uv.errname is not a function'); + } + } catch (e) { + console.error("execa/lib/errname: unable to establish process.binding('uv')", e); + s = null; + } + e.exports = (e) => errname(s, e); + } + e.exports.__test__ = errname; + function errname(e, t) { + if (e) { + return e.errname(t); + } + if (!(t < 0)) { + throw new Error('err >= 0'); + } + return `Unknown system error ${t}`; + } + }, + 5109: (e) => { + 'use strict'; + const t = ['stdin', 'stdout', 'stderr']; + const hasAlias = (e) => t.some((t) => Boolean(e[t])); + e.exports = (e) => { + if (!e) { + return null; + } + if (e.stdio && hasAlias(e)) { + throw new Error( + `It's not possible to provide \`stdio\` in combination with one of ${t + .map((e) => `\`${e}\``) + .join(', ')}`, + ); + } + if (typeof e.stdio === 'string') { + return e.stdio; + } + const r = e.stdio || []; + if (!Array.isArray(r)) { + throw new TypeError( + `Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof r}\``, + ); + } + const A = []; + const s = Math.max(r.length, t.length); + for (let i = 0; i < s; i++) { + let s = null; + if (r[i] !== undefined) { + s = r[i]; + } else if (e[t[i]] !== undefined) { + s = e[t[i]]; + } + A[i] = s; + } + return A; + }; + }, + 5046: (e, t, r) => { + 'use strict'; + const A = r(5317); + const s = r(1577); + const i = r(3001); + function spawn(e, t, r) { + const n = s(e, t, r); + const o = A.spawn(n.command, n.args, n.options); + i.hookChildProcess(o, n); + return o; + } + function spawnSync(e, t, r) { + const n = s(e, t, r); + const o = A.spawnSync(n.command, n.args, n.options); + o.error = o.error || i.verifyENOENTSync(o.status, n); + return o; + } + e.exports = spawn; + e.exports.spawn = spawn; + e.exports.sync = spawnSync; + e.exports._parse = s; + e.exports._enoent = i; + }, + 3001: (e) => { + 'use strict'; + const t = process.platform === 'win32'; + function notFoundError(e, t) { + return Object.assign(new Error(`${t} ${e.command} ENOENT`), { + code: 'ENOENT', + errno: 'ENOENT', + syscall: `${t} ${e.command}`, + path: e.command, + spawnargs: e.args, + }); + } + function hookChildProcess(e, r) { + if (!t) { + return; + } + const A = e.emit; + e.emit = function (t, s) { + if (t === 'exit') { + const t = verifyENOENT(s, r, 'spawn'); + if (t) { + return A.call(e, 'error', t); + } + } + return A.apply(e, arguments); + }; + } + function verifyENOENT(e, r) { + if (t && e === 1 && !r.file) { + return notFoundError(r.original, 'spawn'); + } + return null; + } + function verifyENOENTSync(e, r) { + if (t && e === 1 && !r.file) { + return notFoundError(r.original, 'spawnSync'); + } + return null; + } + e.exports = { + hookChildProcess: hookChildProcess, + verifyENOENT: verifyENOENT, + verifyENOENTSync: verifyENOENTSync, + notFoundError: notFoundError, + }; + }, + 1577: (e, t, r) => { + 'use strict'; + const A = r(6928); + const s = r(3048); + const i = r(8542); + const n = r(1120); + const o = r(6179); + const a = r(4306); + const c = process.platform === 'win32'; + const u = /\.(?:com|exe)$/i; + const g = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; + const l = s(() => a.satisfies(process.version, '^4.8.0 || ^5.7.0 || >= 6.0.0', true)) || false; + function detectShebang(e) { + e.file = i(e); + const t = e.file && o(e.file); + if (t) { + e.args.unshift(e.file); + e.command = t; + return i(e); + } + return e.file; + } + function parseNonShell(e) { + if (!c) { + return e; + } + const t = detectShebang(e); + const r = !u.test(t); + if (e.options.forceShell || r) { + const r = g.test(t); + e.command = A.normalize(e.command); + e.command = n.command(e.command); + e.args = e.args.map((e) => n.argument(e, r)); + const s = [e.command].concat(e.args).join(' '); + e.args = ['/d', '/s', '/c', `"${s}"`]; + e.command = process.env.comspec || 'cmd.exe'; + e.options.windowsVerbatimArguments = true; + } + return e; + } + function parseShell(e) { + if (l) { + return e; + } + const t = [e.command].concat(e.args).join(' '); + if (c) { + e.command = + typeof e.options.shell === 'string' ? e.options.shell : process.env.comspec || 'cmd.exe'; + e.args = ['/d', '/s', '/c', `"${t}"`]; + e.options.windowsVerbatimArguments = true; + } else { + if (typeof e.options.shell === 'string') { + e.command = e.options.shell; + } else if (process.platform === 'android') { + e.command = '/system/bin/sh'; + } else { + e.command = '/bin/sh'; + } + e.args = ['-c', t]; + } + return e; + } + function parse(e, t, r) { + if (t && !Array.isArray(t)) { + r = t; + t = null; + } + t = t ? t.slice(0) : []; + r = Object.assign({}, r); + const A = {command: e, args: t, options: r, file: undefined, original: {command: e, args: t}}; + return r.shell ? parseShell(A) : parseNonShell(A); + } + e.exports = parse; + }, + 1120: (e) => { + 'use strict'; + const t = /([()\][%!^"`<>&|;, *?])/g; + function escapeCommand(e) { + e = e.replace(t, '^$1'); + return e; + } + function escapeArgument(e, r) { + e = `${e}`; + e = e.replace(/(\\*)"/g, '$1$1\\"'); + e = e.replace(/(\\*)$/, '$1$1'); + e = `"${e}"`; + e = e.replace(t, '^$1'); + if (r) { + e = e.replace(t, '^$1'); + } + return e; + } + e.exports.command = escapeCommand; + e.exports.argument = escapeArgument; + }, + 6179: (e, t, r) => { + 'use strict'; + const A = r(9896); + const s = r(2956); + function readShebang(e) { + const t = 150; + let r; + if (Buffer.alloc) { + r = Buffer.alloc(t); + } else { + r = new Buffer(t); + r.fill(0); + } + let i; + try { + i = A.openSync(e, 'r'); + A.readSync(i, r, 0, t, 0); + A.closeSync(i); + } catch (e) {} + return s(r.toString()); + } + e.exports = readShebang; + }, + 8542: (e, t, r) => { + 'use strict'; + const A = r(6928); + const s = r(4204); + const i = r(6689)(); + function resolveCommandAttempt(e, t) { + const r = process.cwd(); + const n = e.options.cwd != null; + if (n) { + try { + process.chdir(e.options.cwd); + } catch (e) {} + } + let o; + try { + o = s.sync(e.command, { + path: (e.options.env || process.env)[i], + pathExt: t ? A.delimiter : undefined, + }); + } catch (e) { + } finally { + process.chdir(r); + } + if (o) { + o = A.resolve(n ? e.options.cwd : '', o); + } + return o; + } + function resolveCommand(e) { + return resolveCommandAttempt(e) || resolveCommandAttempt(e, true); + } + e.exports = resolveCommand; + }, + 4202: (e, t, r) => { + 'use strict'; + const {PassThrough: A} = r(2203); + e.exports = (e) => { + e = Object.assign({}, e); + const {array: t} = e; + let {encoding: r} = e; + const s = r === 'buffer'; + let i = false; + if (t) { + i = !(r || s); + } else { + r = r || 'utf8'; + } + if (s) { + r = null; + } + let n = 0; + const o = []; + const a = new A({objectMode: i}); + if (r) { + a.setEncoding(r); + } + a.on('data', (e) => { + o.push(e); + if (i) { + n = o.length; + } else { + n += e.length; + } + }); + a.getBufferedValue = () => { + if (t) { + return o; + } + return s ? Buffer.concat(o, n) : o.join(''); + }; + a.getBufferedLength = () => n; + return a; + }; + }, + 4583: (e, t, r) => { + 'use strict'; + const A = r(7898); + const s = r(4202); + class MaxBufferError extends Error { + constructor() { + super('maxBuffer exceeded'); + this.name = 'MaxBufferError'; + } + } + function getStream(e, t) { + if (!e) { + return Promise.reject(new Error('Expected a stream')); + } + t = Object.assign({maxBuffer: Infinity}, t); + const {maxBuffer: r} = t; + let i; + return new Promise((n, o) => { + const rejectPromise = (e) => { + if (e) { + e.bufferedData = i.getBufferedValue(); + } + o(e); + }; + i = A(e, s(t), (e) => { + if (e) { + rejectPromise(e); + return; + } + n(); + }); + i.on('data', () => { + if (i.getBufferedLength() > r) { + rejectPromise(new MaxBufferError()); + } + }); + }).then(() => i.getBufferedValue()); + } + e.exports = getStream; + e.exports.buffer = (e, t) => getStream(e, Object.assign({}, t, {encoding: 'buffer'})); + e.exports.array = (e, t) => getStream(e, Object.assign({}, t, {array: true})); + e.exports.MaxBufferError = MaxBufferError; + }, + 5651: (e) => { + 'use strict'; + var t = (e.exports = function (e) { + return e !== null && typeof e === 'object' && typeof e.pipe === 'function'; + }); + t.writable = function (e) { + return ( + t(e) && + e.writable !== false && + typeof e._write === 'function' && + typeof e._writableState === 'object' + ); + }; + t.readable = function (e) { + return ( + t(e) && + e.readable !== false && + typeof e._read === 'function' && + typeof e._readableState === 'object' + ); + }; + t.duplex = function (e) { + return t.writable(e) && t.readable(e); + }; + t.transform = function (e) { + return t.duplex(e) && typeof e._transform === 'function' && typeof e._transformState === 'object'; + }; + }, + 3655: (e, t, r) => { + 'use strict'; + const A = r(6928); + const s = r(6689); + e.exports = (e) => { + e = Object.assign({cwd: process.cwd(), path: process.env[s()]}, e); + let t; + let r = A.resolve(e.cwd); + const i = []; + while (t !== r) { + i.push(A.join(r, 'node_modules/.bin')); + t = r; + r = A.resolve(r, '..'); + } + i.push(A.dirname(process.execPath)); + return i.concat(e.path).join(A.delimiter); + }; + e.exports.env = (t) => { + t = Object.assign({env: process.env}, t); + const r = Object.assign({}, t.env); + const A = s({env: r}); + t.path = r[A]; + r[A] = e.exports(t); + return r; + }; + }, + 4306: (e, t) => { + t = e.exports = SemVer; + var r; + if ( + typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG) + ) { + r = function () { + var e = Array.prototype.slice.call(arguments, 0); + e.unshift('SEMVER'); + console.log.apply(console, e); + }; + } else { + r = function () {}; + } + t.SEMVER_SPEC_VERSION = '2.0.0'; + var A = 256; + var s = Number.MAX_SAFE_INTEGER || 9007199254740991; + var i = 16; + var n = (t.re = []); + var o = (t.src = []); + var a = 0; + var c = a++; + o[c] = '0|[1-9]\\d*'; + var u = a++; + o[u] = '[0-9]+'; + var g = a++; + o[g] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'; + var l = a++; + o[l] = '(' + o[c] + ')\\.' + '(' + o[c] + ')\\.' + '(' + o[c] + ')'; + var p = a++; + o[p] = '(' + o[u] + ')\\.' + '(' + o[u] + ')\\.' + '(' + o[u] + ')'; + var d = a++; + o[d] = '(?:' + o[c] + '|' + o[g] + ')'; + var h = a++; + o[h] = '(?:' + o[u] + '|' + o[g] + ')'; + var C = a++; + o[C] = '(?:-(' + o[d] + '(?:\\.' + o[d] + ')*))'; + var Q = a++; + o[Q] = '(?:-?(' + o[h] + '(?:\\.' + o[h] + ')*))'; + var B = a++; + o[B] = '[0-9A-Za-z-]+'; + var I = a++; + o[I] = '(?:\\+(' + o[B] + '(?:\\.' + o[B] + ')*))'; + var m = a++; + var y = 'v?' + o[l] + o[C] + '?' + o[I] + '?'; + o[m] = '^' + y + '$'; + var b = '[v=\\s]*' + o[p] + o[Q] + '?' + o[I] + '?'; + var w = a++; + o[w] = '^' + b + '$'; + var R = a++; + o[R] = '((?:<|>)?=?)'; + var k = a++; + o[k] = o[u] + '|x|X|\\*'; + var D = a++; + o[D] = o[c] + '|x|X|\\*'; + var S = a++; + o[S] = + '[v=\\s]*(' + + o[D] + + ')' + + '(?:\\.(' + + o[D] + + ')' + + '(?:\\.(' + + o[D] + + ')' + + '(?:' + + o[C] + + ')?' + + o[I] + + '?' + + ')?)?'; + var v = a++; + o[v] = + '[v=\\s]*(' + + o[k] + + ')' + + '(?:\\.(' + + o[k] + + ')' + + '(?:\\.(' + + o[k] + + ')' + + '(?:' + + o[Q] + + ')?' + + o[I] + + '?' + + ')?)?'; + var N = a++; + o[N] = '^' + o[R] + '\\s*' + o[S] + '$'; + var q = a++; + o[q] = '^' + o[R] + '\\s*' + o[v] + '$'; + var T = a++; + o[T] = + '(?:^|[^\\d])' + + '(\\d{1,' + + i + + '})' + + '(?:\\.(\\d{1,' + + i + + '}))?' + + '(?:\\.(\\d{1,' + + i + + '}))?' + + '(?:$|[^\\d])'; + var _ = a++; + o[_] = '(?:~>?)'; + var U = a++; + o[U] = '(\\s*)' + o[_] + '\\s+'; + n[U] = new RegExp(o[U], 'g'); + var L = '$1~'; + var M = a++; + o[M] = '^' + o[_] + o[S] + '$'; + var G = a++; + o[G] = '^' + o[_] + o[v] + '$'; + var H = a++; + o[H] = '(?:\\^)'; + var O = a++; + o[O] = '(\\s*)' + o[H] + '\\s+'; + n[O] = new RegExp(o[O], 'g'); + var x = '$1^'; + var P = a++; + o[P] = '^' + o[H] + o[S] + '$'; + var Y = a++; + o[Y] = '^' + o[H] + o[v] + '$'; + var J = a++; + o[J] = '^' + o[R] + '\\s*(' + b + ')$|^$'; + var V = a++; + o[V] = '^' + o[R] + '\\s*(' + y + ')$|^$'; + var j = a++; + o[j] = '(\\s*)' + o[R] + '\\s*(' + b + '|' + o[S] + ')'; + n[j] = new RegExp(o[j], 'g'); + var W = '$1$2$3'; + var z = a++; + o[z] = '^\\s*(' + o[S] + ')' + '\\s+-\\s+' + '(' + o[S] + ')' + '\\s*$'; + var X = a++; + o[X] = '^\\s*(' + o[v] + ')' + '\\s+-\\s+' + '(' + o[v] + ')' + '\\s*$'; + var Z = a++; + o[Z] = '(<|>)?=?\\s*\\*'; + for (var K = 0; K < a; K++) { + r(K, o[K]); + if (!n[K]) { + n[K] = new RegExp(o[K]); + } + } + t.parse = parse; + function parse(e, t) { + if (!t || typeof t !== 'object') { + t = {loose: !!t, includePrerelease: false}; + } + if (e instanceof SemVer) { + return e; + } + if (typeof e !== 'string') { + return null; + } + if (e.length > A) { + return null; + } + var r = t.loose ? n[w] : n[m]; + if (!r.test(e)) { + return null; + } + try { + return new SemVer(e, t); + } catch (e) { + return null; + } + } + t.valid = valid; + function valid(e, t) { + var r = parse(e, t); + return r ? r.version : null; + } + t.clean = clean; + function clean(e, t) { + var r = parse(e.trim().replace(/^[=v]+/, ''), t); + return r ? r.version : null; + } + t.SemVer = SemVer; + function SemVer(e, t) { + if (!t || typeof t !== 'object') { + t = {loose: !!t, includePrerelease: false}; + } + if (e instanceof SemVer) { + if (e.loose === t.loose) { + return e; + } else { + e = e.version; + } + } else if (typeof e !== 'string') { + throw new TypeError('Invalid Version: ' + e); + } + if (e.length > A) { + throw new TypeError('version is longer than ' + A + ' characters'); + } + if (!(this instanceof SemVer)) { + return new SemVer(e, t); + } + r('SemVer', e, t); + this.options = t; + this.loose = !!t.loose; + var i = e.trim().match(t.loose ? n[w] : n[m]); + if (!i) { + throw new TypeError('Invalid Version: ' + e); + } + this.raw = e; + this.major = +i[1]; + this.minor = +i[2]; + this.patch = +i[3]; + if (this.major > s || this.major < 0) { + throw new TypeError('Invalid major version'); + } + if (this.minor > s || this.minor < 0) { + throw new TypeError('Invalid minor version'); + } + if (this.patch > s || this.patch < 0) { + throw new TypeError('Invalid patch version'); + } + if (!i[4]) { + this.prerelease = []; + } else { + this.prerelease = i[4].split('.').map(function (e) { + if (/^[0-9]+$/.test(e)) { + var t = +e; + if (t >= 0 && t < s) { + return t; + } + } + return e; + }); + } + this.build = i[5] ? i[5].split('.') : []; + this.format(); + } + SemVer.prototype.format = function () { + this.version = this.major + '.' + this.minor + '.' + this.patch; + if (this.prerelease.length) { + this.version += '-' + this.prerelease.join('.'); + } + return this.version; + }; + SemVer.prototype.toString = function () { + return this.version; + }; + SemVer.prototype.compare = function (e) { + r('SemVer.compare', this.version, this.options, e); + if (!(e instanceof SemVer)) { + e = new SemVer(e, this.options); + } + return this.compareMain(e) || this.comparePre(e); + }; + SemVer.prototype.compareMain = function (e) { + if (!(e instanceof SemVer)) { + e = new SemVer(e, this.options); + } + return ( + compareIdentifiers(this.major, e.major) || + compareIdentifiers(this.minor, e.minor) || + compareIdentifiers(this.patch, e.patch) + ); + }; + SemVer.prototype.comparePre = function (e) { + if (!(e instanceof SemVer)) { + e = new SemVer(e, this.options); + } + if (this.prerelease.length && !e.prerelease.length) { + return -1; + } else if (!this.prerelease.length && e.prerelease.length) { + return 1; + } else if (!this.prerelease.length && !e.prerelease.length) { + return 0; + } + var t = 0; + do { + var A = this.prerelease[t]; + var s = e.prerelease[t]; + r('prerelease compare', t, A, s); + if (A === undefined && s === undefined) { + return 0; + } else if (s === undefined) { + return 1; + } else if (A === undefined) { + return -1; + } else if (A === s) { + continue; + } else { + return compareIdentifiers(A, s); + } + } while (++t); + }; + SemVer.prototype.inc = function (e, t) { + switch (e) { + case 'premajor': + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc('pre', t); + break; + case 'preminor': + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc('pre', t); + break; + case 'prepatch': + this.prerelease.length = 0; + this.inc('patch', t); + this.inc('pre', t); + break; + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', t); + } + this.inc('pre', t); + break; + case 'major': + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { + this.major++; + } + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + case 'minor': + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + this.patch = 0; + this.prerelease = []; + break; + case 'patch': + if (this.prerelease.length === 0) { + this.patch++; + } + this.prerelease = []; + break; + case 'pre': + if (this.prerelease.length === 0) { + this.prerelease = [0]; + } else { + var r = this.prerelease.length; + while (--r >= 0) { + if (typeof this.prerelease[r] === 'number') { + this.prerelease[r]++; + r = -2; + } + } + if (r === -1) { + this.prerelease.push(0); + } + } + if (t) { + if (this.prerelease[0] === t) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [t, 0]; + } + } else { + this.prerelease = [t, 0]; + } + } + break; + default: + throw new Error('invalid increment argument: ' + e); + } + this.format(); + this.raw = this.version; + return this; + }; + t.inc = inc; + function inc(e, t, r, A) { + if (typeof r === 'string') { + A = r; + r = undefined; + } + try { + return new SemVer(e, r).inc(t, A).version; + } catch (e) { + return null; + } + } + t.diff = diff; + function diff(e, t) { + if (eq(e, t)) { + return null; + } else { + var r = parse(e); + var A = parse(t); + var s = ''; + if (r.prerelease.length || A.prerelease.length) { + s = 'pre'; + var i = 'prerelease'; + } + for (var n in r) { + if (n === 'major' || n === 'minor' || n === 'patch') { + if (r[n] !== A[n]) { + return s + n; + } + } + } + return i; + } + } + t.compareIdentifiers = compareIdentifiers; + var $ = /^[0-9]+$/; + function compareIdentifiers(e, t) { + var r = $.test(e); + var A = $.test(t); + if (r && A) { + e = +e; + t = +t; + } + return e === t ? 0 : r && !A ? -1 : A && !r ? 1 : e < t ? -1 : 1; + } + t.rcompareIdentifiers = rcompareIdentifiers; + function rcompareIdentifiers(e, t) { + return compareIdentifiers(t, e); + } + t.major = major; + function major(e, t) { + return new SemVer(e, t).major; + } + t.minor = minor; + function minor(e, t) { + return new SemVer(e, t).minor; + } + t.patch = patch; + function patch(e, t) { + return new SemVer(e, t).patch; + } + t.compare = compare; + function compare(e, t, r) { + return new SemVer(e, r).compare(new SemVer(t, r)); + } + t.compareLoose = compareLoose; + function compareLoose(e, t) { + return compare(e, t, true); + } + t.rcompare = rcompare; + function rcompare(e, t, r) { + return compare(t, e, r); + } + t.sort = sort; + function sort(e, r) { + return e.sort(function (e, A) { + return t.compare(e, A, r); + }); + } + t.rsort = rsort; + function rsort(e, r) { + return e.sort(function (e, A) { + return t.rcompare(e, A, r); + }); + } + t.gt = gt; + function gt(e, t, r) { + return compare(e, t, r) > 0; + } + t.lt = lt; + function lt(e, t, r) { + return compare(e, t, r) < 0; + } + t.eq = eq; + function eq(e, t, r) { + return compare(e, t, r) === 0; + } + t.neq = neq; + function neq(e, t, r) { + return compare(e, t, r) !== 0; + } + t.gte = gte; + function gte(e, t, r) { + return compare(e, t, r) >= 0; + } + t.lte = lte; + function lte(e, t, r) { + return compare(e, t, r) <= 0; + } + t.cmp = cmp; + function cmp(e, t, r, A) { + switch (t) { + case '===': + if (typeof e === 'object') e = e.version; + if (typeof r === 'object') r = r.version; + return e === r; + case '!==': + if (typeof e === 'object') e = e.version; + if (typeof r === 'object') r = r.version; + return e !== r; + case '': + case '=': + case '==': + return eq(e, r, A); + case '!=': + return neq(e, r, A); + case '>': + return gt(e, r, A); + case '>=': + return gte(e, r, A); + case '<': + return lt(e, r, A); + case '<=': + return lte(e, r, A); + default: + throw new TypeError('Invalid operator: ' + t); + } + } + t.Comparator = Comparator; + function Comparator(e, t) { + if (!t || typeof t !== 'object') { + t = {loose: !!t, includePrerelease: false}; + } + if (e instanceof Comparator) { + if (e.loose === !!t.loose) { + return e; + } else { + e = e.value; + } + } + if (!(this instanceof Comparator)) { + return new Comparator(e, t); + } + r('comparator', e, t); + this.options = t; + this.loose = !!t.loose; + this.parse(e); + if (this.semver === ee) { + this.value = ''; + } else { + this.value = this.operator + this.semver.version; + } + r('comp', this); + } + var ee = {}; + Comparator.prototype.parse = function (e) { + var t = this.options.loose ? n[J] : n[V]; + var r = e.match(t); + if (!r) { + throw new TypeError('Invalid comparator: ' + e); + } + this.operator = r[1]; + if (this.operator === '=') { + this.operator = ''; + } + if (!r[2]) { + this.semver = ee; + } else { + this.semver = new SemVer(r[2], this.options.loose); + } + }; + Comparator.prototype.toString = function () { + return this.value; + }; + Comparator.prototype.test = function (e) { + r('Comparator.test', e, this.options.loose); + if (this.semver === ee) { + return true; + } + if (typeof e === 'string') { + e = new SemVer(e, this.options); + } + return cmp(e, this.operator, this.semver, this.options); + }; + Comparator.prototype.intersects = function (e, t) { + if (!(e instanceof Comparator)) { + throw new TypeError('a Comparator is required'); + } + if (!t || typeof t !== 'object') { + t = {loose: !!t, includePrerelease: false}; + } + var r; + if (this.operator === '') { + r = new Range(e.value, t); + return satisfies(this.value, r, t); + } else if (e.operator === '') { + r = new Range(this.value, t); + return satisfies(e.semver, r, t); + } + var A = + (this.operator === '>=' || this.operator === '>') && (e.operator === '>=' || e.operator === '>'); + var s = + (this.operator === '<=' || this.operator === '<') && (e.operator === '<=' || e.operator === '<'); + var i = this.semver.version === e.semver.version; + var n = + (this.operator === '>=' || this.operator === '<=') && (e.operator === '>=' || e.operator === '<='); + var o = + cmp(this.semver, '<', e.semver, t) && + (this.operator === '>=' || this.operator === '>') && + (e.operator === '<=' || e.operator === '<'); + var a = + cmp(this.semver, '>', e.semver, t) && + (this.operator === '<=' || this.operator === '<') && + (e.operator === '>=' || e.operator === '>'); + return A || s || (i && n) || o || a; + }; + t.Range = Range; + function Range(e, t) { + if (!t || typeof t !== 'object') { + t = {loose: !!t, includePrerelease: false}; + } + if (e instanceof Range) { + if (e.loose === !!t.loose && e.includePrerelease === !!t.includePrerelease) { + return e; + } else { + return new Range(e.raw, t); + } + } + if (e instanceof Comparator) { + return new Range(e.value, t); + } + if (!(this instanceof Range)) { + return new Range(e, t); + } + this.options = t; + this.loose = !!t.loose; + this.includePrerelease = !!t.includePrerelease; + this.raw = e; + this.set = e + .split(/\s*\|\|\s*/) + .map(function (e) { + return this.parseRange(e.trim()); + }, this) + .filter(function (e) { + return e.length; + }); + if (!this.set.length) { + throw new TypeError('Invalid SemVer Range: ' + e); + } + this.format(); + } + Range.prototype.format = function () { + this.range = this.set + .map(function (e) { + return e.join(' ').trim(); + }) + .join('||') + .trim(); + return this.range; + }; + Range.prototype.toString = function () { + return this.range; + }; + Range.prototype.parseRange = function (e) { + var t = this.options.loose; + e = e.trim(); + var A = t ? n[X] : n[z]; + e = e.replace(A, hyphenReplace); + r('hyphen replace', e); + e = e.replace(n[j], W); + r('comparator trim', e, n[j]); + e = e.replace(n[U], L); + e = e.replace(n[O], x); + e = e.split(/\s+/).join(' '); + var s = t ? n[J] : n[V]; + var i = e + .split(' ') + .map(function (e) { + return parseComparator(e, this.options); + }, this) + .join(' ') + .split(/\s+/); + if (this.options.loose) { + i = i.filter(function (e) { + return !!e.match(s); + }); + } + i = i.map(function (e) { + return new Comparator(e, this.options); + }, this); + return i; + }; + Range.prototype.intersects = function (e, t) { + if (!(e instanceof Range)) { + throw new TypeError('a Range is required'); + } + return this.set.some(function (r) { + return r.every(function (r) { + return e.set.some(function (e) { + return e.every(function (e) { + return r.intersects(e, t); + }); + }); + }); + }); + }; + t.toComparators = toComparators; + function toComparators(e, t) { + return new Range(e, t).set.map(function (e) { + return e + .map(function (e) { + return e.value; + }) + .join(' ') + .trim() + .split(' '); + }); + } + function parseComparator(e, t) { + r('comp', e, t); + e = replaceCarets(e, t); + r('caret', e); + e = replaceTildes(e, t); + r('tildes', e); + e = replaceXRanges(e, t); + r('xrange', e); + e = replaceStars(e, t); + r('stars', e); + return e; + } + function isX(e) { + return !e || e.toLowerCase() === 'x' || e === '*'; + } + function replaceTildes(e, t) { + return e + .trim() + .split(/\s+/) + .map(function (e) { + return replaceTilde(e, t); + }) + .join(' '); + } + function replaceTilde(e, t) { + var A = t.loose ? n[G] : n[M]; + return e.replace(A, function (t, A, s, i, n) { + r('tilde', e, t, A, s, i, n); + var o; + if (isX(A)) { + o = ''; + } else if (isX(s)) { + o = '>=' + A + '.0.0 <' + (+A + 1) + '.0.0'; + } else if (isX(i)) { + o = '>=' + A + '.' + s + '.0 <' + A + '.' + (+s + 1) + '.0'; + } else if (n) { + r('replaceTilde pr', n); + o = '>=' + A + '.' + s + '.' + i + '-' + n + ' <' + A + '.' + (+s + 1) + '.0'; + } else { + o = '>=' + A + '.' + s + '.' + i + ' <' + A + '.' + (+s + 1) + '.0'; + } + r('tilde return', o); + return o; + }); + } + function replaceCarets(e, t) { + return e + .trim() + .split(/\s+/) + .map(function (e) { + return replaceCaret(e, t); + }) + .join(' '); + } + function replaceCaret(e, t) { + r('caret', e, t); + var A = t.loose ? n[Y] : n[P]; + return e.replace(A, function (t, A, s, i, n) { + r('caret', e, t, A, s, i, n); + var o; + if (isX(A)) { + o = ''; + } else if (isX(s)) { + o = '>=' + A + '.0.0 <' + (+A + 1) + '.0.0'; + } else if (isX(i)) { + if (A === '0') { + o = '>=' + A + '.' + s + '.0 <' + A + '.' + (+s + 1) + '.0'; + } else { + o = '>=' + A + '.' + s + '.0 <' + (+A + 1) + '.0.0'; + } + } else if (n) { + r('replaceCaret pr', n); + if (A === '0') { + if (s === '0') { + o = '>=' + A + '.' + s + '.' + i + '-' + n + ' <' + A + '.' + s + '.' + (+i + 1); + } else { + o = '>=' + A + '.' + s + '.' + i + '-' + n + ' <' + A + '.' + (+s + 1) + '.0'; + } + } else { + o = '>=' + A + '.' + s + '.' + i + '-' + n + ' <' + (+A + 1) + '.0.0'; + } + } else { + r('no pr'); + if (A === '0') { + if (s === '0') { + o = '>=' + A + '.' + s + '.' + i + ' <' + A + '.' + s + '.' + (+i + 1); + } else { + o = '>=' + A + '.' + s + '.' + i + ' <' + A + '.' + (+s + 1) + '.0'; + } + } else { + o = '>=' + A + '.' + s + '.' + i + ' <' + (+A + 1) + '.0.0'; + } + } + r('caret return', o); + return o; + }); + } + function replaceXRanges(e, t) { + r('replaceXRanges', e, t); + return e + .split(/\s+/) + .map(function (e) { + return replaceXRange(e, t); + }) + .join(' '); + } + function replaceXRange(e, t) { + e = e.trim(); + var A = t.loose ? n[q] : n[N]; + return e.replace(A, function (t, A, s, i, n, o) { + r('xRange', e, t, A, s, i, n, o); + var a = isX(s); + var c = a || isX(i); + var u = c || isX(n); + var g = u; + if (A === '=' && g) { + A = ''; + } + if (a) { + if (A === '>' || A === '<') { + t = '<0.0.0'; + } else { + t = '*'; + } + } else if (A && g) { + if (c) { + i = 0; + } + n = 0; + if (A === '>') { + A = '>='; + if (c) { + s = +s + 1; + i = 0; + n = 0; + } else { + i = +i + 1; + n = 0; + } + } else if (A === '<=') { + A = '<'; + if (c) { + s = +s + 1; + } else { + i = +i + 1; + } + } + t = A + s + '.' + i + '.' + n; + } else if (c) { + t = '>=' + s + '.0.0 <' + (+s + 1) + '.0.0'; + } else if (u) { + t = '>=' + s + '.' + i + '.0 <' + s + '.' + (+i + 1) + '.0'; + } + r('xRange return', t); + return t; + }); + } + function replaceStars(e, t) { + r('replaceStars', e, t); + return e.trim().replace(n[Z], ''); + } + function hyphenReplace(e, t, r, A, s, i, n, o, a, c, u, g, l) { + if (isX(r)) { + t = ''; + } else if (isX(A)) { + t = '>=' + r + '.0.0'; + } else if (isX(s)) { + t = '>=' + r + '.' + A + '.0'; + } else { + t = '>=' + t; + } + if (isX(a)) { + o = ''; + } else if (isX(c)) { + o = '<' + (+a + 1) + '.0.0'; + } else if (isX(u)) { + o = '<' + a + '.' + (+c + 1) + '.0'; + } else if (g) { + o = '<=' + a + '.' + c + '.' + u + '-' + g; + } else { + o = '<=' + o; + } + return (t + ' ' + o).trim(); + } + Range.prototype.test = function (e) { + if (!e) { + return false; + } + if (typeof e === 'string') { + e = new SemVer(e, this.options); + } + for (var t = 0; t < this.set.length; t++) { + if (testSet(this.set[t], e, this.options)) { + return true; + } + } + return false; + }; + function testSet(e, t, A) { + for (var s = 0; s < e.length; s++) { + if (!e[s].test(t)) { + return false; + } + } + if (t.prerelease.length && !A.includePrerelease) { + for (s = 0; s < e.length; s++) { + r(e[s].semver); + if (e[s].semver === ee) { + continue; + } + if (e[s].semver.prerelease.length > 0) { + var i = e[s].semver; + if (i.major === t.major && i.minor === t.minor && i.patch === t.patch) { + return true; + } + } + } + return false; + } + return true; + } + t.satisfies = satisfies; + function satisfies(e, t, r) { + try { + t = new Range(t, r); + } catch (e) { + return false; + } + return t.test(e); + } + t.maxSatisfying = maxSatisfying; + function maxSatisfying(e, t, r) { + var A = null; + var s = null; + try { + var i = new Range(t, r); + } catch (e) { + return null; + } + e.forEach(function (e) { + if (i.test(e)) { + if (!A || s.compare(e) === -1) { + A = e; + s = new SemVer(A, r); + } + } + }); + return A; + } + t.minSatisfying = minSatisfying; + function minSatisfying(e, t, r) { + var A = null; + var s = null; + try { + var i = new Range(t, r); + } catch (e) { + return null; + } + e.forEach(function (e) { + if (i.test(e)) { + if (!A || s.compare(e) === 1) { + A = e; + s = new SemVer(A, r); + } + } + }); + return A; + } + t.minVersion = minVersion; + function minVersion(e, t) { + e = new Range(e, t); + var r = new SemVer('0.0.0'); + if (e.test(r)) { + return r; + } + r = new SemVer('0.0.0-0'); + if (e.test(r)) { + return r; + } + r = null; + for (var A = 0; A < e.set.length; ++A) { + var s = e.set[A]; + s.forEach(function (e) { + var t = new SemVer(e.semver.version); + switch (e.operator) { + case '>': + if (t.prerelease.length === 0) { + t.patch++; + } else { + t.prerelease.push(0); + } + t.raw = t.format(); + case '': + case '>=': + if (!r || gt(r, t)) { + r = t; + } + break; + case '<': + case '<=': + break; + default: + throw new Error('Unexpected operation: ' + e.operator); + } + }); + } + if (r && e.test(r)) { + return r; + } + return null; + } + t.validRange = validRange; + function validRange(e, t) { + try { + return new Range(e, t).range || '*'; + } catch (e) { + return null; + } + } + t.ltr = ltr; + function ltr(e, t, r) { + return outside(e, t, '<', r); + } + t.gtr = gtr; + function gtr(e, t, r) { + return outside(e, t, '>', r); + } + t.outside = outside; + function outside(e, t, r, A) { + e = new SemVer(e, A); + t = new Range(t, A); + var s, i, n, o, a; + switch (r) { + case '>': + s = gt; + i = lte; + n = lt; + o = '>'; + a = '>='; + break; + case '<': + s = lt; + i = gte; + n = gt; + o = '<'; + a = '<='; + break; + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); + } + if (satisfies(e, t, A)) { + return false; + } + for (var c = 0; c < t.set.length; ++c) { + var u = t.set[c]; + var g = null; + var l = null; + u.forEach(function (e) { + if (e.semver === ee) { + e = new Comparator('>=0.0.0'); + } + g = g || e; + l = l || e; + if (s(e.semver, g.semver, A)) { + g = e; + } else if (n(e.semver, l.semver, A)) { + l = e; + } + }); + if (g.operator === o || g.operator === a) { + return false; + } + if ((!l.operator || l.operator === o) && i(e, l.semver)) { + return false; + } else if (l.operator === a && n(e, l.semver)) { + return false; + } + } + return true; + } + t.prerelease = prerelease; + function prerelease(e, t) { + var r = parse(e, t); + return r && r.prerelease.length ? r.prerelease : null; + } + t.intersects = intersects; + function intersects(e, t, r) { + e = new Range(e, r); + t = new Range(t, r); + return e.intersects(t); + } + t.coerce = coerce; + function coerce(e) { + if (e instanceof SemVer) { + return e; + } + if (typeof e !== 'string') { + return null; + } + var t = e.match(n[T]); + if (t == null) { + return null; + } + return parse(t[1] + '.' + (t[2] || '0') + '.' + (t[3] || '0')); + } + }, + 2956: (e, t, r) => { + 'use strict'; + var A = r(6050); + e.exports = function (e) { + var t = e.match(A); + if (!t) { + return null; + } + var r = t[0].replace(/#! ?/, '').split(' '); + var s = r[0].split('/').pop(); + var i = r[1]; + return s === 'env' ? i : s + (i ? ' ' + i : ''); + }; + }, + 6050: (e) => { + 'use strict'; + e.exports = /^#!.*/; + }, + 4204: (e, t, r) => { + e.exports = which; + which.sync = whichSync; + var A = process.platform === 'win32' || process.env.OSTYPE === 'cygwin' || process.env.OSTYPE === 'msys'; + var s = r(6928); + var i = A ? ';' : ':'; + var n = r(2940); + function getNotFoundError(e) { + var t = new Error('not found: ' + e); + t.code = 'ENOENT'; + return t; + } + function getPathInfo(e, t) { + var r = t.colon || i; + var s = t.path || process.env.PATH || ''; + var n = ['']; + s = s.split(r); + var o = ''; + if (A) { + s.unshift(process.cwd()); + o = t.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'; + n = o.split(r); + if (e.indexOf('.') !== -1 && n[0] !== '') n.unshift(''); + } + if (e.match(/\//) || (A && e.match(/\\/))) s = ['']; + return {env: s, ext: n, extExe: o}; + } + function which(e, t, r) { + if (typeof t === 'function') { + r = t; + t = {}; + } + var A = getPathInfo(e, t); + var i = A.env; + var o = A.ext; + var a = A.extExe; + var c = []; + (function F(A, u) { + if (A === u) { + if (t.all && c.length) return r(null, c); + else return r(getNotFoundError(e)); + } + var g = i[A]; + if (g.charAt(0) === '"' && g.slice(-1) === '"') g = g.slice(1, -1); + var l = s.join(g, e); + if (!g && /^\.[\\\/]/.test(e)) { + l = e.slice(0, 2) + l; + } + (function E(e, s) { + if (e === s) return F(A + 1, u); + var i = o[e]; + n(l + i, {pathExt: a}, function (A, n) { + if (!A && n) { + if (t.all) c.push(l + i); + else return r(null, l + i); + } + return E(e + 1, s); + }); + })(0, o.length); + })(0, i.length); + } + function whichSync(e, t) { + t = t || {}; + var r = getPathInfo(e, t); + var A = r.env; + var i = r.ext; + var o = r.extExe; + var a = []; + for (var c = 0, u = A.length; c < u; c++) { + var g = A[c]; + if (g.charAt(0) === '"' && g.slice(-1) === '"') g = g.slice(1, -1); + var l = s.join(g, e); + if (!g && /^\.[\\\/]/.test(e)) { + l = e.slice(0, 2) + l; + } + for (var p = 0, d = i.length; p < d; p++) { + var h = l + i[p]; + var C; + try { + C = n.sync(h, {pathExt: o}); + if (C) { + if (t.all) a.push(h); + else return h; + } + } catch (e) {} + } + } + if (t.all && a.length) return a; + if (t.nothrow) return null; + throw getNotFoundError(e); + } + }, + 5607: function (e, t, r) { + 'use strict'; + var A = + (this && this.__awaiter) || + function (e, t, r, A) { + return new (r || (r = Promise))(function (s, i) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + i(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + i(e); + } + } + function step(e) { + e.done + ? s(e.value) + : new r(function (t) { + t(e.value); + }).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + Object.defineProperty(t, '__esModule', {value: true}); + const s = r(2830); + const i = r(9248); + const n = s('github-cherry-pick'); + const getCommitMessageToSkipCI = (e) => `${e} [skip ci]\n\n\nskip-checks: true\n`; + const createCommit = ({ + author: e, + committer: t, + message: r, + octokit: s, + owner: i, + parent: n, + repo: o, + tree: a, + }) => + A(this, void 0, void 0, function* () { + const { + data: {sha: A}, + } = yield s.git.createCommit({ + author: e, + committer: t, + message: r, + owner: i, + parents: [n], + repo: o, + tree: a, + }); + return A; + }); + const merge = ({base: e, commit: t, octokit: r, owner: s, repo: i}) => + A(this, void 0, void 0, function* () { + const { + data: { + commit: { + tree: {sha: A}, + }, + }, + } = yield r.repos.merge({ + base: e, + commit_message: getCommitMessageToSkipCI(`Merge ${t} into ${e}`), + head: t, + owner: s, + repo: i, + }); + return A; + }); + const retrieveCommitDetails = ({commit: e, octokit: t, owner: r, repo: s}) => + A(this, void 0, void 0, function* () { + const { + data: {author: A, committer: i, message: n, parents: o}, + } = yield t.git.getCommit({commit_sha: e, owner: r, repo: s}); + if (o.length > 1) { + throw new Error( + `Commit ${e} has ${o.length} parents.` + + ` github-cherry-pick is designed for the rebase workflow and doesn't support merge commits.`, + ); + } + return {author: A, committer: i, message: n, parent: o[0].sha}; + }); + const createSiblingCommit = ({ + commit: e, + head: {author: t, committer: r, ref: s, tree: n}, + octokit: o, + owner: a, + parent: c, + repo: u, + }) => + A(this, void 0, void 0, function* () { + const A = yield createCommit({ + author: t, + committer: r, + message: getCommitMessageToSkipCI(`Sibling of ${e}`), + octokit: o, + owner: a, + parent: c, + repo: u, + tree: n, + }); + yield i.updateRef({force: true, octokit: o, owner: a, ref: s, repo: u, sha: A}); + }); + const cherryPickCommit = ({commit: e, head: {ref: t, sha: r, tree: s}, octokit: o, owner: a, repo: c}) => + A(this, void 0, void 0, function* () { + const { + author: A, + committer: u, + message: g, + parent: l, + } = yield retrieveCommitDetails({commit: e, octokit: o, owner: a, repo: c}); + n('creating sibling commit'); + yield createSiblingCommit({ + commit: e, + head: {author: A, committer: u, ref: t, tree: s}, + octokit: o, + owner: a, + parent: l, + repo: c, + }); + n('merging'); + const p = yield merge({base: t, commit: e, octokit: o, owner: a, repo: c}); + n('creating commit with different tree', p); + const d = yield createCommit({ + author: A, + committer: u, + message: g, + octokit: o, + owner: a, + parent: r, + repo: c, + tree: p, + }); + n('updating ref', d); + yield i.updateRef({force: true, octokit: o, owner: a, ref: t, repo: c, sha: d}); + return {sha: d, tree: p}; + }); + const cherryPickCommitsOnRef = ({commits: e, initialHeadSha: t, octokit: r, owner: s, ref: i, repo: o}) => + A(this, void 0, void 0, function* () { + const { + data: { + tree: {sha: a}, + }, + } = yield r.git.getCommit({commit_sha: t, owner: s, repo: o}); + const {sha: c} = yield e.reduce( + (e, t) => + A(this, void 0, void 0, function* () { + const {sha: A, tree: a} = yield e; + n('cherry-picking', {commit: t, ref: i, sha: A}); + return cherryPickCommit({ + commit: t, + head: {ref: i, sha: A, tree: a}, + octokit: r, + owner: s, + repo: o, + }); + }), + Promise.resolve({sha: t, tree: a}), + ); + return c; + }); + const cherryPickCommits = ({ + _intercept: e = () => Promise.resolve(), + commits: t, + head: r, + octokit: s, + owner: o, + repo: a, + }) => + A(this, void 0, void 0, function* () { + n('starting', {commits: t, head: r, owner: o, repo: a}); + const c = yield i.fetchRefSha({octokit: s, owner: o, ref: r, repo: a}); + yield e({initialHeadSha: c}); + return i.withTemporaryRef({ + action: (e) => + A(this, void 0, void 0, function* () { + n({temporaryRef: e}); + const A = yield cherryPickCommitsOnRef({ + commits: t, + initialHeadSha: c, + octokit: s, + owner: o, + ref: e, + repo: a, + }); + n('updating ref with new SHA', A); + yield i.updateRef({force: false, octokit: s, owner: o, ref: r, repo: a, sha: A}); + n('ref updated'); + return A; + }), + octokit: s, + owner: o, + ref: `cherry-pick-${r}`, + repo: a, + sha: c, + }); + }); + t.cherryPickCommits = cherryPickCommits; + }, + 1588: (e, t) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + const getCommitSubjectAndBody = (e) => { + const [t, ...r] = e.split(/(\r\n|\r|\n){2}/u); + return { + body: r + .map((e) => e.trim()) + .filter((e) => e !== '') + .join('\n'), + subject: t, + }; + }; + const getAutosquashMode = ({commitDetails: e, message: t}) => { + const r = new RegExp( + `^(fixup|squash)! (fixup! |squash! )*(${getCommitSubjectAndBody(e.message).subject}|${ + e.sha + }|${e.sha.substr(7)})$`, + 'u', + ).exec(getCommitSubjectAndBody(t).subject); + if (!r) { + return null; + } + return r[1] === 'fixup' ? 'fixup' : 'squash'; + }; + const getNewAutosquashMessage = ({commitsDetails: e, message: t, mode: r, step: A}) => { + const s = + A.autosquashMessage === null ? e.find(({sha: e}) => e === A.shas[0]).message : A.autosquashMessage; + return r === 'squash' ? `${s}\n\n${t}` : s; + }; + const groupNonAutosquashingSteps = ({newStep: e, steps: t}) => + e.autosquashMessage === null && t.length > 0 && t[t.length - 1].autosquashMessage === null + ? [...t.slice(0, -1), {autosquashMessage: null, shas: [...t[t.length - 1].shas, ...e.shas]}] + : [...t, e]; + const getAutosquashingSteps = (e) => { + const t = new Set(); + const r = []; + return e.reduce((r, A) => { + if (t.has(A.sha)) { + return r; + } + t.add(A.sha); + const s = {autosquashMessage: null, shas: [A.sha]}; + const i = e + .filter(({sha: e}) => !t.has(e)) + .reduce((r, {message: s, sha: i}) => { + const n = getAutosquashMode({commitDetails: A, message: s}); + if (n === null) { + return r; + } + t.add(i); + return { + autosquashMessage: getNewAutosquashMessage({ + commitsDetails: e, + message: s, + mode: n, + step: r, + }), + shas: [...r.shas, i], + }; + }, s); + return groupNonAutosquashingSteps({newStep: i, steps: r}); + }, r); + }; + t.getAutosquashingSteps = getAutosquashingSteps; + }, + 6378: function (e, t, r) { + 'use strict'; + var A = + (this && this.__awaiter) || + function (e, t, r, A) { + return new (r || (r = Promise))(function (s, i) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + i(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + i(e); + } + } + function step(e) { + e.done + ? s(e.value) + : new r(function (t) { + t(e.value); + }).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + Object.defineProperty(t, '__esModule', {value: true}); + const s = r(2830); + const i = r(5607); + const n = r(9248); + const o = r(1588); + const a = s('github-rebase'); + const needAutosquashing = ({octokit: e, owner: t, pullRequestNumber: r, repo: s}) => + A(this, void 0, void 0, function* () { + const A = yield n.fetchCommitsDetails({octokit: e, owner: t, pullRequestNumber: r, repo: s}); + const i = o.getAutosquashingSteps(A); + return i.length > 1 || (i[0] && i[0].autosquashMessage !== null); + }); + t.needAutosquashing = needAutosquashing; + const autosquash = ({ + commitsDetails: e, + octokit: t, + owner: r, + parent: s, + ref: i, + refSha: o, + repo: a, + step: c, + }) => + A(this, void 0, void 0, function* () { + const {author: A, committer: u} = e.find(({sha: e}) => e === c.shas[0]); + const { + data: { + tree: {sha: g}, + }, + } = yield t.git.getCommit({commit_sha: o, owner: r, repo: a}); + const { + data: {sha: l}, + } = yield t.git.createCommit({ + author: A, + committer: u, + message: String(c.autosquashMessage), + owner: r, + parents: [s], + repo: a, + tree: g, + }); + yield n.updateRef({force: true, octokit: t, owner: r, ref: i, repo: a, sha: l}); + return l; + }); + const performRebase = ({commitsDetails: e, octokit: t, owner: r, ref: s, repo: a}) => + A(this, void 0, void 0, function* () { + const c = yield n.fetchRefSha({octokit: t, owner: r, ref: s, repo: a}); + const u = yield o.getAutosquashingSteps(e).reduce( + (n, o) => + A(this, void 0, void 0, function* () { + const A = yield n; + const c = yield i.cherryPickCommits({ + commits: o.shas, + head: s, + octokit: t, + owner: r, + repo: a, + }); + if (o.autosquashMessage === null) { + return c; + } + return autosquash({ + commitsDetails: e, + octokit: t, + owner: r, + parent: A, + ref: s, + refSha: c, + repo: a, + step: o, + }); + }), + Promise.resolve(c), + ); + return u; + }); + const checkSameHead = ({octokit: e, owner: t, ref: r, repo: s, sha: i}) => + A(this, void 0, void 0, function* () { + const A = yield n.fetchRefSha({octokit: e, owner: t, ref: r, repo: s}); + if (A !== i) { + throw new Error( + [ + `Rebase aborted because the head branch changed.`, + `The current SHA of ${r} is ${A} but it was expected to still be ${i}.`, + ].join('\n'), + ); + } + }); + const rebasePullRequest = ({ + _intercept: e = () => Promise.resolve(), + octokit: t, + owner: r, + pullRequestNumber: s, + repo: i, + }) => + A(this, void 0, void 0, function* () { + a('starting', {pullRequestNumber: s, owner: r, repo: i}); + const { + data: { + base: {ref: o}, + head: {ref: c, sha: u}, + }, + } = yield t.pulls.get({owner: r, pull_number: s, repo: i}); + const g = yield n.fetchRefSha({octokit: t, owner: r, ref: o, repo: i}); + const l = yield n.fetchCommitsDetails({octokit: t, owner: r, pullRequestNumber: s, repo: i}); + a('commits details fetched', {baseInitialSha: g, commitsDetails: l, headRef: c, initialHeadSha: u}); + yield e({initialHeadSha: u}); + return n.withTemporaryRef({ + action: (e) => + A(this, void 0, void 0, function* () { + a({temporaryRef: e}); + const A = yield performRebase({ + commitsDetails: l, + octokit: t, + owner: r, + ref: e, + repo: i, + }); + yield checkSameHead({octokit: t, owner: r, ref: c, repo: i, sha: u}); + a('updating ref with new SHA', A); + yield n.updateRef({force: true, octokit: t, owner: r, ref: c, repo: i, sha: A}); + a('ref updated'); + return A; + }), + octokit: t, + owner: r, + ref: `rebase-pull-request-${s}`, + repo: i, + sha: g, + }); + }); + t.rebasePullRequest = rebasePullRequest; + }, + 3813: (e) => { + 'use strict'; + e.exports = (e, t = process.argv) => { + const r = e.startsWith('-') ? '' : e.length === 1 ? '-' : '--'; + const A = t.indexOf(r + e); + const s = t.indexOf('--'); + return A !== -1 && (s === -1 || A < s); + }; + }, + 2940: (e, t, r) => { + var A = r(9896); + var s; + if (process.platform === 'win32' || global.TESTING_WINDOWS) { + s = r(9225); + } else { + s = r(1025); + } + e.exports = isexe; + isexe.sync = sync; + function isexe(e, t, r) { + if (typeof t === 'function') { + r = t; + t = {}; + } + if (!r) { + if (typeof Promise !== 'function') { + throw new TypeError('callback not provided'); + } + return new Promise(function (r, A) { + isexe(e, t || {}, function (e, t) { + if (e) { + A(e); + } else { + r(t); + } + }); + }); + } + s(e, t || {}, function (e, A) { + if (e) { + if (e.code === 'EACCES' || (t && t.ignoreErrors)) { + e = null; + A = false; + } + } + r(e, A); + }); + } + function sync(e, t) { + try { + return s.sync(e, t || {}); + } catch (e) { + if ((t && t.ignoreErrors) || e.code === 'EACCES') { + return false; + } else { + throw e; + } + } + } + }, + 1025: (e, t, r) => { + e.exports = isexe; + isexe.sync = sync; + var A = r(9896); + function isexe(e, t, r) { + A.stat(e, function (e, A) { + r(e, e ? false : checkStat(A, t)); + }); + } + function sync(e, t) { + return checkStat(A.statSync(e), t); + } + function checkStat(e, t) { + return e.isFile() && checkMode(e, t); + } + function checkMode(e, t) { + var r = e.mode; + var A = e.uid; + var s = e.gid; + var i = t.uid !== undefined ? t.uid : process.getuid && process.getuid(); + var n = t.gid !== undefined ? t.gid : process.getgid && process.getgid(); + var o = parseInt('100', 8); + var a = parseInt('010', 8); + var c = parseInt('001', 8); + var u = o | a; + var g = r & c || (r & a && s === n) || (r & o && A === i) || (r & u && i === 0); + return g; + } + }, + 9225: (e, t, r) => { + e.exports = isexe; + isexe.sync = sync; + var A = r(9896); + function checkPathExt(e, t) { + var r = t.pathExt !== undefined ? t.pathExt : process.env.PATHEXT; + if (!r) { + return true; + } + r = r.split(';'); + if (r.indexOf('') !== -1) { + return true; + } + for (var A = 0; A < r.length; A++) { + var s = r[A].toLowerCase(); + if (s && e.substr(-s.length).toLowerCase() === s) { + return true; + } + } + return false; + } + function checkStat(e, t, r) { + if (!e.isSymbolicLink() && !e.isFile()) { + return false; + } + return checkPathExt(t, r); + } + function isexe(e, t, r) { + A.stat(e, function (A, s) { + r(A, A ? false : checkStat(s, e, t)); + }); + } + function sync(e, t) { + return checkStat(A.statSync(e), e, t); + } + }, + 615: (e) => { + var t = 'Expected a function'; + var r = '__lodash_hash_undefined__'; + var A = 1 / 0; + var s = '[object Function]', + i = '[object GeneratorFunction]', + n = '[object Symbol]'; + var o = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + a = /^\w*$/, + c = /^\./, + u = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + var g = /[\\^$.*+?()[\]{}|]/g; + var l = /\\(\\)?/g; + var p = /^\[object .+?Constructor\]$/; + var d = typeof global == 'object' && global && global.Object === Object && global; + var h = typeof self == 'object' && self && self.Object === Object && self; + var C = d || h || Function('return this')(); + function getValue(e, t) { + return e == null ? undefined : e[t]; + } + function isHostObject(e) { + var t = false; + if (e != null && typeof e.toString != 'function') { + try { + t = !!(e + ''); + } catch (e) {} + } + return t; + } + var Q = Array.prototype, + B = Function.prototype, + I = Object.prototype; + var m = C['__core-js_shared__']; + var y = (function () { + var e = /[^.]+$/.exec((m && m.keys && m.keys.IE_PROTO) || ''); + return e ? 'Symbol(src)_1.' + e : ''; + })(); + var b = B.toString; + var w = I.hasOwnProperty; + var R = I.toString; + var k = RegExp( + '^' + + b + .call(w) + .replace(g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + + '$', + ); + var D = C.Symbol, + S = Q.splice; + var v = getNative(C, 'Map'), + N = getNative(Object, 'create'); + var q = D ? D.prototype : undefined, + T = q ? q.toString : undefined; + function Hash(e) { + var t = -1, + r = e ? e.length : 0; + this.clear(); + while (++t < r) { + var A = e[t]; + this.set(A[0], A[1]); + } + } + function hashClear() { + this.__data__ = N ? N(null) : {}; + } + function hashDelete(e) { + return this.has(e) && delete this.__data__[e]; + } + function hashGet(e) { + var t = this.__data__; + if (N) { + var A = t[e]; + return A === r ? undefined : A; + } + return w.call(t, e) ? t[e] : undefined; + } + function hashHas(e) { + var t = this.__data__; + return N ? t[e] !== undefined : w.call(t, e); + } + function hashSet(e, t) { + var A = this.__data__; + A[e] = N && t === undefined ? r : t; + return this; + } + Hash.prototype.clear = hashClear; + Hash.prototype['delete'] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + function ListCache(e) { + var t = -1, + r = e ? e.length : 0; + this.clear(); + while (++t < r) { + var A = e[t]; + this.set(A[0], A[1]); + } + } + function listCacheClear() { + this.__data__ = []; + } + function listCacheDelete(e) { + var t = this.__data__, + r = assocIndexOf(t, e); + if (r < 0) { + return false; + } + var A = t.length - 1; + if (r == A) { + t.pop(); + } else { + S.call(t, r, 1); + } + return true; + } + function listCacheGet(e) { + var t = this.__data__, + r = assocIndexOf(t, e); + return r < 0 ? undefined : t[r][1]; + } + function listCacheHas(e) { + return assocIndexOf(this.__data__, e) > -1; + } + function listCacheSet(e, t) { + var r = this.__data__, + A = assocIndexOf(r, e); + if (A < 0) { + r.push([e, t]); + } else { + r[A][1] = t; + } + return this; + } + ListCache.prototype.clear = listCacheClear; + ListCache.prototype['delete'] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + function MapCache(e) { + var t = -1, + r = e ? e.length : 0; + this.clear(); + while (++t < r) { + var A = e[t]; + this.set(A[0], A[1]); + } + } + function mapCacheClear() { + this.__data__ = {hash: new Hash(), map: new (v || ListCache)(), string: new Hash()}; + } + function mapCacheDelete(e) { + return getMapData(this, e)['delete'](e); + } + function mapCacheGet(e) { + return getMapData(this, e).get(e); + } + function mapCacheHas(e) { + return getMapData(this, e).has(e); + } + function mapCacheSet(e, t) { + getMapData(this, e).set(e, t); + return this; + } + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype['delete'] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + function assocIndexOf(e, t) { + var r = e.length; + while (r--) { + if (eq(e[r][0], t)) { + return r; + } + } + return -1; + } + function baseGet(e, t) { + t = isKey(t, e) ? [t] : castPath(t); + var r = 0, + A = t.length; + while (e != null && r < A) { + e = e[toKey(t[r++])]; + } + return r && r == A ? e : undefined; + } + function baseIsNative(e) { + if (!isObject(e) || isMasked(e)) { + return false; + } + var t = isFunction(e) || isHostObject(e) ? k : p; + return t.test(toSource(e)); + } + function baseToString(e) { + if (typeof e == 'string') { + return e; + } + if (isSymbol(e)) { + return T ? T.call(e) : ''; + } + var t = e + ''; + return t == '0' && 1 / e == -A ? '-0' : t; + } + function castPath(e) { + return U(e) ? e : _(e); + } + function getMapData(e, t) { + var r = e.__data__; + return isKeyable(t) ? r[typeof t == 'string' ? 'string' : 'hash'] : r.map; + } + function getNative(e, t) { + var r = getValue(e, t); + return baseIsNative(r) ? r : undefined; + } + function isKey(e, t) { + if (U(e)) { + return false; + } + var r = typeof e; + if (r == 'number' || r == 'symbol' || r == 'boolean' || e == null || isSymbol(e)) { + return true; + } + return a.test(e) || !o.test(e) || (t != null && e in Object(t)); + } + function isKeyable(e) { + var t = typeof e; + return t == 'string' || t == 'number' || t == 'symbol' || t == 'boolean' + ? e !== '__proto__' + : e === null; + } + function isMasked(e) { + return !!y && y in e; + } + var _ = memoize(function (e) { + e = toString(e); + var t = []; + if (c.test(e)) { + t.push(''); + } + e.replace(u, function (e, r, A, s) { + t.push(A ? s.replace(l, '$1') : r || e); + }); + return t; + }); + function toKey(e) { + if (typeof e == 'string' || isSymbol(e)) { + return e; + } + var t = e + ''; + return t == '0' && 1 / e == -A ? '-0' : t; + } + function toSource(e) { + if (e != null) { + try { + return b.call(e); + } catch (e) {} + try { + return e + ''; + } catch (e) {} + } + return ''; + } + function memoize(e, r) { + if (typeof e != 'function' || (r && typeof r != 'function')) { + throw new TypeError(t); + } + var memoized = function () { + var t = arguments, + A = r ? r.apply(this, t) : t[0], + s = memoized.cache; + if (s.has(A)) { + return s.get(A); + } + var i = e.apply(this, t); + memoized.cache = s.set(A, i); + return i; + }; + memoized.cache = new (memoize.Cache || MapCache)(); + return memoized; + } + memoize.Cache = MapCache; + function eq(e, t) { + return e === t || (e !== e && t !== t); + } + var U = Array.isArray; + function isFunction(e) { + var t = isObject(e) ? R.call(e) : ''; + return t == s || t == i; + } + function isObject(e) { + var t = typeof e; + return !!e && (t == 'object' || t == 'function'); + } + function isObjectLike(e) { + return !!e && typeof e == 'object'; + } + function isSymbol(e) { + return typeof e == 'symbol' || (isObjectLike(e) && R.call(e) == n); + } + function toString(e) { + return e == null ? '' : baseToString(e); + } + function get(e, t, r) { + var A = e == null ? undefined : baseGet(e, t); + return A === undefined ? r : A; + } + e.exports = get; + }, + 8203: (e) => { + var t = 'Expected a function'; + var r = '__lodash_hash_undefined__'; + var A = 1 / 0, + s = 9007199254740991; + var i = '[object Function]', + n = '[object GeneratorFunction]', + o = '[object Symbol]'; + var a = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + c = /^\w*$/, + u = /^\./, + g = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + var l = /[\\^$.*+?()[\]{}|]/g; + var p = /\\(\\)?/g; + var d = /^\[object .+?Constructor\]$/; + var h = /^(?:0|[1-9]\d*)$/; + var C = typeof global == 'object' && global && global.Object === Object && global; + var Q = typeof self == 'object' && self && self.Object === Object && self; + var B = C || Q || Function('return this')(); + function getValue(e, t) { + return e == null ? undefined : e[t]; + } + function isHostObject(e) { + var t = false; + if (e != null && typeof e.toString != 'function') { + try { + t = !!(e + ''); + } catch (e) {} + } + return t; + } + var I = Array.prototype, + m = Function.prototype, + y = Object.prototype; + var b = B['__core-js_shared__']; + var w = (function () { + var e = /[^.]+$/.exec((b && b.keys && b.keys.IE_PROTO) || ''); + return e ? 'Symbol(src)_1.' + e : ''; + })(); + var R = m.toString; + var k = y.hasOwnProperty; + var D = y.toString; + var S = RegExp( + '^' + + R.call(k) + .replace(l, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + + '$', + ); + var v = B.Symbol, + N = I.splice; + var q = getNative(B, 'Map'), + T = getNative(Object, 'create'); + var _ = v ? v.prototype : undefined, + U = _ ? _.toString : undefined; + function Hash(e) { + var t = -1, + r = e ? e.length : 0; + this.clear(); + while (++t < r) { + var A = e[t]; + this.set(A[0], A[1]); + } + } + function hashClear() { + this.__data__ = T ? T(null) : {}; + } + function hashDelete(e) { + return this.has(e) && delete this.__data__[e]; + } + function hashGet(e) { + var t = this.__data__; + if (T) { + var A = t[e]; + return A === r ? undefined : A; + } + return k.call(t, e) ? t[e] : undefined; + } + function hashHas(e) { + var t = this.__data__; + return T ? t[e] !== undefined : k.call(t, e); + } + function hashSet(e, t) { + var A = this.__data__; + A[e] = T && t === undefined ? r : t; + return this; + } + Hash.prototype.clear = hashClear; + Hash.prototype['delete'] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + function ListCache(e) { + var t = -1, + r = e ? e.length : 0; + this.clear(); + while (++t < r) { + var A = e[t]; + this.set(A[0], A[1]); + } + } + function listCacheClear() { + this.__data__ = []; + } + function listCacheDelete(e) { + var t = this.__data__, + r = assocIndexOf(t, e); + if (r < 0) { + return false; + } + var A = t.length - 1; + if (r == A) { + t.pop(); + } else { + N.call(t, r, 1); + } + return true; + } + function listCacheGet(e) { + var t = this.__data__, + r = assocIndexOf(t, e); + return r < 0 ? undefined : t[r][1]; + } + function listCacheHas(e) { + return assocIndexOf(this.__data__, e) > -1; + } + function listCacheSet(e, t) { + var r = this.__data__, + A = assocIndexOf(r, e); + if (A < 0) { + r.push([e, t]); + } else { + r[A][1] = t; + } + return this; + } + ListCache.prototype.clear = listCacheClear; + ListCache.prototype['delete'] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + function MapCache(e) { + var t = -1, + r = e ? e.length : 0; + this.clear(); + while (++t < r) { + var A = e[t]; + this.set(A[0], A[1]); + } + } + function mapCacheClear() { + this.__data__ = {hash: new Hash(), map: new (q || ListCache)(), string: new Hash()}; + } + function mapCacheDelete(e) { + return getMapData(this, e)['delete'](e); + } + function mapCacheGet(e) { + return getMapData(this, e).get(e); + } + function mapCacheHas(e) { + return getMapData(this, e).has(e); + } + function mapCacheSet(e, t) { + getMapData(this, e).set(e, t); + return this; + } + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype['delete'] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + function assignValue(e, t, r) { + var A = e[t]; + if (!(k.call(e, t) && eq(A, r)) || (r === undefined && !(t in e))) { + e[t] = r; + } + } + function assocIndexOf(e, t) { + var r = e.length; + while (r--) { + if (eq(e[r][0], t)) { + return r; + } + } + return -1; + } + function baseIsNative(e) { + if (!isObject(e) || isMasked(e)) { + return false; + } + var t = isFunction(e) || isHostObject(e) ? S : d; + return t.test(toSource(e)); + } + function baseSet(e, t, r, A) { + if (!isObject(e)) { + return e; + } + t = isKey(t, e) ? [t] : castPath(t); + var s = -1, + i = t.length, + n = i - 1, + o = e; + while (o != null && ++s < i) { + var a = toKey(t[s]), + c = r; + if (s != n) { + var u = o[a]; + c = A ? A(u, a, o) : undefined; + if (c === undefined) { + c = isObject(u) ? u : isIndex(t[s + 1]) ? [] : {}; + } + } + assignValue(o, a, c); + o = o[a]; + } + return e; + } + function baseToString(e) { + if (typeof e == 'string') { + return e; + } + if (isSymbol(e)) { + return U ? U.call(e) : ''; + } + var t = e + ''; + return t == '0' && 1 / e == -A ? '-0' : t; + } + function castPath(e) { + return M(e) ? e : L(e); + } + function getMapData(e, t) { + var r = e.__data__; + return isKeyable(t) ? r[typeof t == 'string' ? 'string' : 'hash'] : r.map; + } + function getNative(e, t) { + var r = getValue(e, t); + return baseIsNative(r) ? r : undefined; + } + function isIndex(e, t) { + t = t == null ? s : t; + return !!t && (typeof e == 'number' || h.test(e)) && e > -1 && e % 1 == 0 && e < t; + } + function isKey(e, t) { + if (M(e)) { + return false; + } + var r = typeof e; + if (r == 'number' || r == 'symbol' || r == 'boolean' || e == null || isSymbol(e)) { + return true; + } + return c.test(e) || !a.test(e) || (t != null && e in Object(t)); + } + function isKeyable(e) { + var t = typeof e; + return t == 'string' || t == 'number' || t == 'symbol' || t == 'boolean' + ? e !== '__proto__' + : e === null; + } + function isMasked(e) { + return !!w && w in e; + } + var L = memoize(function (e) { + e = toString(e); + var t = []; + if (u.test(e)) { + t.push(''); + } + e.replace(g, function (e, r, A, s) { + t.push(A ? s.replace(p, '$1') : r || e); + }); + return t; + }); + function toKey(e) { + if (typeof e == 'string' || isSymbol(e)) { + return e; + } + var t = e + ''; + return t == '0' && 1 / e == -A ? '-0' : t; + } + function toSource(e) { + if (e != null) { + try { + return R.call(e); + } catch (e) {} + try { + return e + ''; + } catch (e) {} + } + return ''; + } + function memoize(e, r) { + if (typeof e != 'function' || (r && typeof r != 'function')) { + throw new TypeError(t); + } + var memoized = function () { + var t = arguments, + A = r ? r.apply(this, t) : t[0], + s = memoized.cache; + if (s.has(A)) { + return s.get(A); + } + var i = e.apply(this, t); + memoized.cache = s.set(A, i); + return i; + }; + memoized.cache = new (memoize.Cache || MapCache)(); + return memoized; + } + memoize.Cache = MapCache; + function eq(e, t) { + return e === t || (e !== e && t !== t); + } + var M = Array.isArray; + function isFunction(e) { + var t = isObject(e) ? D.call(e) : ''; + return t == i || t == n; + } + function isObject(e) { + var t = typeof e; + return !!e && (t == 'object' || t == 'function'); + } + function isObjectLike(e) { + return !!e && typeof e == 'object'; + } + function isSymbol(e) { + return typeof e == 'symbol' || (isObjectLike(e) && D.call(e) == o); + } + function toString(e) { + return e == null ? '' : baseToString(e); + } + function set(e, t, r) { + return e == null ? e : baseSet(e, t, r); + } + e.exports = set; + }, + 8620: (e) => { + var t = 200; + var r = '__lodash_hash_undefined__'; + var A = 1 / 0; + var s = '[object Function]', + i = '[object GeneratorFunction]'; + var n = /[\\^$.*+?()[\]{}|]/g; + var o = /^\[object .+?Constructor\]$/; + var a = typeof global == 'object' && global && global.Object === Object && global; + var c = typeof self == 'object' && self && self.Object === Object && self; + var u = a || c || Function('return this')(); + function arrayIncludes(e, t) { + var r = e ? e.length : 0; + return !!r && baseIndexOf(e, t, 0) > -1; + } + function arrayIncludesWith(e, t, r) { + var A = -1, + s = e ? e.length : 0; + while (++A < s) { + if (r(t, e[A])) { + return true; + } + } + return false; + } + function baseFindIndex(e, t, r, A) { + var s = e.length, + i = r + (A ? 1 : -1); + while (A ? i-- : ++i < s) { + if (t(e[i], i, e)) { + return i; + } + } + return -1; + } + function baseIndexOf(e, t, r) { + if (t !== t) { + return baseFindIndex(e, baseIsNaN, r); + } + var A = r - 1, + s = e.length; + while (++A < s) { + if (e[A] === t) { + return A; + } + } + return -1; + } + function baseIsNaN(e) { + return e !== e; + } + function cacheHas(e, t) { + return e.has(t); + } + function getValue(e, t) { + return e == null ? undefined : e[t]; + } + function isHostObject(e) { + var t = false; + if (e != null && typeof e.toString != 'function') { + try { + t = !!(e + ''); + } catch (e) {} + } + return t; + } + function setToArray(e) { + var t = -1, + r = Array(e.size); + e.forEach(function (e) { + r[++t] = e; + }); + return r; + } + var g = Array.prototype, + l = Function.prototype, + p = Object.prototype; + var d = u['__core-js_shared__']; + var h = (function () { + var e = /[^.]+$/.exec((d && d.keys && d.keys.IE_PROTO) || ''); + return e ? 'Symbol(src)_1.' + e : ''; + })(); + var C = l.toString; + var Q = p.hasOwnProperty; + var B = p.toString; + var I = RegExp( + '^' + + C.call(Q) + .replace(n, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + + '$', + ); + var m = g.splice; + var y = getNative(u, 'Map'), + b = getNative(u, 'Set'), + w = getNative(Object, 'create'); + function Hash(e) { + var t = -1, + r = e ? e.length : 0; + this.clear(); + while (++t < r) { + var A = e[t]; + this.set(A[0], A[1]); + } + } + function hashClear() { + this.__data__ = w ? w(null) : {}; + } + function hashDelete(e) { + return this.has(e) && delete this.__data__[e]; + } + function hashGet(e) { + var t = this.__data__; + if (w) { + var A = t[e]; + return A === r ? undefined : A; + } + return Q.call(t, e) ? t[e] : undefined; + } + function hashHas(e) { + var t = this.__data__; + return w ? t[e] !== undefined : Q.call(t, e); + } + function hashSet(e, t) { + var A = this.__data__; + A[e] = w && t === undefined ? r : t; + return this; + } + Hash.prototype.clear = hashClear; + Hash.prototype['delete'] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + function ListCache(e) { + var t = -1, + r = e ? e.length : 0; + this.clear(); + while (++t < r) { + var A = e[t]; + this.set(A[0], A[1]); + } + } + function listCacheClear() { + this.__data__ = []; + } + function listCacheDelete(e) { + var t = this.__data__, + r = assocIndexOf(t, e); + if (r < 0) { + return false; + } + var A = t.length - 1; + if (r == A) { + t.pop(); + } else { + m.call(t, r, 1); + } + return true; + } + function listCacheGet(e) { + var t = this.__data__, + r = assocIndexOf(t, e); + return r < 0 ? undefined : t[r][1]; + } + function listCacheHas(e) { + return assocIndexOf(this.__data__, e) > -1; + } + function listCacheSet(e, t) { + var r = this.__data__, + A = assocIndexOf(r, e); + if (A < 0) { + r.push([e, t]); + } else { + r[A][1] = t; + } + return this; + } + ListCache.prototype.clear = listCacheClear; + ListCache.prototype['delete'] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + function MapCache(e) { + var t = -1, + r = e ? e.length : 0; + this.clear(); + while (++t < r) { + var A = e[t]; + this.set(A[0], A[1]); + } + } + function mapCacheClear() { + this.__data__ = {hash: new Hash(), map: new (y || ListCache)(), string: new Hash()}; + } + function mapCacheDelete(e) { + return getMapData(this, e)['delete'](e); + } + function mapCacheGet(e) { + return getMapData(this, e).get(e); + } + function mapCacheHas(e) { + return getMapData(this, e).has(e); + } + function mapCacheSet(e, t) { + getMapData(this, e).set(e, t); + return this; + } + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype['delete'] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + function SetCache(e) { + var t = -1, + r = e ? e.length : 0; + this.__data__ = new MapCache(); + while (++t < r) { + this.add(e[t]); + } + } + function setCacheAdd(e) { + this.__data__.set(e, r); + return this; + } + function setCacheHas(e) { + return this.__data__.has(e); + } + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + function assocIndexOf(e, t) { + var r = e.length; + while (r--) { + if (eq(e[r][0], t)) { + return r; + } + } + return -1; + } + function baseIsNative(e) { + if (!isObject(e) || isMasked(e)) { + return false; + } + var t = isFunction(e) || isHostObject(e) ? I : o; + return t.test(toSource(e)); + } + function baseUniq(e, r, A) { + var s = -1, + i = arrayIncludes, + n = e.length, + o = true, + a = [], + c = a; + if (A) { + o = false; + i = arrayIncludesWith; + } else if (n >= t) { + var u = r ? null : R(e); + if (u) { + return setToArray(u); + } + o = false; + i = cacheHas; + c = new SetCache(); + } else { + c = r ? [] : a; + } + e: while (++s < n) { + var g = e[s], + l = r ? r(g) : g; + g = A || g !== 0 ? g : 0; + if (o && l === l) { + var p = c.length; + while (p--) { + if (c[p] === l) { + continue e; + } + } + if (r) { + c.push(l); + } + a.push(g); + } else if (!i(c, l, A)) { + if (c !== a) { + c.push(l); + } + a.push(g); + } + } + return a; + } + var R = !(b && 1 / setToArray(new b([, -0]))[1] == A) + ? noop + : function (e) { + return new b(e); + }; + function getMapData(e, t) { + var r = e.__data__; + return isKeyable(t) ? r[typeof t == 'string' ? 'string' : 'hash'] : r.map; + } + function getNative(e, t) { + var r = getValue(e, t); + return baseIsNative(r) ? r : undefined; + } + function isKeyable(e) { + var t = typeof e; + return t == 'string' || t == 'number' || t == 'symbol' || t == 'boolean' + ? e !== '__proto__' + : e === null; + } + function isMasked(e) { + return !!h && h in e; + } + function toSource(e) { + if (e != null) { + try { + return C.call(e); + } catch (e) {} + try { + return e + ''; + } catch (e) {} + } + return ''; + } + function uniq(e) { + return e && e.length ? baseUniq(e) : []; + } + function eq(e, t) { + return e === t || (e !== e && t !== t); + } + function isFunction(e) { + var t = isObject(e) ? B.call(e) : ''; + return t == s || t == i; + } + function isObject(e) { + var t = typeof e; + return !!e && (t == 'object' || t == 'function'); + } + function noop() {} + e.exports = uniq; + }, + 6609: (e, t, r) => { + 'use strict'; + const A = r(857); + const s = new Map([ + [19, 'Catalina'], + [18, 'Mojave'], + [17, 'High Sierra'], + [16, 'Sierra'], + [15, 'El Capitan'], + [14, 'Yosemite'], + [13, 'Mavericks'], + [12, 'Mountain Lion'], + [11, 'Lion'], + [10, 'Snow Leopard'], + [9, 'Leopard'], + [8, 'Tiger'], + [7, 'Panther'], + [6, 'Jaguar'], + [5, 'Puma'], + ]); + const macosRelease = (e) => { + e = Number((e || A.release()).split('.')[0]); + return {name: s.get(e), version: '10.' + (e - 4)}; + }; + e.exports = macosRelease; + e.exports['default'] = macosRelease; + }, + 744: (e) => { + var t = 1e3; + var r = t * 60; + var A = r * 60; + var s = A * 24; + var i = s * 7; + var n = s * 365.25; + e.exports = function (e, t) { + t = t || {}; + var r = typeof e; + if (r === 'string' && e.length > 0) { + return parse(e); + } else if (r === 'number' && isFinite(e)) { + return t.long ? fmtLong(e) : fmtShort(e); + } + throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(e)); + }; + function parse(e) { + e = String(e); + if (e.length > 100) { + return; + } + var o = + /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + e, + ); + if (!o) { + return; + } + var a = parseFloat(o[1]); + var c = (o[2] || 'ms').toLowerCase(); + switch (c) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return a * n; + case 'weeks': + case 'week': + case 'w': + return a * i; + case 'days': + case 'day': + case 'd': + return a * s; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return a * A; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return a * r; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return a * t; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return a; + default: + return undefined; + } + } + function fmtShort(e) { + var i = Math.abs(e); + if (i >= s) { + return Math.round(e / s) + 'd'; + } + if (i >= A) { + return Math.round(e / A) + 'h'; + } + if (i >= r) { + return Math.round(e / r) + 'm'; + } + if (i >= t) { + return Math.round(e / t) + 's'; + } + return e + 'ms'; + } + function fmtLong(e) { + var i = Math.abs(e); + if (i >= s) { + return plural(e, i, s, 'day'); + } + if (i >= A) { + return plural(e, i, A, 'hour'); + } + if (i >= r) { + return plural(e, i, r, 'minute'); + } + if (i >= t) { + return plural(e, i, t, 'second'); + } + return e + ' ms'; + } + function plural(e, t, r, A) { + var s = t >= r * 1.5; + return Math.round(e / r) + ' ' + A + (s ? 's' : ''); + } + }, + 3048: (e) => { + 'use strict'; + e.exports = function (e) { + try { + return e(); + } catch (e) {} + }; + }, + 6705: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + function _interopDefault(e) { + return e && typeof e === 'object' && 'default' in e ? e['default'] : e; + } + var A = _interopDefault(r(2203)); + var s = _interopDefault(r(8611)); + var i = _interopDefault(r(7016)); + var n = _interopDefault(r(5692)); + var o = _interopDefault(r(3106)); + const a = A.Readable; + const c = Symbol('buffer'); + const u = Symbol('type'); + class Blob { + constructor() { + this[u] = ''; + const e = arguments[0]; + const t = arguments[1]; + const r = []; + let A = 0; + if (e) { + const t = e; + const s = Number(t.length); + for (let e = 0; e < s; e++) { + const s = t[e]; + let i; + if (s instanceof Buffer) { + i = s; + } else if (ArrayBuffer.isView(s)) { + i = Buffer.from(s.buffer, s.byteOffset, s.byteLength); + } else if (s instanceof ArrayBuffer) { + i = Buffer.from(s); + } else if (s instanceof Blob) { + i = s[c]; + } else { + i = Buffer.from(typeof s === 'string' ? s : String(s)); + } + A += i.length; + r.push(i); + } + } + this[c] = Buffer.concat(r); + let s = t && t.type !== undefined && String(t.type).toLowerCase(); + if (s && !/[^\u0020-\u007E]/.test(s)) { + this[u] = s; + } + } + get size() { + return this[c].length; + } + get type() { + return this[u]; + } + text() { + return Promise.resolve(this[c].toString()); + } + arrayBuffer() { + const e = this[c]; + const t = e.buffer.slice(e.byteOffset, e.byteOffset + e.byteLength); + return Promise.resolve(t); + } + stream() { + const e = new a(); + e._read = function () {}; + e.push(this[c]); + e.push(null); + return e; + } + toString() { + return '[object Blob]'; + } + slice() { + const e = this.size; + const t = arguments[0]; + const r = arguments[1]; + let A, s; + if (t === undefined) { + A = 0; + } else if (t < 0) { + A = Math.max(e + t, 0); + } else { + A = Math.min(t, e); + } + if (r === undefined) { + s = e; + } else if (r < 0) { + s = Math.max(e + r, 0); + } else { + s = Math.min(r, e); + } + const i = Math.max(s - A, 0); + const n = this[c]; + const o = n.slice(A, A + i); + const a = new Blob([], {type: arguments[2]}); + a[c] = o; + return a; + } + } + Object.defineProperties(Blob.prototype, { + size: {enumerable: true}, + type: {enumerable: true}, + slice: {enumerable: true}, + }); + Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true, + }); + function FetchError(e, t, r) { + Error.call(this, e); + this.message = e; + this.type = t; + if (r) { + this.code = this.errno = r.code; + } + Error.captureStackTrace(this, this.constructor); + } + FetchError.prototype = Object.create(Error.prototype); + FetchError.prototype.constructor = FetchError; + FetchError.prototype.name = 'FetchError'; + let g; + try { + g = r(2078).convert; + } catch (e) {} + const l = Symbol('Body internals'); + const p = A.PassThrough; + function Body(e) { + var t = this; + var r = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + s = r.size; + let i = s === undefined ? 0 : s; + var n = r.timeout; + let o = n === undefined ? 0 : n; + if (e == null) { + e = null; + } else if (isURLSearchParams(e)) { + e = Buffer.from(e.toString()); + } else if (isBlob(e)); + else if (Buffer.isBuffer(e)); + else if (Object.prototype.toString.call(e) === '[object ArrayBuffer]') { + e = Buffer.from(e); + } else if (ArrayBuffer.isView(e)) { + e = Buffer.from(e.buffer, e.byteOffset, e.byteLength); + } else if (e instanceof A); + else { + e = Buffer.from(String(e)); + } + this[l] = {body: e, disturbed: false, error: null}; + this.size = i; + this.timeout = o; + if (e instanceof A) { + e.on('error', function (e) { + const r = + e.name === 'AbortError' + ? e + : new FetchError( + `Invalid response body while trying to fetch ${t.url}: ${e.message}`, + 'system', + e, + ); + t[l].error = r; + }); + } + } + Body.prototype = { + get body() { + return this[l].body; + }, + get bodyUsed() { + return this[l].disturbed; + }, + arrayBuffer() { + return consumeBody.call(this).then(function (e) { + return e.buffer.slice(e.byteOffset, e.byteOffset + e.byteLength); + }); + }, + blob() { + let e = (this.headers && this.headers.get('content-type')) || ''; + return consumeBody.call(this).then(function (t) { + return Object.assign(new Blob([], {type: e.toLowerCase()}), {[c]: t}); + }); + }, + json() { + var e = this; + return consumeBody.call(this).then(function (t) { + try { + return JSON.parse(t.toString()); + } catch (t) { + return Body.Promise.reject( + new FetchError( + `invalid json response body at ${e.url} reason: ${t.message}`, + 'invalid-json', + ), + ); + } + }); + }, + text() { + return consumeBody.call(this).then(function (e) { + return e.toString(); + }); + }, + buffer() { + return consumeBody.call(this); + }, + textConverted() { + var e = this; + return consumeBody.call(this).then(function (t) { + return convertBody(t, e.headers); + }); + }, + }; + Object.defineProperties(Body.prototype, { + body: {enumerable: true}, + bodyUsed: {enumerable: true}, + arrayBuffer: {enumerable: true}, + blob: {enumerable: true}, + json: {enumerable: true}, + text: {enumerable: true}, + }); + Body.mixIn = function (e) { + for (const t of Object.getOwnPropertyNames(Body.prototype)) { + if (!(t in e)) { + const r = Object.getOwnPropertyDescriptor(Body.prototype, t); + Object.defineProperty(e, t, r); + } + } + }; + function consumeBody() { + var e = this; + if (this[l].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + this[l].disturbed = true; + if (this[l].error) { + return Body.Promise.reject(this[l].error); + } + let t = this.body; + if (t === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + if (isBlob(t)) { + t = t.stream(); + } + if (Buffer.isBuffer(t)) { + return Body.Promise.resolve(t); + } + if (!(t instanceof A)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + let r = []; + let s = 0; + let i = false; + return new Body.Promise(function (A, n) { + let o; + if (e.timeout) { + o = setTimeout(function () { + i = true; + n( + new FetchError( + `Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`, + 'body-timeout', + ), + ); + }, e.timeout); + } + t.on('error', function (t) { + if (t.name === 'AbortError') { + i = true; + n(t); + } else { + n( + new FetchError( + `Invalid response body while trying to fetch ${e.url}: ${t.message}`, + 'system', + t, + ), + ); + } + }); + t.on('data', function (t) { + if (i || t === null) { + return; + } + if (e.size && s + t.length > e.size) { + i = true; + n(new FetchError(`content size at ${e.url} over limit: ${e.size}`, 'max-size')); + return; + } + s += t.length; + r.push(t); + }); + t.on('end', function () { + if (i) { + return; + } + clearTimeout(o); + try { + A(Buffer.concat(r, s)); + } catch (t) { + n( + new FetchError( + `Could not create Buffer from response body for ${e.url}: ${t.message}`, + 'system', + t, + ), + ); + } + }); + }); + } + function convertBody(e, t) { + if (typeof g !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + const r = t.get('content-type'); + let A = 'utf-8'; + let s, i; + if (r) { + s = /charset=([^;]*)/i.exec(r); + } + i = e.slice(0, 1024).toString(); + if (!s && i) { + s = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + this[C] = Object.create(null); + if (e instanceof Headers) { + const t = e.raw(); + const r = Object.keys(t); + for (const e of r) { + for (const r of t[e]) { + this.append(e, r); + } + } + return; + } + if (e == null); + else if (typeof e === 'object') { + const t = e[Symbol.iterator]; + if (t != null) { + if (typeof t !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + const r = []; + for (const t of e) { + if (typeof t !== 'object' || typeof t[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + r.push(Array.from(t)); + } + for (const e of r) { + if (e.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(e[0], e[1]); + } + } else { + for (const t of Object.keys(e)) { + const r = e[t]; + this.append(t, r); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + get(e) { + e = `${e}`; + validateName(e); + const t = find(this[C], e); + if (t === undefined) { + return null; + } + return this[C][t].join(', '); + } + forEach(e) { + let t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + let r = getHeaders(this); + let A = 0; + while (A < r.length) { + var s = r[A]; + const i = s[0], + n = s[1]; + e.call(t, n, i, this); + r = getHeaders(this); + A++; + } + } + set(e, t) { + e = `${e}`; + t = `${t}`; + validateName(e); + validateValue(t); + const r = find(this[C], e); + this[C][r !== undefined ? r : e] = [t]; + } + append(e, t) { + e = `${e}`; + t = `${t}`; + validateName(e); + validateValue(t); + const r = find(this[C], e); + if (r !== undefined) { + this[C][r].push(t); + } else { + this[C][e] = [t]; + } + } + has(e) { + e = `${e}`; + validateName(e); + return find(this[C], e) !== undefined; + } + delete(e) { + e = `${e}`; + validateName(e); + const t = find(this[C], e); + if (t !== undefined) { + delete this[C][t]; + } + } + raw() { + return this[C]; + } + keys() { + return createHeadersIterator(this, 'key'); + } + values() { + return createHeadersIterator(this, 'value'); + } + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } + } + Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true, + }); + Object.defineProperties(Headers.prototype, { + get: {enumerable: true}, + forEach: {enumerable: true}, + set: {enumerable: true}, + append: {enumerable: true}, + has: {enumerable: true}, + delete: {enumerable: true}, + keys: {enumerable: true}, + values: {enumerable: true}, + entries: {enumerable: true}, + }); + function getHeaders(e) { + let t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + const r = Object.keys(e[C]).sort(); + return r.map( + t === 'key' + ? function (e) { + return e.toLowerCase(); + } + : t === 'value' + ? function (t) { + return e[C][t].join(', '); + } + : function (t) { + return [t.toLowerCase(), e[C][t].join(', ')]; + }, + ); + } + const Q = Symbol('internal'); + function createHeadersIterator(e, t) { + const r = Object.create(B); + r[Q] = {target: e, kind: t, index: 0}; + return r; + } + const B = Object.setPrototypeOf( + { + next() { + if (!this || Object.getPrototypeOf(this) !== B) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + var e = this[Q]; + const t = e.target, + r = e.kind, + A = e.index; + const s = getHeaders(t, r); + const i = s.length; + if (A >= i) { + return {value: undefined, done: true}; + } + this[Q].index = A + 1; + return {value: s[A], done: false}; + }, + }, + Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())), + ); + Object.defineProperty(B, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true, + }); + function exportNodeCompatibleHeaders(e) { + const t = Object.assign({__proto__: null}, e[C]); + const r = find(e[C], 'Host'); + if (r !== undefined) { + t[r] = t[r][0]; + } + return t; + } + function createHeadersLenient(e) { + const t = new Headers(); + for (const r of Object.keys(e)) { + if (d.test(r)) { + continue; + } + if (Array.isArray(e[r])) { + for (const A of e[r]) { + if (h.test(A)) { + continue; + } + if (t[C][r] === undefined) { + t[C][r] = [A]; + } else { + t[C][r].push(A); + } + } + } else if (!h.test(e[r])) { + t[C][r] = [e[r]]; + } + } + return t; + } + const I = Symbol('Response internals'); + const m = s.STATUS_CODES; + class Response { + constructor() { + let e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + Body.call(this, e, t); + const r = t.status || 200; + const A = new Headers(t.headers); + if (e != null && !A.has('Content-Type')) { + const t = extractContentType(e); + if (t) { + A.append('Content-Type', t); + } + } + this[I] = {url: t.url, status: r, statusText: t.statusText || m[r], headers: A, counter: t.counter}; + } + get url() { + return this[I].url || ''; + } + get status() { + return this[I].status; + } + get ok() { + return this[I].status >= 200 && this[I].status < 300; + } + get redirected() { + return this[I].counter > 0; + } + get statusText() { + return this[I].statusText; + } + get headers() { + return this[I].headers; + } + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected, + }); + } + } + Body.mixIn(Response.prototype); + Object.defineProperties(Response.prototype, { + url: {enumerable: true}, + status: {enumerable: true}, + ok: {enumerable: true}, + redirected: {enumerable: true}, + statusText: {enumerable: true}, + headers: {enumerable: true}, + clone: {enumerable: true}, + }); + Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true, + }); + const y = Symbol('Request internals'); + const b = i.parse; + const w = i.format; + const R = 'destroy' in A.Readable.prototype; + function isRequest(e) { + return typeof e === 'object' && typeof e[y] === 'object'; + } + function isAbortSignal(e) { + const t = e && typeof e === 'object' && Object.getPrototypeOf(e); + return !!(t && t.constructor.name === 'AbortSignal'); + } + class Request { + constructor(e) { + let t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + let r; + if (!isRequest(e)) { + if (e && e.href) { + r = b(e.href); + } else { + r = b(`${e}`); + } + e = {}; + } else { + r = b(e.url); + } + let A = t.method || e.method || 'GET'; + A = A.toUpperCase(); + if ((t.body != null || (isRequest(e) && e.body !== null)) && (A === 'GET' || A === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + let s = t.body != null ? t.body : isRequest(e) && e.body !== null ? clone(e) : null; + Body.call(this, s, {timeout: t.timeout || e.timeout || 0, size: t.size || e.size || 0}); + const i = new Headers(t.headers || e.headers || {}); + if (s != null && !i.has('Content-Type')) { + const e = extractContentType(s); + if (e) { + i.append('Content-Type', e); + } + } + let n = isRequest(e) ? e.signal : null; + if ('signal' in t) n = t.signal; + if (n != null && !isAbortSignal(n)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + this[y] = { + method: A, + redirect: t.redirect || e.redirect || 'follow', + headers: i, + parsedURL: r, + signal: n, + }; + this.follow = t.follow !== undefined ? t.follow : e.follow !== undefined ? e.follow : 20; + this.compress = + t.compress !== undefined ? t.compress : e.compress !== undefined ? e.compress : true; + this.counter = t.counter || e.counter || 0; + this.agent = t.agent || e.agent; + } + get method() { + return this[y].method; + } + get url() { + return w(this[y].parsedURL); + } + get headers() { + return this[y].headers; + } + get redirect() { + return this[y].redirect; + } + get signal() { + return this[y].signal; + } + clone() { + return new Request(this); + } + } + Body.mixIn(Request.prototype); + Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true, + }); + Object.defineProperties(Request.prototype, { + method: {enumerable: true}, + url: {enumerable: true}, + headers: {enumerable: true}, + redirect: {enumerable: true}, + clone: {enumerable: true}, + signal: {enumerable: true}, + }); + function getNodeRequestOptions(e) { + const t = e[y].parsedURL; + const r = new Headers(e[y].headers); + if (!r.has('Accept')) { + r.set('Accept', '*/*'); + } + if (!t.protocol || !t.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + if (!/^https?:$/.test(t.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + if (e.signal && e.body instanceof A.Readable && !R) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + let s = null; + if (e.body == null && /^(POST|PUT)$/i.test(e.method)) { + s = '0'; + } + if (e.body != null) { + const t = getTotalBytes(e); + if (typeof t === 'number') { + s = String(t); + } + } + if (s) { + r.set('Content-Length', s); + } + if (!r.has('User-Agent')) { + r.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + if (e.compress && !r.has('Accept-Encoding')) { + r.set('Accept-Encoding', 'gzip,deflate'); + } + let i = e.agent; + if (typeof i === 'function') { + i = i(t); + } + if (!r.has('Connection') && !i) { + r.set('Connection', 'close'); + } + return Object.assign({}, t, {method: e.method, headers: exportNodeCompatibleHeaders(r), agent: i}); + } + function AbortError(e) { + Error.call(this, e); + this.type = 'aborted'; + this.message = e; + Error.captureStackTrace(this, this.constructor); + } + AbortError.prototype = Object.create(Error.prototype); + AbortError.prototype.constructor = AbortError; + AbortError.prototype.name = 'AbortError'; + const k = A.PassThrough; + const D = i.resolve; + function fetch(e, t) { + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + Body.Promise = fetch.Promise; + return new fetch.Promise(function (r, i) { + const a = new Request(e, t); + const c = getNodeRequestOptions(a); + const u = (c.protocol === 'https:' ? n : s).request; + const g = a.signal; + let l = null; + const p = function abort() { + let e = new AbortError('The user aborted a request.'); + i(e); + if (a.body && a.body instanceof A.Readable) { + a.body.destroy(e); + } + if (!l || !l.body) return; + l.body.emit('error', e); + }; + if (g && g.aborted) { + p(); + return; + } + const d = function abortAndFinalize() { + p(); + finalize(); + }; + const h = u(c); + let C; + if (g) { + g.addEventListener('abort', d); + } + function finalize() { + h.abort(); + if (g) g.removeEventListener('abort', d); + clearTimeout(C); + } + if (a.timeout) { + h.once('socket', function (e) { + C = setTimeout(function () { + i(new FetchError(`network timeout at: ${a.url}`, 'request-timeout')); + finalize(); + }, a.timeout); + }); + } + h.on('error', function (e) { + i(new FetchError(`request to ${a.url} failed, reason: ${e.message}`, 'system', e)); + finalize(); + }); + h.on('response', function (e) { + clearTimeout(C); + const t = createHeadersLenient(e.headers); + if (fetch.isRedirect(e.statusCode)) { + const A = t.get('Location'); + const s = A === null ? null : D(a.url, A); + switch (a.redirect) { + case 'error': + i( + new FetchError( + `uri requested responds with a redirect, redirect mode is set to error: ${a.url}`, + 'no-redirect', + ), + ); + finalize(); + return; + case 'manual': + if (s !== null) { + try { + t.set('Location', s); + } catch (e) { + i(e); + } + } + break; + case 'follow': + if (s === null) { + break; + } + if (a.counter >= a.follow) { + i(new FetchError(`maximum redirect reached at: ${a.url}`, 'max-redirect')); + finalize(); + return; + } + const A = { + headers: new Headers(a.headers), + follow: a.follow, + counter: a.counter + 1, + agent: a.agent, + compress: a.compress, + method: a.method, + body: a.body, + signal: a.signal, + timeout: a.timeout, + size: a.size, + }; + if (e.statusCode !== 303 && a.body && getTotalBytes(a) === null) { + i( + new FetchError( + 'Cannot follow redirect with body being a readable stream', + 'unsupported-redirect', + ), + ); + finalize(); + return; + } + if ( + e.statusCode === 303 || + ((e.statusCode === 301 || e.statusCode === 302) && a.method === 'POST') + ) { + A.method = 'GET'; + A.body = undefined; + A.headers.delete('content-length'); + } + r(fetch(new Request(s, A))); + finalize(); + return; + } + } + e.once('end', function () { + if (g) g.removeEventListener('abort', d); + }); + let A = e.pipe(new k()); + const s = { + url: a.url, + status: e.statusCode, + statusText: e.statusMessage, + headers: t, + size: a.size, + timeout: a.timeout, + counter: a.counter, + }; + const n = t.get('Content-Encoding'); + if ( + !a.compress || + a.method === 'HEAD' || + n === null || + e.statusCode === 204 || + e.statusCode === 304 + ) { + l = new Response(A, s); + r(l); + return; + } + const c = {flush: o.Z_SYNC_FLUSH, finishFlush: o.Z_SYNC_FLUSH}; + if (n == 'gzip' || n == 'x-gzip') { + A = A.pipe(o.createGunzip(c)); + l = new Response(A, s); + r(l); + return; + } + if (n == 'deflate' || n == 'x-deflate') { + const t = e.pipe(new k()); + t.once('data', function (e) { + if ((e[0] & 15) === 8) { + A = A.pipe(o.createInflate()); + } else { + A = A.pipe(o.createInflateRaw()); + } + l = new Response(A, s); + r(l); + }); + return; + } + if (n == 'br' && typeof o.createBrotliDecompress === 'function') { + A = A.pipe(o.createBrotliDecompress()); + l = new Response(A, s); + r(l); + return; + } + l = new Response(A, s); + r(l); + }); + writeToStream(h, a); + }); + } + fetch.isRedirect = function (e) { + return e === 301 || e === 302 || e === 303 || e === 307 || e === 308; + }; + fetch.Promise = global.Promise; + e.exports = t = fetch; + Object.defineProperty(t, '__esModule', {value: true}); + t['default'] = t; + t.Headers = Headers; + t.Request = Request; + t.Response = Response; + t.FetchError = FetchError; + }, + 4035: (e, t, r) => { + e.exports = paginationMethodsPlugin; + function paginationMethodsPlugin(e) { + e.getFirstPage = r(4350).bind(null, e); + e.getLastPage = r(5418).bind(null, e); + e.getNextPage = r(9209).bind(null, e); + e.getPreviousPage = r(4069).bind(null, e); + e.hasFirstPage = r(5746); + e.hasLastPage = r(1094); + e.hasNextPage = r(8237); + e.hasPreviousPage = r(3697); + } + }, + 6308: (e) => { + e.exports = deprecate; + const t = {}; + function deprecate(e) { + if (t[e]) { + return; + } + console.warn(`DEPRECATED (@octokit/rest): ${e}`); + t[e] = 1; + } + }, + 4350: (e, t, r) => { + e.exports = getFirstPage; + const A = r(519); + function getFirstPage(e, t, r) { + return A(e, t, 'first', r); + } + }, + 5418: (e, t, r) => { + e.exports = getLastPage; + const A = r(519); + function getLastPage(e, t, r) { + return A(e, t, 'last', r); + } + }, + 9209: (e, t, r) => { + e.exports = getNextPage; + const A = r(519); + function getNextPage(e, t, r) { + return A(e, t, 'next', r); + } + }, + 7111: (e) => { + e.exports = getPageLinks; + function getPageLinks(e) { + e = e.link || e.headers.link || ''; + const t = {}; + e.replace(/<([^>]*)>;\s*rel="([\w]*)"/g, (e, r, A) => { + t[A] = r; + }); + return t; + } + }, + 519: (e, t, r) => { + e.exports = getPage; + const A = r(6308); + const s = r(7111); + const i = r(6620); + function getPage(e, t, r, n) { + A( + `octokit.get${ + r.charAt(0).toUpperCase() + r.slice(1) + }Page() – You can use octokit.paginate or async iterators instead: https://github.com/octokit/rest.js#pagination.`, + ); + const o = s(t)[r]; + if (!o) { + const e = new i(`No ${r} page found`, 404); + return Promise.reject(e); + } + const a = {url: o, headers: applyAcceptHeader(t, n)}; + const c = e.request(a); + return c; + } + function applyAcceptHeader(e, t) { + const r = e.headers && e.headers['x-github-media-type']; + if (!r || (t && t.accept)) { + return t; + } + t = t || {}; + t.accept = 'application/vnd.' + r.replace('; param=', '.').replace('; format=', '+'); + return t; + } + }, + 4069: (e, t, r) => { + e.exports = getPreviousPage; + const A = r(519); + function getPreviousPage(e, t, r) { + return A(e, t, 'prev', r); + } + }, + 5746: (e, t, r) => { + e.exports = hasFirstPage; + const A = r(6308); + const s = r(7111); + function hasFirstPage(e) { + A( + `octokit.hasFirstPage() – You can use octokit.paginate or async iterators instead: https://github.com/octokit/rest.js#pagination.`, + ); + return s(e).first; + } + }, + 1094: (e, t, r) => { + e.exports = hasLastPage; + const A = r(6308); + const s = r(7111); + function hasLastPage(e) { + A( + `octokit.hasLastPage() – You can use octokit.paginate or async iterators instead: https://github.com/octokit/rest.js#pagination.`, + ); + return s(e).last; + } + }, + 8237: (e, t, r) => { + e.exports = hasNextPage; + const A = r(6308); + const s = r(7111); + function hasNextPage(e) { + A( + `octokit.hasNextPage() – You can use octokit.paginate or async iterators instead: https://github.com/octokit/rest.js#pagination.`, + ); + return s(e).next; + } + }, + 3697: (e, t, r) => { + e.exports = hasPreviousPage; + const A = r(6308); + const s = r(7111); + function hasPreviousPage(e) { + A( + `octokit.hasPreviousPage() – You can use octokit.paginate or async iterators instead: https://github.com/octokit/rest.js#pagination.`, + ); + return s(e).prev; + } + }, + 6620: (e) => { + e.exports = class HttpError extends Error { + constructor(e, t, r) { + super(e); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = 'HttpError'; + this.code = t; + this.headers = r; + } + }; + }, + 5560: (e, t, r) => { + var A = r(8264); + e.exports = A(once); + e.exports.strict = A(onceStrict); + once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this); + }, + configurable: true, + }); + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this); + }, + configurable: true, + }); + }); + function once(e) { + var f = function () { + if (f.called) return f.value; + f.called = true; + return (f.value = e.apply(this, arguments)); + }; + f.called = false; + return f; + } + function onceStrict(e) { + var f = function () { + if (f.called) throw new Error(f.onceError); + f.called = true; + return (f.value = e.apply(this, arguments)); + }; + var t = e.name || 'Function wrapped with `once`'; + f.onceError = t + " shouldn't be called more than once"; + f.called = false; + return f; + } + }, + 5254: (e, t, r) => { + 'use strict'; + const A = r(857); + const s = r(6609); + const i = r(1497); + const osName = (e, t) => { + if (!e && t) { + throw new Error("You can't specify a `release` without specifying `platform`"); + } + e = e || A.platform(); + let r; + if (e === 'darwin') { + if (!t && A.platform() === 'darwin') { + t = A.release(); + } + const e = t ? (Number(t.split('.')[0]) > 15 ? 'macOS' : 'OS X') : 'macOS'; + r = t ? s(t).name : ''; + return e + (r ? ' ' + r : ''); + } + if (e === 'linux') { + if (!t && A.platform() === 'linux') { + t = A.release(); + } + r = t ? t.replace(/^(\d+\.\d+).*/, '$1') : ''; + return 'Linux' + (r ? ' ' + r : ''); + } + if (e === 'win32') { + if (!t && A.platform() === 'win32') { + t = A.release(); + } + r = t ? i(t) : ''; + return 'Windows' + (r ? ' ' + r : ''); + } + return e; + }; + e.exports = osName; + }, + 2766: (e) => { + 'use strict'; + e.exports = (e, t) => { + t = t || (() => {}); + return e.then( + (e) => + new Promise((e) => { + e(t()); + }).then(() => e), + (e) => + new Promise((e) => { + e(t()); + }).then(() => { + throw e; + }), + ); + }; + }, + 6689: (e) => { + 'use strict'; + e.exports = (e) => { + e = e || {}; + const t = e.env || process.env; + const r = e.platform || process.platform; + if (r !== 'win32') { + return 'PATH'; + } + return Object.keys(t).find((e) => e.toUpperCase() === 'PATH') || 'Path'; + }; + }, + 7898: (e, t, r) => { + var A = r(5560); + var s = r(1424); + var i = r(9896); + var noop = function () {}; + var n = /^v?\.0/.test(process.version); + var isFn = function (e) { + return typeof e === 'function'; + }; + var isFS = function (e) { + if (!n) return false; + if (!i) return false; + return (e instanceof (i.ReadStream || noop) || e instanceof (i.WriteStream || noop)) && isFn(e.close); + }; + var isRequest = function (e) { + return e.setHeader && isFn(e.abort); + }; + var destroyer = function (e, t, r, i) { + i = A(i); + var n = false; + e.on('close', function () { + n = true; + }); + s(e, {readable: t, writable: r}, function (e) { + if (e) return i(e); + n = true; + i(); + }); + var o = false; + return function (t) { + if (n) return; + if (o) return; + o = true; + if (isFS(e)) return e.close(noop); + if (isRequest(e)) return e.abort(); + if (isFn(e.destroy)) return e.destroy(); + i(t || new Error('stream was destroyed')); + }; + }; + var call = function (e) { + e(); + }; + var pipe = function (e, t) { + return e.pipe(t); + }; + var pump = function () { + var e = Array.prototype.slice.call(arguments); + var t = (isFn(e[e.length - 1] || noop) && e.pop()) || noop; + if (Array.isArray(e[0])) e = e[0]; + if (e.length < 2) throw new Error('pump requires two streams per minimum'); + var r; + var A = e.map(function (s, i) { + var n = i < e.length - 1; + var o = i > 0; + return destroyer(s, n, o, function (e) { + if (!r) r = e; + if (e) A.forEach(call); + if (n) return; + A.forEach(call); + t(r); + }); + }); + return e.reduce(pipe); + }; + e.exports = pump; + }, + 9248: function (e, t, r) { + 'use strict'; + var A = + (this && this.__awaiter) || + function (e, t, r, A) { + return new (r || (r = Promise))(function (s, i) { + function fulfilled(e) { + try { + step(A.next(e)); + } catch (e) { + i(e); + } + } + function rejected(e) { + try { + step(A['throw'](e)); + } catch (e) { + i(e); + } + } + function step(e) { + e.done + ? s(e.value) + : new r(function (t) { + t(e.value); + }).then(fulfilled, rejected); + } + step((A = A.apply(e, t || [])).next()); + }); + }; + Object.defineProperty(t, '__esModule', {value: true}); + const s = r(9021); + const generateUniqueRef = (e) => `${e}-${s()}`; + t.generateUniqueRef = generateUniqueRef; + const getHeadRef = (e) => `heads/${e}`; + t.getHeadRef = getHeadRef; + const getFullyQualifiedRef = (e) => `refs/${getHeadRef(e)}`; + const fetchRefSha = ({octokit: e, owner: t, ref: r, repo: s}) => + A(this, void 0, void 0, function* () { + const { + data: { + object: {sha: A}, + }, + } = yield e.git.getRef({owner: t, ref: getHeadRef(r), repo: s}); + return A; + }); + t.fetchRefSha = fetchRefSha; + const updateRef = ({force: e, octokit: t, owner: r, ref: s, repo: i, sha: n}) => + A(this, void 0, void 0, function* () { + yield t.git.updateRef({force: e, owner: r, ref: getHeadRef(s), repo: i, sha: n}); + }); + t.updateRef = updateRef; + const deleteRef = ({octokit: e, owner: t, ref: r, repo: s}) => + A(this, void 0, void 0, function* () { + yield e.git.deleteRef({owner: t, ref: getHeadRef(r), repo: s}); + }); + t.deleteRef = deleteRef; + const createRef = ({octokit: e, owner: t, ref: r, repo: s, sha: i}) => + A(this, void 0, void 0, function* () { + yield e.git.createRef({owner: t, ref: getFullyQualifiedRef(r), repo: s, sha: i}); + }); + t.createRef = createRef; + const createTemporaryRef = ({octokit: e, owner: t, ref: r, repo: s, sha: i}) => + A(this, void 0, void 0, function* () { + const n = generateUniqueRef(r); + yield createRef({octokit: e, owner: t, ref: n, repo: s, sha: i}); + return { + deleteTemporaryRef() { + return A(this, void 0, void 0, function* () { + yield deleteRef({octokit: e, owner: t, ref: n, repo: s}); + }); + }, + temporaryRef: n, + }; + }); + t.createTemporaryRef = createTemporaryRef; + const withTemporaryRef = ({action: e, octokit: t, owner: r, ref: s, repo: i, sha: n}) => + A(this, void 0, void 0, function* () { + const {deleteTemporaryRef: A, temporaryRef: o} = yield createTemporaryRef({ + octokit: t, + owner: r, + ref: s, + repo: i, + sha: n, + }); + try { + return yield e(o); + } finally { + yield A(); + } + }); + t.withTemporaryRef = withTemporaryRef; + const getCommitsDetails = ({ + commit: { + author: e, + committer: t, + message: r, + tree: {sha: A}, + }, + sha: s, + }) => ({author: e, committer: t, message: r, sha: s, tree: A}); + const fetchCommitsDetails = ({octokit: e, owner: t, pullRequestNumber: r, repo: s}) => + A(this, void 0, void 0, function* () { + const A = e.pulls.listCommits.endpoint.merge({owner: t, pull_number: r, repo: s}); + const i = yield e.paginate(A); + return i.map(getCommitsDetails); + }); + t.fetchCommitsDetails = fetchCommitsDetails; + const fetchCommits = ({octokit: e, owner: t, pullRequestNumber: r, repo: s}) => + A(this, void 0, void 0, function* () { + const A = yield fetchCommitsDetails({octokit: e, owner: t, pullRequestNumber: r, repo: s}); + return A.map(({sha: e}) => e); + }); + t.fetchCommits = fetchCommits; + }, + 6627: (e, t, r) => { + var A = r(2613); + var s = r(1430); + var i = /^win/i.test(process.platform); + var n = r(4434); + if (typeof n !== 'function') { + n = n.EventEmitter; + } + var o; + if (process.__signal_exit_emitter__) { + o = process.__signal_exit_emitter__; + } else { + o = process.__signal_exit_emitter__ = new n(); + o.count = 0; + o.emitted = {}; + } + if (!o.infinite) { + o.setMaxListeners(Infinity); + o.infinite = true; + } + e.exports = function (e, t) { + A.equal(typeof e, 'function', 'a callback must be provided for exit handler'); + if (c === false) { + load(); + } + var r = 'exit'; + if (t && t.alwaysLast) { + r = 'afterexit'; + } + var remove = function () { + o.removeListener(r, e); + if (o.listeners('exit').length === 0 && o.listeners('afterexit').length === 0) { + unload(); + } + }; + o.on(r, e); + return remove; + }; + e.exports.unload = unload; + function unload() { + if (!c) { + return; + } + c = false; + s.forEach(function (e) { + try { + process.removeListener(e, a[e]); + } catch (e) {} + }); + process.emit = g; + process.reallyExit = u; + o.count -= 1; + } + function emit(e, t, r) { + if (o.emitted[e]) { + return; + } + o.emitted[e] = true; + o.emit(e, t, r); + } + var a = {}; + s.forEach(function (e) { + a[e] = function listener() { + var t = process.listeners(e); + if (t.length === o.count) { + unload(); + emit('exit', null, e); + emit('afterexit', null, e); + if (i && e === 'SIGHUP') { + e = 'SIGINT'; + } + process.kill(process.pid, e); + } + }; + }); + e.exports.signals = function () { + return s; + }; + e.exports.load = load; + var c = false; + function load() { + if (c) { + return; + } + c = true; + o.count += 1; + s = s.filter(function (e) { + try { + process.on(e, a[e]); + return true; + } catch (e) { + return false; + } + }); + process.emit = processEmit; + process.reallyExit = processReallyExit; + } + var u = process.reallyExit; + function processReallyExit(e) { + process.exitCode = e || 0; + emit('exit', process.exitCode, null); + emit('afterexit', process.exitCode, null); + u.call(process, process.exitCode); + } + var g = process.emit; + function processEmit(e, t) { + if (e === 'exit') { + if (t !== undefined) { + process.exitCode = t; + } + var r = g.apply(this, arguments); + emit('exit', process.exitCode, null); + emit('afterexit', process.exitCode, null); + return r; + } else { + return g.apply(this, arguments); + } + } + }, + 1430: (e) => { + e.exports = ['SIGABRT', 'SIGALRM', 'SIGHUP', 'SIGINT', 'SIGTERM']; + if (process.platform !== 'win32') { + e.exports.push('SIGVTALRM', 'SIGXCPU', 'SIGXFSZ', 'SIGUSR2', 'SIGTRAP', 'SIGSYS', 'SIGQUIT', 'SIGIOT'); + } + if (process.platform === 'linux') { + e.exports.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT', 'SIGUNUSED'); + } + }, + 7017: (e) => { + 'use strict'; + e.exports = function (e) { + var t = typeof e === 'string' ? '\n' : '\n'.charCodeAt(); + var r = typeof e === 'string' ? '\r' : '\r'.charCodeAt(); + if (e[e.length - 1] === t) { + e = e.slice(0, e.length - 1); + } + if (e[e.length - 1] === r) { + e = e.slice(0, e.length - 1); + } + return e; + }; + }, + 1450: (e, t, r) => { + 'use strict'; + const A = r(857); + const s = r(2018); + const i = r(3813); + const {env: n} = process; + let o; + if (i('no-color') || i('no-colors') || i('color=false') || i('color=never')) { + o = 0; + } else if (i('color') || i('colors') || i('color=true') || i('color=always')) { + o = 1; + } + if ('FORCE_COLOR' in n) { + if (n.FORCE_COLOR === 'true') { + o = 1; + } else if (n.FORCE_COLOR === 'false') { + o = 0; + } else { + o = n.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(n.FORCE_COLOR, 10), 3); + } + } + function translateLevel(e) { + if (e === 0) { + return false; + } + return {level: e, hasBasic: true, has256: e >= 2, has16m: e >= 3}; + } + function supportsColor(e, t) { + if (o === 0) { + return 0; + } + if (i('color=16m') || i('color=full') || i('color=truecolor')) { + return 3; + } + if (i('color=256')) { + return 2; + } + if (e && !t && o === undefined) { + return 0; + } + const r = o || 0; + if (n.TERM === 'dumb') { + return r; + } + if (process.platform === 'win32') { + const e = A.release().split('.'); + if (Number(e[0]) >= 10 && Number(e[2]) >= 10586) { + return Number(e[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ('CI' in n) { + if ( + ['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some((e) => e in n) || + n.CI_NAME === 'codeship' + ) { + return 1; + } + return r; + } + if ('TEAMCITY_VERSION' in n) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(n.TEAMCITY_VERSION) ? 1 : 0; + } + if ('GITHUB_ACTIONS' in n) { + return 1; + } + if (n.COLORTERM === 'truecolor') { + return 3; + } + if ('TERM_PROGRAM' in n) { + const e = parseInt((n.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + switch (n.TERM_PROGRAM) { + case 'iTerm.app': + return e >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + } + } + if (/-256(color)?$/i.test(n.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(n.TERM)) { + return 1; + } + if ('COLORTERM' in n) { + return 1; + } + return r; + } + function getSupportLevel(e) { + const t = supportsColor(e, e && e.isTTY); + return translateLevel(t); + } + e.exports = { + supportsColor: getSupportLevel, + stdout: translateLevel(supportsColor(true, s.isatty(1))), + stderr: translateLevel(supportsColor(true, s.isatty(2))), + }; + }, + 770: (e, t, r) => { + e.exports = r(218); + }, + 218: (e, t, r) => { + 'use strict'; + var A = r(9278); + var s = r(4756); + var i = r(8611); + var n = r(5692); + var o = r(4434); + var a = r(2613); + var c = r(9023); + t.httpOverHttp = httpOverHttp; + t.httpsOverHttp = httpsOverHttp; + t.httpOverHttps = httpOverHttps; + t.httpsOverHttps = httpsOverHttps; + function httpOverHttp(e) { + var t = new TunnelingAgent(e); + t.request = i.request; + return t; + } + function httpsOverHttp(e) { + var t = new TunnelingAgent(e); + t.request = i.request; + t.createSocket = createSecureSocket; + t.defaultPort = 443; + return t; + } + function httpOverHttps(e) { + var t = new TunnelingAgent(e); + t.request = n.request; + return t; + } + function httpsOverHttps(e) { + var t = new TunnelingAgent(e); + t.request = n.request; + t.createSocket = createSecureSocket; + t.defaultPort = 443; + return t; + } + function TunnelingAgent(e) { + var t = this; + t.options = e || {}; + t.proxyOptions = t.options.proxy || {}; + t.maxSockets = t.options.maxSockets || i.Agent.defaultMaxSockets; + t.requests = []; + t.sockets = []; + t.on('free', function onFree(e, r, A, s) { + var i = toOptions(r, A, s); + for (var n = 0, o = t.requests.length; n < o; ++n) { + var a = t.requests[n]; + if (a.host === i.host && a.port === i.port) { + t.requests.splice(n, 1); + a.request.onSocket(e); + return; + } + } + e.destroy(); + t.removeSocket(e); + }); + } + c.inherits(TunnelingAgent, o.EventEmitter); + TunnelingAgent.prototype.addRequest = function addRequest(e, t, r, A) { + var s = this; + var i = mergeOptions({request: e}, s.options, toOptions(t, r, A)); + if (s.sockets.length >= this.maxSockets) { + s.requests.push(i); + return; + } + s.createSocket(i, function (t) { + t.on('free', onFree); + t.on('close', onCloseOrRemove); + t.on('agentRemove', onCloseOrRemove); + e.onSocket(t); + function onFree() { + s.emit('free', t, i); + } + function onCloseOrRemove(e) { + s.removeSocket(t); + t.removeListener('free', onFree); + t.removeListener('close', onCloseOrRemove); + t.removeListener('agentRemove', onCloseOrRemove); + } + }); + }; + TunnelingAgent.prototype.createSocket = function createSocket(e, t) { + var r = this; + var A = {}; + r.sockets.push(A); + var s = mergeOptions({}, r.proxyOptions, { + method: 'CONNECT', + path: e.host + ':' + e.port, + agent: false, + headers: {host: e.host + ':' + e.port}, + }); + if (e.localAddress) { + s.localAddress = e.localAddress; + } + if (s.proxyAuth) { + s.headers = s.headers || {}; + s.headers['Proxy-Authorization'] = 'Basic ' + new Buffer(s.proxyAuth).toString('base64'); + } + u('making CONNECT request'); + var i = r.request(s); + i.useChunkedEncodingByDefault = false; + i.once('response', onResponse); + i.once('upgrade', onUpgrade); + i.once('connect', onConnect); + i.once('error', onError); + i.end(); + function onResponse(e) { + e.upgrade = true; + } + function onUpgrade(e, t, r) { + process.nextTick(function () { + onConnect(e, t, r); + }); + } + function onConnect(s, n, o) { + i.removeAllListeners(); + n.removeAllListeners(); + if (s.statusCode !== 200) { + u('tunneling socket could not be established, statusCode=%d', s.statusCode); + n.destroy(); + var a = new Error('tunneling socket could not be established, ' + 'statusCode=' + s.statusCode); + a.code = 'ECONNRESET'; + e.request.emit('error', a); + r.removeSocket(A); + return; + } + if (o.length > 0) { + u('got illegal response body from proxy'); + n.destroy(); + var a = new Error('got illegal response body from proxy'); + a.code = 'ECONNRESET'; + e.request.emit('error', a); + r.removeSocket(A); + return; + } + u('tunneling connection has established'); + r.sockets[r.sockets.indexOf(A)] = n; + return t(n); + } + function onError(t) { + i.removeAllListeners(); + u('tunneling socket could not be established, cause=%s\n', t.message, t.stack); + var s = new Error('tunneling socket could not be established, ' + 'cause=' + t.message); + s.code = 'ECONNRESET'; + e.request.emit('error', s); + r.removeSocket(A); + } + }; + TunnelingAgent.prototype.removeSocket = function removeSocket(e) { + var t = this.sockets.indexOf(e); + if (t === -1) { + return; + } + this.sockets.splice(t, 1); + var r = this.requests.shift(); + if (r) { + this.createSocket(r, function (e) { + r.request.onSocket(e); + }); + } + }; + function createSecureSocket(e, t) { + var r = this; + TunnelingAgent.prototype.createSocket.call(r, e, function (A) { + var i = e.request.getHeader('host'); + var n = mergeOptions({}, r.options, {socket: A, servername: i ? i.replace(/:.*$/, '') : e.host}); + var o = s.connect(0, n); + r.sockets[r.sockets.indexOf(A)] = o; + t(o); + }); + } + function toOptions(e, t, r) { + if (typeof e === 'string') { + return {host: e, port: t, localAddress: r}; + } + return e; + } + function mergeOptions(e) { + for (var t = 1, r = arguments.length; t < r; ++t) { + var A = arguments[t]; + if (typeof A === 'object') { + var s = Object.keys(A); + for (var i = 0, n = s.length; i < n; ++i) { + var o = s[i]; + if (A[o] !== undefined) { + e[o] = A[o]; + } + } + } + } + return e; + } + var u; + if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + u = function () { + var e = Array.prototype.slice.call(arguments); + if (typeof e[0] === 'string') { + e[0] = 'TUNNEL: ' + e[0]; + } else { + e.unshift('TUNNEL:'); + } + console.error.apply(console, e); + }; + } else { + u = function () {}; + } + t.debug = u; + }, + 6752: (e, t, r) => { + 'use strict'; + const A = r(6197); + const s = r(992); + const i = r(8707); + const n = r(5076); + const o = r(1093); + const a = r(9965); + const c = r(3440); + const {InvalidArgumentError: u} = i; + const g = r(6615); + const l = r(9136); + const p = r(7365); + const d = r(7501); + const h = r(4004); + const C = r(2429); + const Q = r(2720); + const B = r(3573); + const {getGlobalDispatcher: I, setGlobalDispatcher: m} = r(2581); + const y = r(8840); + const b = r(8299); + const w = r(4415); + let R; + try { + r(6982); + R = true; + } catch { + R = false; + } + Object.assign(s.prototype, g); + e.exports.Dispatcher = s; + e.exports.Client = A; + e.exports.Pool = n; + e.exports.BalancedPool = o; + e.exports.Agent = a; + e.exports.ProxyAgent = Q; + e.exports.RetryHandler = B; + e.exports.DecoratorHandler = y; + e.exports.RedirectHandler = b; + e.exports.createRedirectInterceptor = w; + e.exports.buildConnector = l; + e.exports.errors = i; + function makeDispatcher(e) { + return (t, r, A) => { + if (typeof r === 'function') { + A = r; + r = null; + } + if (!t || (typeof t !== 'string' && typeof t !== 'object' && !(t instanceof URL))) { + throw new u('invalid url'); + } + if (r != null && typeof r !== 'object') { + throw new u('invalid opts'); + } + if (r && r.path != null) { + if (typeof r.path !== 'string') { + throw new u('invalid opts.path'); + } + let e = r.path; + if (!r.path.startsWith('/')) { + e = `/${e}`; + } + t = new URL(c.parseOrigin(t).origin + e); + } else { + if (!r) { + r = typeof t === 'object' ? t : {}; + } + t = c.parseURL(t); + } + const {agent: s, dispatcher: i = I()} = r; + if (s) { + throw new u('unsupported opts.agent. Did you mean opts.client?'); + } + return e.call( + i, + { + ...r, + origin: t.origin, + path: t.search ? `${t.pathname}${t.search}` : t.pathname, + method: r.method || (r.body ? 'PUT' : 'GET'), + }, + A, + ); + }; + } + e.exports.setGlobalDispatcher = m; + e.exports.getGlobalDispatcher = I; + if (c.nodeMajor > 16 || (c.nodeMajor === 16 && c.nodeMinor >= 8)) { + let t = null; + e.exports.fetch = async function fetch(e) { + if (!t) { + t = r(2315).fetch; + } + try { + return await t(...arguments); + } catch (e) { + if (typeof e === 'object') { + Error.captureStackTrace(e, this); + } + throw e; + } + }; + e.exports.Headers = r(6349).Headers; + e.exports.Response = r(8676).Response; + e.exports.Request = r(5194).Request; + e.exports.FormData = r(3073).FormData; + e.exports.File = r(3041).File; + e.exports.FileReader = r(2160).FileReader; + const {setGlobalOrigin: A, getGlobalOrigin: s} = r(5628); + e.exports.setGlobalOrigin = A; + e.exports.getGlobalOrigin = s; + const {CacheStorage: i} = r(4738); + const {kConstruct: n} = r(296); + e.exports.caches = new i(n); + } + if (c.nodeMajor >= 16) { + const {deleteCookie: t, getCookies: A, getSetCookies: s, setCookie: i} = r(3168); + e.exports.deleteCookie = t; + e.exports.getCookies = A; + e.exports.getSetCookies = s; + e.exports.setCookie = i; + const {parseMIMEType: n, serializeAMimeType: o} = r(4322); + e.exports.parseMIMEType = n; + e.exports.serializeAMimeType = o; + } + if (c.nodeMajor >= 18 && R) { + const {WebSocket: t} = r(5171); + e.exports.WebSocket = t; + } + e.exports.request = makeDispatcher(g.request); + e.exports.stream = makeDispatcher(g.stream); + e.exports.pipeline = makeDispatcher(g.pipeline); + e.exports.connect = makeDispatcher(g.connect); + e.exports.upgrade = makeDispatcher(g.upgrade); + e.exports.MockClient = p; + e.exports.MockPool = h; + e.exports.MockAgent = d; + e.exports.mockErrors = C; + }, + 9965: (e, t, r) => { + 'use strict'; + const {InvalidArgumentError: A} = r(8707); + const {kClients: s, kRunning: i, kClose: n, kDestroy: o, kDispatch: a, kInterceptors: c} = r(6443); + const u = r(1); + const g = r(5076); + const l = r(6197); + const p = r(3440); + const d = r(4415); + const {WeakRef: h, FinalizationRegistry: C} = r(3194)(); + const Q = Symbol('onConnect'); + const B = Symbol('onDisconnect'); + const I = Symbol('onConnectionError'); + const m = Symbol('maxRedirections'); + const y = Symbol('onDrain'); + const b = Symbol('factory'); + const w = Symbol('finalizer'); + const R = Symbol('options'); + function defaultFactory(e, t) { + return t && t.connections === 1 ? new l(e, t) : new g(e, t); + } + class Agent extends u { + constructor({factory: e = defaultFactory, maxRedirections: t = 0, connect: r, ...i} = {}) { + super(); + if (typeof e !== 'function') { + throw new A('factory must be a function.'); + } + if (r != null && typeof r !== 'function' && typeof r !== 'object') { + throw new A('connect must be a function or an object'); + } + if (!Number.isInteger(t) || t < 0) { + throw new A('maxRedirections must be a positive number'); + } + if (r && typeof r !== 'function') { + r = {...r}; + } + this[c] = + i.interceptors && i.interceptors.Agent && Array.isArray(i.interceptors.Agent) + ? i.interceptors.Agent + : [d({maxRedirections: t})]; + this[R] = {...p.deepClone(i), connect: r}; + this[R].interceptors = i.interceptors ? {...i.interceptors} : undefined; + this[m] = t; + this[b] = e; + this[s] = new Map(); + this[w] = new C((e) => { + const t = this[s].get(e); + if (t !== undefined && t.deref() === undefined) { + this[s].delete(e); + } + }); + const n = this; + this[y] = (e, t) => { + n.emit('drain', e, [n, ...t]); + }; + this[Q] = (e, t) => { + n.emit('connect', e, [n, ...t]); + }; + this[B] = (e, t, r) => { + n.emit('disconnect', e, [n, ...t], r); + }; + this[I] = (e, t, r) => { + n.emit('connectionError', e, [n, ...t], r); + }; + } + get [i]() { + let e = 0; + for (const t of this[s].values()) { + const r = t.deref(); + if (r) { + e += r[i]; + } + } + return e; + } + [a](e, t) { + let r; + if (e.origin && (typeof e.origin === 'string' || e.origin instanceof URL)) { + r = String(e.origin); + } else { + throw new A('opts.origin must be a non-empty string or URL.'); + } + const i = this[s].get(r); + let n = i ? i.deref() : null; + if (!n) { + n = this[b](e.origin, this[R]) + .on('drain', this[y]) + .on('connect', this[Q]) + .on('disconnect', this[B]) + .on('connectionError', this[I]); + this[s].set(r, new h(n)); + this[w].register(n, r); + } + return n.dispatch(e, t); + } + async [n]() { + const e = []; + for (const t of this[s].values()) { + const r = t.deref(); + if (r) { + e.push(r.close()); + } + } + await Promise.all(e); + } + async [o](e) { + const t = []; + for (const r of this[s].values()) { + const A = r.deref(); + if (A) { + t.push(A.destroy(e)); + } + } + await Promise.all(t); + } + } + e.exports = Agent; + }, + 158: (e, t, r) => { + const {addAbortListener: A} = r(3440); + const {RequestAbortedError: s} = r(8707); + const i = Symbol('kListener'); + const n = Symbol('kSignal'); + function abort(e) { + if (e.abort) { + e.abort(); + } else { + e.onError(new s()); + } + } + function addSignal(e, t) { + e[n] = null; + e[i] = null; + if (!t) { + return; + } + if (t.aborted) { + abort(e); + return; + } + e[n] = t; + e[i] = () => { + abort(e); + }; + A(e[n], e[i]); + } + function removeSignal(e) { + if (!e[n]) { + return; + } + if ('removeEventListener' in e[n]) { + e[n].removeEventListener('abort', e[i]); + } else { + e[n].removeListener('abort', e[i]); + } + e[n] = null; + e[i] = null; + } + e.exports = {addSignal: addSignal, removeSignal: removeSignal}; + }, + 4660: (e, t, r) => { + 'use strict'; + const {AsyncResource: A} = r(290); + const {InvalidArgumentError: s, RequestAbortedError: i, SocketError: n} = r(8707); + const o = r(3440); + const {addSignal: a, removeSignal: c} = r(158); + class ConnectHandler extends A { + constructor(e, t) { + if (!e || typeof e !== 'object') { + throw new s('invalid opts'); + } + if (typeof t !== 'function') { + throw new s('invalid callback'); + } + const {signal: r, opaque: A, responseHeaders: i} = e; + if (r && typeof r.on !== 'function' && typeof r.addEventListener !== 'function') { + throw new s('signal must be an EventEmitter or EventTarget'); + } + super('UNDICI_CONNECT'); + this.opaque = A || null; + this.responseHeaders = i || null; + this.callback = t; + this.abort = null; + a(this, r); + } + onConnect(e, t) { + if (!this.callback) { + throw new i(); + } + this.abort = e; + this.context = t; + } + onHeaders() { + throw new n('bad connect', null); + } + onUpgrade(e, t, r) { + const {callback: A, opaque: s, context: i} = this; + c(this); + this.callback = null; + let n = t; + if (n != null) { + n = this.responseHeaders === 'raw' ? o.parseRawHeaders(t) : o.parseHeaders(t); + } + this.runInAsyncScope(A, null, null, {statusCode: e, headers: n, socket: r, opaque: s, context: i}); + } + onError(e) { + const {callback: t, opaque: r} = this; + c(this); + if (t) { + this.callback = null; + queueMicrotask(() => { + this.runInAsyncScope(t, null, e, {opaque: r}); + }); + } + } + } + function connect(e, t) { + if (t === undefined) { + return new Promise((t, r) => { + connect.call(this, e, (e, A) => (e ? r(e) : t(A))); + }); + } + try { + const r = new ConnectHandler(e, t); + this.dispatch({...e, method: 'CONNECT'}, r); + } catch (r) { + if (typeof t !== 'function') { + throw r; + } + const A = e && e.opaque; + queueMicrotask(() => t(r, {opaque: A})); + } + } + e.exports = connect; + }, + 6862: (e, t, r) => { + 'use strict'; + const {Readable: A, Duplex: s, PassThrough: i} = r(2203); + const {InvalidArgumentError: n, InvalidReturnValueError: o, RequestAbortedError: a} = r(8707); + const c = r(3440); + const {AsyncResource: u} = r(290); + const {addSignal: g, removeSignal: l} = r(158); + const p = r(2613); + const d = Symbol('resume'); + class PipelineRequest extends A { + constructor() { + super({autoDestroy: true}); + this[d] = null; + } + _read() { + const {[d]: e} = this; + if (e) { + this[d] = null; + e(); + } + } + _destroy(e, t) { + this._read(); + t(e); + } + } + class PipelineResponse extends A { + constructor(e) { + super({autoDestroy: true}); + this[d] = e; + } + _read() { + this[d](); + } + _destroy(e, t) { + if (!e && !this._readableState.endEmitted) { + e = new a(); + } + t(e); + } + } + class PipelineHandler extends u { + constructor(e, t) { + if (!e || typeof e !== 'object') { + throw new n('invalid opts'); + } + if (typeof t !== 'function') { + throw new n('invalid handler'); + } + const {signal: r, method: A, opaque: i, onInfo: o, responseHeaders: u} = e; + if (r && typeof r.on !== 'function' && typeof r.addEventListener !== 'function') { + throw new n('signal must be an EventEmitter or EventTarget'); + } + if (A === 'CONNECT') { + throw new n('invalid method'); + } + if (o && typeof o !== 'function') { + throw new n('invalid onInfo callback'); + } + super('UNDICI_PIPELINE'); + this.opaque = i || null; + this.responseHeaders = u || null; + this.handler = t; + this.abort = null; + this.context = null; + this.onInfo = o || null; + this.req = new PipelineRequest().on('error', c.nop); + this.ret = new s({ + readableObjectMode: e.objectMode, + autoDestroy: true, + read: () => { + const {body: e} = this; + if (e && e.resume) { + e.resume(); + } + }, + write: (e, t, r) => { + const {req: A} = this; + if (A.push(e, t) || A._readableState.destroyed) { + r(); + } else { + A[d] = r; + } + }, + destroy: (e, t) => { + const {body: r, req: A, res: s, ret: i, abort: n} = this; + if (!e && !i._readableState.endEmitted) { + e = new a(); + } + if (n && e) { + n(); + } + c.destroy(r, e); + c.destroy(A, e); + c.destroy(s, e); + l(this); + t(e); + }, + }).on('prefinish', () => { + const {req: e} = this; + e.push(null); + }); + this.res = null; + g(this, r); + } + onConnect(e, t) { + const {ret: r, res: A} = this; + p(!A, 'pipeline cannot be retried'); + if (r.destroyed) { + throw new a(); + } + this.abort = e; + this.context = t; + } + onHeaders(e, t, r) { + const {opaque: A, handler: s, context: i} = this; + if (e < 200) { + if (this.onInfo) { + const r = this.responseHeaders === 'raw' ? c.parseRawHeaders(t) : c.parseHeaders(t); + this.onInfo({statusCode: e, headers: r}); + } + return; + } + this.res = new PipelineResponse(r); + let n; + try { + this.handler = null; + const r = this.responseHeaders === 'raw' ? c.parseRawHeaders(t) : c.parseHeaders(t); + n = this.runInAsyncScope(s, null, { + statusCode: e, + headers: r, + opaque: A, + body: this.res, + context: i, + }); + } catch (e) { + this.res.on('error', c.nop); + throw e; + } + if (!n || typeof n.on !== 'function') { + throw new o('expected Readable'); + } + n.on('data', (e) => { + const {ret: t, body: r} = this; + if (!t.push(e) && r.pause) { + r.pause(); + } + }) + .on('error', (e) => { + const {ret: t} = this; + c.destroy(t, e); + }) + .on('end', () => { + const {ret: e} = this; + e.push(null); + }) + .on('close', () => { + const {ret: e} = this; + if (!e._readableState.ended) { + c.destroy(e, new a()); + } + }); + this.body = n; + } + onData(e) { + const {res: t} = this; + return t.push(e); + } + onComplete(e) { + const {res: t} = this; + t.push(null); + } + onError(e) { + const {ret: t} = this; + this.handler = null; + c.destroy(t, e); + } + } + function pipeline(e, t) { + try { + const r = new PipelineHandler(e, t); + this.dispatch({...e, body: r.req}, r); + return r.ret; + } catch (e) { + return new i().destroy(e); + } + } + e.exports = pipeline; + }, + 4043: (e, t, r) => { + 'use strict'; + const A = r(9927); + const {InvalidArgumentError: s, RequestAbortedError: i} = r(8707); + const n = r(3440); + const {getResolveErrorBodyCallback: o} = r(7655); + const {AsyncResource: a} = r(290); + const {addSignal: c, removeSignal: u} = r(158); + class RequestHandler extends a { + constructor(e, t) { + if (!e || typeof e !== 'object') { + throw new s('invalid opts'); + } + const { + signal: r, + method: A, + opaque: i, + body: o, + onInfo: a, + responseHeaders: u, + throwOnError: g, + highWaterMark: l, + } = e; + try { + if (typeof t !== 'function') { + throw new s('invalid callback'); + } + if (l && (typeof l !== 'number' || l < 0)) { + throw new s('invalid highWaterMark'); + } + if (r && typeof r.on !== 'function' && typeof r.addEventListener !== 'function') { + throw new s('signal must be an EventEmitter or EventTarget'); + } + if (A === 'CONNECT') { + throw new s('invalid method'); + } + if (a && typeof a !== 'function') { + throw new s('invalid onInfo callback'); + } + super('UNDICI_REQUEST'); + } catch (e) { + if (n.isStream(o)) { + n.destroy(o.on('error', n.nop), e); + } + throw e; + } + this.responseHeaders = u || null; + this.opaque = i || null; + this.callback = t; + this.res = null; + this.abort = null; + this.body = o; + this.trailers = {}; + this.context = null; + this.onInfo = a || null; + this.throwOnError = g; + this.highWaterMark = l; + if (n.isStream(o)) { + o.on('error', (e) => { + this.onError(e); + }); + } + c(this, r); + } + onConnect(e, t) { + if (!this.callback) { + throw new i(); + } + this.abort = e; + this.context = t; + } + onHeaders(e, t, r, s) { + const {callback: i, opaque: a, abort: c, context: u, responseHeaders: g, highWaterMark: l} = this; + const p = g === 'raw' ? n.parseRawHeaders(t) : n.parseHeaders(t); + if (e < 200) { + if (this.onInfo) { + this.onInfo({statusCode: e, headers: p}); + } + return; + } + const d = g === 'raw' ? n.parseHeaders(t) : p; + const h = d['content-type']; + const C = new A({resume: r, abort: c, contentType: h, highWaterMark: l}); + this.callback = null; + this.res = C; + if (i !== null) { + if (this.throwOnError && e >= 400) { + this.runInAsyncScope(o, null, { + callback: i, + body: C, + contentType: h, + statusCode: e, + statusMessage: s, + headers: p, + }); + } else { + this.runInAsyncScope(i, null, null, { + statusCode: e, + headers: p, + trailers: this.trailers, + opaque: a, + body: C, + context: u, + }); + } + } + } + onData(e) { + const {res: t} = this; + return t.push(e); + } + onComplete(e) { + const {res: t} = this; + u(this); + n.parseHeaders(e, this.trailers); + t.push(null); + } + onError(e) { + const {res: t, callback: r, body: A, opaque: s} = this; + u(this); + if (r) { + this.callback = null; + queueMicrotask(() => { + this.runInAsyncScope(r, null, e, {opaque: s}); + }); + } + if (t) { + this.res = null; + queueMicrotask(() => { + n.destroy(t, e); + }); + } + if (A) { + this.body = null; + n.destroy(A, e); + } + } + } + function request(e, t) { + if (t === undefined) { + return new Promise((t, r) => { + request.call(this, e, (e, A) => (e ? r(e) : t(A))); + }); + } + try { + this.dispatch(e, new RequestHandler(e, t)); + } catch (r) { + if (typeof t !== 'function') { + throw r; + } + const A = e && e.opaque; + queueMicrotask(() => t(r, {opaque: A})); + } + } + e.exports = request; + e.exports.RequestHandler = RequestHandler; + }, + 3560: (e, t, r) => { + 'use strict'; + const {finished: A, PassThrough: s} = r(2203); + const {InvalidArgumentError: i, InvalidReturnValueError: n, RequestAbortedError: o} = r(8707); + const a = r(3440); + const {getResolveErrorBodyCallback: c} = r(7655); + const {AsyncResource: u} = r(290); + const {addSignal: g, removeSignal: l} = r(158); + class StreamHandler extends u { + constructor(e, t, r) { + if (!e || typeof e !== 'object') { + throw new i('invalid opts'); + } + const { + signal: A, + method: s, + opaque: n, + body: o, + onInfo: c, + responseHeaders: u, + throwOnError: l, + } = e; + try { + if (typeof r !== 'function') { + throw new i('invalid callback'); + } + if (typeof t !== 'function') { + throw new i('invalid factory'); + } + if (A && typeof A.on !== 'function' && typeof A.addEventListener !== 'function') { + throw new i('signal must be an EventEmitter or EventTarget'); + } + if (s === 'CONNECT') { + throw new i('invalid method'); + } + if (c && typeof c !== 'function') { + throw new i('invalid onInfo callback'); + } + super('UNDICI_STREAM'); + } catch (e) { + if (a.isStream(o)) { + a.destroy(o.on('error', a.nop), e); + } + throw e; + } + this.responseHeaders = u || null; + this.opaque = n || null; + this.factory = t; + this.callback = r; + this.res = null; + this.abort = null; + this.context = null; + this.trailers = null; + this.body = o; + this.onInfo = c || null; + this.throwOnError = l || false; + if (a.isStream(o)) { + o.on('error', (e) => { + this.onError(e); + }); + } + g(this, A); + } + onConnect(e, t) { + if (!this.callback) { + throw new o(); + } + this.abort = e; + this.context = t; + } + onHeaders(e, t, r, i) { + const {factory: o, opaque: u, context: g, callback: l, responseHeaders: p} = this; + const d = p === 'raw' ? a.parseRawHeaders(t) : a.parseHeaders(t); + if (e < 200) { + if (this.onInfo) { + this.onInfo({statusCode: e, headers: d}); + } + return; + } + this.factory = null; + let h; + if (this.throwOnError && e >= 400) { + const r = p === 'raw' ? a.parseHeaders(t) : d; + const A = r['content-type']; + h = new s(); + this.callback = null; + this.runInAsyncScope(c, null, { + callback: l, + body: h, + contentType: A, + statusCode: e, + statusMessage: i, + headers: d, + }); + } else { + if (o === null) { + return; + } + h = this.runInAsyncScope(o, null, {statusCode: e, headers: d, opaque: u, context: g}); + if ( + !h || + typeof h.write !== 'function' || + typeof h.end !== 'function' || + typeof h.on !== 'function' + ) { + throw new n('expected Writable'); + } + A(h, {readable: false}, (e) => { + const {callback: t, res: r, opaque: A, trailers: s, abort: i} = this; + this.res = null; + if (e || !r.readable) { + a.destroy(r, e); + } + this.callback = null; + this.runInAsyncScope(t, null, e || null, {opaque: A, trailers: s}); + if (e) { + i(); + } + }); + } + h.on('drain', r); + this.res = h; + const C = + h.writableNeedDrain !== undefined + ? h.writableNeedDrain + : h._writableState && h._writableState.needDrain; + return C !== true; + } + onData(e) { + const {res: t} = this; + return t ? t.write(e) : true; + } + onComplete(e) { + const {res: t} = this; + l(this); + if (!t) { + return; + } + this.trailers = a.parseHeaders(e); + t.end(); + } + onError(e) { + const {res: t, callback: r, opaque: A, body: s} = this; + l(this); + this.factory = null; + if (t) { + this.res = null; + a.destroy(t, e); + } else if (r) { + this.callback = null; + queueMicrotask(() => { + this.runInAsyncScope(r, null, e, {opaque: A}); + }); + } + if (s) { + this.body = null; + a.destroy(s, e); + } + } + } + function stream(e, t, r) { + if (r === undefined) { + return new Promise((r, A) => { + stream.call(this, e, t, (e, t) => (e ? A(e) : r(t))); + }); + } + try { + this.dispatch(e, new StreamHandler(e, t, r)); + } catch (t) { + if (typeof r !== 'function') { + throw t; + } + const A = e && e.opaque; + queueMicrotask(() => r(t, {opaque: A})); + } + } + e.exports = stream; + }, + 1882: (e, t, r) => { + 'use strict'; + const {InvalidArgumentError: A, RequestAbortedError: s, SocketError: i} = r(8707); + const {AsyncResource: n} = r(290); + const o = r(3440); + const {addSignal: a, removeSignal: c} = r(158); + const u = r(2613); + class UpgradeHandler extends n { + constructor(e, t) { + if (!e || typeof e !== 'object') { + throw new A('invalid opts'); + } + if (typeof t !== 'function') { + throw new A('invalid callback'); + } + const {signal: r, opaque: s, responseHeaders: i} = e; + if (r && typeof r.on !== 'function' && typeof r.addEventListener !== 'function') { + throw new A('signal must be an EventEmitter or EventTarget'); + } + super('UNDICI_UPGRADE'); + this.responseHeaders = i || null; + this.opaque = s || null; + this.callback = t; + this.abort = null; + this.context = null; + a(this, r); + } + onConnect(e, t) { + if (!this.callback) { + throw new s(); + } + this.abort = e; + this.context = null; + } + onHeaders() { + throw new i('bad upgrade', null); + } + onUpgrade(e, t, r) { + const {callback: A, opaque: s, context: i} = this; + u.strictEqual(e, 101); + c(this); + this.callback = null; + const n = this.responseHeaders === 'raw' ? o.parseRawHeaders(t) : o.parseHeaders(t); + this.runInAsyncScope(A, null, null, {headers: n, socket: r, opaque: s, context: i}); + } + onError(e) { + const {callback: t, opaque: r} = this; + c(this); + if (t) { + this.callback = null; + queueMicrotask(() => { + this.runInAsyncScope(t, null, e, {opaque: r}); + }); + } + } + } + function upgrade(e, t) { + if (t === undefined) { + return new Promise((t, r) => { + upgrade.call(this, e, (e, A) => (e ? r(e) : t(A))); + }); + } + try { + const r = new UpgradeHandler(e, t); + this.dispatch({...e, method: e.method || 'GET', upgrade: e.protocol || 'Websocket'}, r); + } catch (r) { + if (typeof t !== 'function') { + throw r; + } + const A = e && e.opaque; + queueMicrotask(() => t(r, {opaque: A})); + } + } + e.exports = upgrade; + }, + 6615: (e, t, r) => { + 'use strict'; + e.exports.request = r(4043); + e.exports.stream = r(3560); + e.exports.pipeline = r(6862); + e.exports.upgrade = r(1882); + e.exports.connect = r(4660); + }, + 9927: (e, t, r) => { + 'use strict'; + const A = r(2613); + const {Readable: s} = r(2203); + const {RequestAbortedError: i, NotSupportedError: n, InvalidArgumentError: o} = r(8707); + const a = r(3440); + const {ReadableStreamFrom: c, toUSVString: u} = r(3440); + let g; + const l = Symbol('kConsume'); + const p = Symbol('kReading'); + const d = Symbol('kBody'); + const h = Symbol('abort'); + const C = Symbol('kContentType'); + const noop = () => {}; + e.exports = class BodyReadable extends s { + constructor({resume: e, abort: t, contentType: r = '', highWaterMark: A = 64 * 1024}) { + super({autoDestroy: true, read: e, highWaterMark: A}); + this._readableState.dataEmitted = false; + this[h] = t; + this[l] = null; + this[d] = null; + this[C] = r; + this[p] = false; + } + destroy(e) { + if (this.destroyed) { + return this; + } + if (!e && !this._readableState.endEmitted) { + e = new i(); + } + if (e) { + this[h](); + } + return super.destroy(e); + } + emit(e, ...t) { + if (e === 'data') { + this._readableState.dataEmitted = true; + } else if (e === 'error') { + this._readableState.errorEmitted = true; + } + return super.emit(e, ...t); + } + on(e, ...t) { + if (e === 'data' || e === 'readable') { + this[p] = true; + } + return super.on(e, ...t); + } + addListener(e, ...t) { + return this.on(e, ...t); + } + off(e, ...t) { + const r = super.off(e, ...t); + if (e === 'data' || e === 'readable') { + this[p] = this.listenerCount('data') > 0 || this.listenerCount('readable') > 0; + } + return r; + } + removeListener(e, ...t) { + return this.off(e, ...t); + } + push(e) { + if (this[l] && e !== null && this.readableLength === 0) { + consumePush(this[l], e); + return this[p] ? super.push(e) : true; + } + return super.push(e); + } + async text() { + return consume(this, 'text'); + } + async json() { + return consume(this, 'json'); + } + async blob() { + return consume(this, 'blob'); + } + async arrayBuffer() { + return consume(this, 'arrayBuffer'); + } + async formData() { + throw new n(); + } + get bodyUsed() { + return a.isDisturbed(this); + } + get body() { + if (!this[d]) { + this[d] = c(this); + if (this[l]) { + this[d].getReader(); + A(this[d].locked); + } + } + return this[d]; + } + dump(e) { + let t = e && Number.isFinite(e.limit) ? e.limit : 262144; + const r = e && e.signal; + if (r) { + try { + if (typeof r !== 'object' || !('aborted' in r)) { + throw new o('signal must be an AbortSignal'); + } + a.throwIfAborted(r); + } catch (e) { + return Promise.reject(e); + } + } + if (this.closed) { + return Promise.resolve(null); + } + return new Promise((e, A) => { + const s = r + ? a.addAbortListener(r, () => { + this.destroy(); + }) + : noop; + this.on('close', function () { + s(); + if (r && r.aborted) { + A( + r.reason || + Object.assign(new Error('The operation was aborted'), {name: 'AbortError'}), + ); + } else { + e(null); + } + }) + .on('error', noop) + .on('data', function (e) { + t -= e.length; + if (t <= 0) { + this.destroy(); + } + }) + .resume(); + }); + } + }; + function isLocked(e) { + return (e[d] && e[d].locked === true) || e[l]; + } + function isUnusable(e) { + return a.isDisturbed(e) || isLocked(e); + } + async function consume(e, t) { + if (isUnusable(e)) { + throw new TypeError('unusable'); + } + A(!e[l]); + return new Promise((r, A) => { + e[l] = {type: t, stream: e, resolve: r, reject: A, length: 0, body: []}; + e.on('error', function (e) { + consumeFinish(this[l], e); + }).on('close', function () { + if (this[l].body !== null) { + consumeFinish(this[l], new i()); + } + }); + process.nextTick(consumeStart, e[l]); + }); + } + function consumeStart(e) { + if (e.body === null) { + return; + } + const {_readableState: t} = e.stream; + for (const r of t.buffer) { + consumePush(e, r); + } + if (t.endEmitted) { + consumeEnd(this[l]); + } else { + e.stream.on('end', function () { + consumeEnd(this[l]); + }); + } + e.stream.resume(); + while (e.stream.read() != null) {} + } + function consumeEnd(e) { + const {type: t, body: A, resolve: s, stream: i, length: n} = e; + try { + if (t === 'text') { + s(u(Buffer.concat(A))); + } else if (t === 'json') { + s(JSON.parse(Buffer.concat(A))); + } else if (t === 'arrayBuffer') { + const e = new Uint8Array(n); + let t = 0; + for (const r of A) { + e.set(r, t); + t += r.byteLength; + } + s(e.buffer); + } else if (t === 'blob') { + if (!g) { + g = r(181).Blob; + } + s(new g(A, {type: i[C]})); + } + consumeFinish(e); + } catch (e) { + i.destroy(e); + } + } + function consumePush(e, t) { + e.length += t.length; + e.body.push(t); + } + function consumeFinish(e, t) { + if (e.body === null) { + return; + } + if (t) { + e.reject(t); + } else { + e.resolve(); + } + e.type = null; + e.stream = null; + e.resolve = null; + e.reject = null; + e.length = 0; + e.body = null; + } + }, + 7655: (e, t, r) => { + const A = r(2613); + const {ResponseStatusCodeError: s} = r(8707); + const {toUSVString: i} = r(3440); + async function getResolveErrorBodyCallback({ + callback: e, + body: t, + contentType: r, + statusCode: n, + statusMessage: o, + headers: a, + }) { + A(t); + let c = []; + let u = 0; + for await (const e of t) { + c.push(e); + u += e.length; + if (u > 128 * 1024) { + c = null; + break; + } + } + if (n === 204 || !r || !c) { + process.nextTick(e, new s(`Response status code ${n}${o ? `: ${o}` : ''}`, n, a)); + return; + } + try { + if (r.startsWith('application/json')) { + const t = JSON.parse(i(Buffer.concat(c))); + process.nextTick(e, new s(`Response status code ${n}${o ? `: ${o}` : ''}`, n, a, t)); + return; + } + if (r.startsWith('text/')) { + const t = i(Buffer.concat(c)); + process.nextTick(e, new s(`Response status code ${n}${o ? `: ${o}` : ''}`, n, a, t)); + return; + } + } catch (e) {} + process.nextTick(e, new s(`Response status code ${n}${o ? `: ${o}` : ''}`, n, a)); + } + e.exports = {getResolveErrorBodyCallback: getResolveErrorBodyCallback}; + }, + 1093: (e, t, r) => { + 'use strict'; + const {BalancedPoolMissingUpstreamError: A, InvalidArgumentError: s} = r(8707); + const { + PoolBase: i, + kClients: n, + kNeedDrain: o, + kAddClient: a, + kRemoveClient: c, + kGetDispatcher: u, + } = r(8640); + const g = r(5076); + const {kUrl: l, kInterceptors: p} = r(6443); + const {parseOrigin: d} = r(3440); + const h = Symbol('factory'); + const C = Symbol('options'); + const Q = Symbol('kGreatestCommonDivisor'); + const B = Symbol('kCurrentWeight'); + const I = Symbol('kIndex'); + const m = Symbol('kWeight'); + const y = Symbol('kMaxWeightPerServer'); + const b = Symbol('kErrorPenalty'); + function getGreatestCommonDivisor(e, t) { + if (t === 0) return e; + return getGreatestCommonDivisor(t, e % t); + } + function defaultFactory(e, t) { + return new g(e, t); + } + class BalancedPool extends i { + constructor(e = [], {factory: t = defaultFactory, ...r} = {}) { + super(); + this[C] = r; + this[I] = -1; + this[B] = 0; + this[y] = this[C].maxWeightPerServer || 100; + this[b] = this[C].errorPenalty || 15; + if (!Array.isArray(e)) { + e = [e]; + } + if (typeof t !== 'function') { + throw new s('factory must be a function.'); + } + this[p] = + r.interceptors && r.interceptors.BalancedPool && Array.isArray(r.interceptors.BalancedPool) + ? r.interceptors.BalancedPool + : []; + this[h] = t; + for (const t of e) { + this.addUpstream(t); + } + this._updateBalancedPoolStats(); + } + addUpstream(e) { + const t = d(e).origin; + if (this[n].find((e) => e[l].origin === t && e.closed !== true && e.destroyed !== true)) { + return this; + } + const r = this[h](t, Object.assign({}, this[C])); + this[a](r); + r.on('connect', () => { + r[m] = Math.min(this[y], r[m] + this[b]); + }); + r.on('connectionError', () => { + r[m] = Math.max(1, r[m] - this[b]); + this._updateBalancedPoolStats(); + }); + r.on('disconnect', (...e) => { + const t = e[2]; + if (t && t.code === 'UND_ERR_SOCKET') { + r[m] = Math.max(1, r[m] - this[b]); + this._updateBalancedPoolStats(); + } + }); + for (const e of this[n]) { + e[m] = this[y]; + } + this._updateBalancedPoolStats(); + return this; + } + _updateBalancedPoolStats() { + this[Q] = this[n].map((e) => e[m]).reduce(getGreatestCommonDivisor, 0); + } + removeUpstream(e) { + const t = d(e).origin; + const r = this[n].find((e) => e[l].origin === t && e.closed !== true && e.destroyed !== true); + if (r) { + this[c](r); + } + return this; + } + get upstreams() { + return this[n].filter((e) => e.closed !== true && e.destroyed !== true).map((e) => e[l].origin); + } + [u]() { + if (this[n].length === 0) { + throw new A(); + } + const e = this[n].find((e) => !e[o] && e.closed !== true && e.destroyed !== true); + if (!e) { + return; + } + const t = this[n].map((e) => e[o]).reduce((e, t) => e && t, true); + if (t) { + return; + } + let r = 0; + let s = this[n].findIndex((e) => !e[o]); + while (r++ < this[n].length) { + this[I] = (this[I] + 1) % this[n].length; + const e = this[n][this[I]]; + if (e[m] > this[n][s][m] && !e[o]) { + s = this[I]; + } + if (this[I] === 0) { + this[B] = this[B] - this[Q]; + if (this[B] <= 0) { + this[B] = this[y]; + } + } + if (e[m] >= this[B] && !e[o]) { + return e; + } + } + this[B] = this[n][s][m]; + this[I] = s; + return this[n][s]; + } + } + e.exports = BalancedPool; + }, + 479: (e, t, r) => { + 'use strict'; + const {kConstruct: A} = r(296); + const {urlEquals: s, fieldValues: i} = r(3993); + const {kEnumerableProperty: n, isDisturbed: o} = r(3440); + const {kHeadersList: a} = r(6443); + const {webidl: c} = r(4222); + const {Response: u, cloneResponse: g} = r(8676); + const {Request: l} = r(5194); + const {kState: p, kHeaders: d, kGuard: h, kRealm: C} = r(9710); + const {fetching: Q} = r(2315); + const {urlIsHttpHttpsScheme: B, createDeferredPromise: I, readAllBytes: m} = r(5523); + const y = r(2613); + const {getGlobalDispatcher: b} = r(2581); + class Cache { + #e; + constructor() { + if (arguments[0] !== A) { + c.illegalConstructor(); + } + this.#e = arguments[1]; + } + async match(e, t = {}) { + c.brandCheck(this, Cache); + c.argumentLengthCheck(arguments, 1, {header: 'Cache.match'}); + e = c.converters.RequestInfo(e); + t = c.converters.CacheQueryOptions(t); + const r = await this.matchAll(e, t); + if (r.length === 0) { + return; + } + return r[0]; + } + async matchAll(e = undefined, t = {}) { + c.brandCheck(this, Cache); + if (e !== undefined) e = c.converters.RequestInfo(e); + t = c.converters.CacheQueryOptions(t); + let r = null; + if (e !== undefined) { + if (e instanceof l) { + r = e[p]; + if (r.method !== 'GET' && !t.ignoreMethod) { + return []; + } + } else if (typeof e === 'string') { + r = new l(e)[p]; + } + } + const A = []; + if (e === undefined) { + for (const e of this.#e) { + A.push(e[1]); + } + } else { + const e = this.#t(r, t); + for (const t of e) { + A.push(t[1]); + } + } + const s = []; + for (const e of A) { + const t = new u(e.body?.source ?? null); + const r = t[p].body; + t[p] = e; + t[p].body = r; + t[d][a] = e.headersList; + t[d][h] = 'immutable'; + s.push(t); + } + return Object.freeze(s); + } + async add(e) { + c.brandCheck(this, Cache); + c.argumentLengthCheck(arguments, 1, {header: 'Cache.add'}); + e = c.converters.RequestInfo(e); + const t = [e]; + const r = this.addAll(t); + return await r; + } + async addAll(e) { + c.brandCheck(this, Cache); + c.argumentLengthCheck(arguments, 1, {header: 'Cache.addAll'}); + e = c.converters['sequence'](e); + const t = []; + const r = []; + for (const t of e) { + if (typeof t === 'string') { + continue; + } + const e = t[p]; + if (!B(e.url) || e.method !== 'GET') { + throw c.errors.exception({ + header: 'Cache.addAll', + message: 'Expected http/s scheme when method is not GET.', + }); + } + } + const A = []; + for (const s of e) { + const e = new l(s)[p]; + if (!B(e.url)) { + throw c.errors.exception({header: 'Cache.addAll', message: 'Expected http/s scheme.'}); + } + e.initiator = 'fetch'; + e.destination = 'subresource'; + r.push(e); + const n = I(); + A.push( + Q({ + request: e, + dispatcher: b(), + processResponse(e) { + if (e.type === 'error' || e.status === 206 || e.status < 200 || e.status > 299) { + n.reject( + c.errors.exception({ + header: 'Cache.addAll', + message: 'Received an invalid status code or the request failed.', + }), + ); + } else if (e.headersList.contains('vary')) { + const t = i(e.headersList.get('vary')); + for (const e of t) { + if (e === '*') { + n.reject( + c.errors.exception({ + header: 'Cache.addAll', + message: 'invalid vary field value', + }), + ); + for (const e of A) { + e.abort(); + } + return; + } + } + } + }, + processResponseEndOfBody(e) { + if (e.aborted) { + n.reject(new DOMException('aborted', 'AbortError')); + return; + } + n.resolve(e); + }, + }), + ); + t.push(n.promise); + } + const s = Promise.all(t); + const n = await s; + const o = []; + let a = 0; + for (const e of n) { + const t = {type: 'put', request: r[a], response: e}; + o.push(t); + a++; + } + const u = I(); + let g = null; + try { + this.#r(o); + } catch (e) { + g = e; + } + queueMicrotask(() => { + if (g === null) { + u.resolve(undefined); + } else { + u.reject(g); + } + }); + return u.promise; + } + async put(e, t) { + c.brandCheck(this, Cache); + c.argumentLengthCheck(arguments, 2, {header: 'Cache.put'}); + e = c.converters.RequestInfo(e); + t = c.converters.Response(t); + let r = null; + if (e instanceof l) { + r = e[p]; + } else { + r = new l(e)[p]; + } + if (!B(r.url) || r.method !== 'GET') { + throw c.errors.exception({ + header: 'Cache.put', + message: 'Expected an http/s scheme when method is not GET', + }); + } + const A = t[p]; + if (A.status === 206) { + throw c.errors.exception({header: 'Cache.put', message: 'Got 206 status'}); + } + if (A.headersList.contains('vary')) { + const e = i(A.headersList.get('vary')); + for (const t of e) { + if (t === '*') { + throw c.errors.exception({header: 'Cache.put', message: 'Got * vary field value'}); + } + } + } + if (A.body && (o(A.body.stream) || A.body.stream.locked)) { + throw c.errors.exception({ + header: 'Cache.put', + message: 'Response body is locked or disturbed', + }); + } + const s = g(A); + const n = I(); + if (A.body != null) { + const e = A.body.stream; + const t = e.getReader(); + m(t).then(n.resolve, n.reject); + } else { + n.resolve(undefined); + } + const a = []; + const u = {type: 'put', request: r, response: s}; + a.push(u); + const d = await n.promise; + if (s.body != null) { + s.body.source = d; + } + const h = I(); + let C = null; + try { + this.#r(a); + } catch (e) { + C = e; + } + queueMicrotask(() => { + if (C === null) { + h.resolve(); + } else { + h.reject(C); + } + }); + return h.promise; + } + async delete(e, t = {}) { + c.brandCheck(this, Cache); + c.argumentLengthCheck(arguments, 1, {header: 'Cache.delete'}); + e = c.converters.RequestInfo(e); + t = c.converters.CacheQueryOptions(t); + let r = null; + if (e instanceof l) { + r = e[p]; + if (r.method !== 'GET' && !t.ignoreMethod) { + return false; + } + } else { + y(typeof e === 'string'); + r = new l(e)[p]; + } + const A = []; + const s = {type: 'delete', request: r, options: t}; + A.push(s); + const i = I(); + let n = null; + let o; + try { + o = this.#r(A); + } catch (e) { + n = e; + } + queueMicrotask(() => { + if (n === null) { + i.resolve(!!o?.length); + } else { + i.reject(n); + } + }); + return i.promise; + } + async keys(e = undefined, t = {}) { + c.brandCheck(this, Cache); + if (e !== undefined) e = c.converters.RequestInfo(e); + t = c.converters.CacheQueryOptions(t); + let r = null; + if (e !== undefined) { + if (e instanceof l) { + r = e[p]; + if (r.method !== 'GET' && !t.ignoreMethod) { + return []; + } + } else if (typeof e === 'string') { + r = new l(e)[p]; + } + } + const A = I(); + const s = []; + if (e === undefined) { + for (const e of this.#e) { + s.push(e[0]); + } + } else { + const e = this.#t(r, t); + for (const t of e) { + s.push(t[0]); + } + } + queueMicrotask(() => { + const e = []; + for (const t of s) { + const r = new l('https://a'); + r[p] = t; + r[d][a] = t.headersList; + r[d][h] = 'immutable'; + r[C] = t.client; + e.push(r); + } + A.resolve(Object.freeze(e)); + }); + return A.promise; + } + #r(e) { + const t = this.#e; + const r = [...t]; + const A = []; + const s = []; + try { + for (const r of e) { + if (r.type !== 'delete' && r.type !== 'put') { + throw c.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'operation type does not match "delete" or "put"', + }); + } + if (r.type === 'delete' && r.response != null) { + throw c.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'delete operation should not have an associated response', + }); + } + if (this.#t(r.request, r.options, A).length) { + throw new DOMException('???', 'InvalidStateError'); + } + let e; + if (r.type === 'delete') { + e = this.#t(r.request, r.options); + if (e.length === 0) { + return []; + } + for (const r of e) { + const e = t.indexOf(r); + y(e !== -1); + t.splice(e, 1); + } + } else if (r.type === 'put') { + if (r.response == null) { + throw c.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'put operation should have an associated response', + }); + } + const s = r.request; + if (!B(s.url)) { + throw c.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'expected http or https scheme', + }); + } + if (s.method !== 'GET') { + throw c.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'not get method', + }); + } + if (r.options != null) { + throw c.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'options must not be defined', + }); + } + e = this.#t(r.request); + for (const r of e) { + const e = t.indexOf(r); + y(e !== -1); + t.splice(e, 1); + } + t.push([r.request, r.response]); + A.push([r.request, r.response]); + } + s.push([r.request, r.response]); + } + return s; + } catch (e) { + this.#e.length = 0; + this.#e = r; + throw e; + } + } + #t(e, t, r) { + const A = []; + const s = r ?? this.#e; + for (const r of s) { + const [s, i] = r; + if (this.#A(e, s, i, t)) { + A.push(r); + } + } + return A; + } + #A(e, t, r = null, A) { + const n = new URL(e.url); + const o = new URL(t.url); + if (A?.ignoreSearch) { + o.search = ''; + n.search = ''; + } + if (!s(n, o, true)) { + return false; + } + if (r == null || A?.ignoreVary || !r.headersList.contains('vary')) { + return true; + } + const a = i(r.headersList.get('vary')); + for (const r of a) { + if (r === '*') { + return false; + } + const A = t.headersList.get(r); + const s = e.headersList.get(r); + if (A !== s) { + return false; + } + } + return true; + } + } + Object.defineProperties(Cache.prototype, { + [Symbol.toStringTag]: {value: 'Cache', configurable: true}, + match: n, + matchAll: n, + add: n, + addAll: n, + put: n, + delete: n, + keys: n, + }); + const w = [ + {key: 'ignoreSearch', converter: c.converters.boolean, defaultValue: false}, + {key: 'ignoreMethod', converter: c.converters.boolean, defaultValue: false}, + {key: 'ignoreVary', converter: c.converters.boolean, defaultValue: false}, + ]; + c.converters.CacheQueryOptions = c.dictionaryConverter(w); + c.converters.MultiCacheQueryOptions = c.dictionaryConverter([ + ...w, + {key: 'cacheName', converter: c.converters.DOMString}, + ]); + c.converters.Response = c.interfaceConverter(u); + c.converters['sequence'] = c.sequenceConverter(c.converters.RequestInfo); + e.exports = {Cache: Cache}; + }, + 4738: (e, t, r) => { + 'use strict'; + const {kConstruct: A} = r(296); + const {Cache: s} = r(479); + const {webidl: i} = r(4222); + const {kEnumerableProperty: n} = r(3440); + class CacheStorage { + #s = new Map(); + constructor() { + if (arguments[0] !== A) { + i.illegalConstructor(); + } + } + async match(e, t = {}) { + i.brandCheck(this, CacheStorage); + i.argumentLengthCheck(arguments, 1, {header: 'CacheStorage.match'}); + e = i.converters.RequestInfo(e); + t = i.converters.MultiCacheQueryOptions(t); + if (t.cacheName != null) { + if (this.#s.has(t.cacheName)) { + const r = this.#s.get(t.cacheName); + const i = new s(A, r); + return await i.match(e, t); + } + } else { + for (const r of this.#s.values()) { + const i = new s(A, r); + const n = await i.match(e, t); + if (n !== undefined) { + return n; + } + } + } + } + async has(e) { + i.brandCheck(this, CacheStorage); + i.argumentLengthCheck(arguments, 1, {header: 'CacheStorage.has'}); + e = i.converters.DOMString(e); + return this.#s.has(e); + } + async open(e) { + i.brandCheck(this, CacheStorage); + i.argumentLengthCheck(arguments, 1, {header: 'CacheStorage.open'}); + e = i.converters.DOMString(e); + if (this.#s.has(e)) { + const t = this.#s.get(e); + return new s(A, t); + } + const t = []; + this.#s.set(e, t); + return new s(A, t); + } + async delete(e) { + i.brandCheck(this, CacheStorage); + i.argumentLengthCheck(arguments, 1, {header: 'CacheStorage.delete'}); + e = i.converters.DOMString(e); + return this.#s.delete(e); + } + async keys() { + i.brandCheck(this, CacheStorage); + const e = this.#s.keys(); + return [...e]; + } + } + Object.defineProperties(CacheStorage.prototype, { + [Symbol.toStringTag]: {value: 'CacheStorage', configurable: true}, + match: n, + has: n, + open: n, + delete: n, + keys: n, + }); + e.exports = {CacheStorage: CacheStorage}; + }, + 296: (e, t, r) => { + 'use strict'; + e.exports = {kConstruct: r(6443).kConstruct}; + }, + 3993: (e, t, r) => { + 'use strict'; + const A = r(2613); + const {URLSerializer: s} = r(4322); + const {isValidHeaderName: i} = r(5523); + function urlEquals(e, t, r = false) { + const A = s(e, r); + const i = s(t, r); + return A === i; + } + function fieldValues(e) { + A(e !== null); + const t = []; + for (let r of e.split(',')) { + r = r.trim(); + if (!r.length) { + continue; + } else if (!i(r)) { + continue; + } + t.push(r); + } + return t; + } + e.exports = {urlEquals: urlEquals, fieldValues: fieldValues}; + }, + 6197: (e, t, r) => { + 'use strict'; + const A = r(2613); + const s = r(9278); + const i = r(8611); + const {pipeline: n} = r(2203); + const o = r(3440); + const a = r(8804); + const c = r(4655); + const u = r(1); + const { + RequestContentLengthMismatchError: g, + ResponseContentLengthMismatchError: l, + InvalidArgumentError: p, + RequestAbortedError: d, + HeadersTimeoutError: h, + HeadersOverflowError: C, + SocketError: Q, + InformationalError: B, + BodyTimeoutError: I, + HTTPParserError: m, + ResponseExceededMaxSizeError: y, + ClientDestroyedError: b, + } = r(8707); + const w = r(9136); + const { + kUrl: R, + kReset: k, + kServerName: D, + kClient: S, + kBusy: v, + kParser: N, + kConnect: q, + kBlocking: T, + kResuming: _, + kRunning: U, + kPending: L, + kSize: M, + kWriting: G, + kQueue: H, + kConnected: O, + kConnecting: x, + kNeedDrain: P, + kNoRef: Y, + kKeepAliveDefaultTimeout: J, + kHostHeader: V, + kPendingIdx: j, + kRunningIdx: W, + kError: z, + kPipelining: X, + kSocket: Z, + kKeepAliveTimeoutValue: K, + kMaxHeadersSize: $, + kKeepAliveMaxTimeout: ee, + kKeepAliveTimeoutThreshold: te, + kHeadersTimeout: re, + kBodyTimeout: Ae, + kStrictContentLength: se, + kConnector: ie, + kMaxRedirections: ne, + kMaxRequests: oe, + kCounter: ae, + kClose: ce, + kDestroy: ue, + kDispatch: ge, + kInterceptors: le, + kLocalAddress: pe, + kMaxResponseSize: de, + kHTTPConnVersion: he, + kHost: Ee, + kHTTP2Session: Ce, + kHTTP2SessionState: Qe, + kHTTP2BuildRequest: Be, + kHTTP2CopyHeaders: Ie, + kHTTP1BuildRequest: fe, + } = r(6443); + let me; + try { + me = r(5675); + } catch { + me = {constants: {}}; + } + const { + constants: { + HTTP2_HEADER_AUTHORITY: ye, + HTTP2_HEADER_METHOD: be, + HTTP2_HEADER_PATH: we, + HTTP2_HEADER_SCHEME: Re, + HTTP2_HEADER_CONTENT_LENGTH: ke, + HTTP2_HEADER_EXPECT: De, + HTTP2_HEADER_STATUS: Se, + }, + } = me; + let Fe = false; + const ve = Buffer[Symbol.species]; + const Ne = Symbol('kClosedResolve'); + const qe = {}; + try { + const e = r(1637); + qe.sendHeaders = e.channel('undici:client:sendHeaders'); + qe.beforeConnect = e.channel('undici:client:beforeConnect'); + qe.connectError = e.channel('undici:client:connectError'); + qe.connected = e.channel('undici:client:connected'); + } catch { + qe.sendHeaders = {hasSubscribers: false}; + qe.beforeConnect = {hasSubscribers: false}; + qe.connectError = {hasSubscribers: false}; + qe.connected = {hasSubscribers: false}; + } + class Client extends u { + constructor( + e, + { + interceptors: t, + maxHeaderSize: r, + headersTimeout: A, + socketTimeout: n, + requestTimeout: a, + connectTimeout: c, + bodyTimeout: u, + idleTimeout: g, + keepAlive: l, + keepAliveTimeout: d, + maxKeepAliveTimeout: h, + keepAliveMaxTimeout: C, + keepAliveTimeoutThreshold: Q, + socketPath: B, + pipelining: I, + tls: m, + strictContentLength: y, + maxCachedSessions: b, + maxRedirections: k, + connect: S, + maxRequestsPerClient: v, + localAddress: N, + maxResponseSize: q, + autoSelectFamily: T, + autoSelectFamilyAttemptTimeout: U, + allowH2: L, + maxConcurrentStreams: M, + } = {}, + ) { + super(); + if (l !== undefined) { + throw new p('unsupported keepAlive, use pipelining=0 instead'); + } + if (n !== undefined) { + throw new p('unsupported socketTimeout, use headersTimeout & bodyTimeout instead'); + } + if (a !== undefined) { + throw new p('unsupported requestTimeout, use headersTimeout & bodyTimeout instead'); + } + if (g !== undefined) { + throw new p('unsupported idleTimeout, use keepAliveTimeout instead'); + } + if (h !== undefined) { + throw new p('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead'); + } + if (r != null && !Number.isFinite(r)) { + throw new p('invalid maxHeaderSize'); + } + if (B != null && typeof B !== 'string') { + throw new p('invalid socketPath'); + } + if (c != null && (!Number.isFinite(c) || c < 0)) { + throw new p('invalid connectTimeout'); + } + if (d != null && (!Number.isFinite(d) || d <= 0)) { + throw new p('invalid keepAliveTimeout'); + } + if (C != null && (!Number.isFinite(C) || C <= 0)) { + throw new p('invalid keepAliveMaxTimeout'); + } + if (Q != null && !Number.isFinite(Q)) { + throw new p('invalid keepAliveTimeoutThreshold'); + } + if (A != null && (!Number.isInteger(A) || A < 0)) { + throw new p('headersTimeout must be a positive integer or zero'); + } + if (u != null && (!Number.isInteger(u) || u < 0)) { + throw new p('bodyTimeout must be a positive integer or zero'); + } + if (S != null && typeof S !== 'function' && typeof S !== 'object') { + throw new p('connect must be a function or an object'); + } + if (k != null && (!Number.isInteger(k) || k < 0)) { + throw new p('maxRedirections must be a positive number'); + } + if (v != null && (!Number.isInteger(v) || v < 0)) { + throw new p('maxRequestsPerClient must be a positive number'); + } + if (N != null && (typeof N !== 'string' || s.isIP(N) === 0)) { + throw new p('localAddress must be valid string IP address'); + } + if (q != null && (!Number.isInteger(q) || q < -1)) { + throw new p('maxResponseSize must be a positive number'); + } + if (U != null && (!Number.isInteger(U) || U < -1)) { + throw new p('autoSelectFamilyAttemptTimeout must be a positive number'); + } + if (L != null && typeof L !== 'boolean') { + throw new p('allowH2 must be a valid boolean value'); + } + if (M != null && (typeof M !== 'number' || M < 1)) { + throw new p('maxConcurrentStreams must be a possitive integer, greater than 0'); + } + if (typeof S !== 'function') { + S = w({ + ...m, + maxCachedSessions: b, + allowH2: L, + socketPath: B, + timeout: c, + ...(o.nodeHasAutoSelectFamily && T + ? {autoSelectFamily: T, autoSelectFamilyAttemptTimeout: U} + : undefined), + ...S, + }); + } + this[le] = t && t.Client && Array.isArray(t.Client) ? t.Client : [_e({maxRedirections: k})]; + this[R] = o.parseOrigin(e); + this[ie] = S; + this[Z] = null; + this[X] = I != null ? I : 1; + this[$] = r || i.maxHeaderSize; + this[J] = d == null ? 4e3 : d; + this[ee] = C == null ? 6e5 : C; + this[te] = Q == null ? 1e3 : Q; + this[K] = this[J]; + this[D] = null; + this[pe] = N != null ? N : null; + this[_] = 0; + this[P] = 0; + this[V] = `host: ${this[R].hostname}${this[R].port ? `:${this[R].port}` : ''}\r\n`; + this[Ae] = u != null ? u : 3e5; + this[re] = A != null ? A : 3e5; + this[se] = y == null ? true : y; + this[ne] = k; + this[oe] = v; + this[Ne] = null; + this[de] = q > -1 ? q : -1; + this[he] = 'h1'; + this[Ce] = null; + this[Qe] = !L ? null : {openStreams: 0, maxConcurrentStreams: M != null ? M : 100}; + this[Ee] = `${this[R].hostname}${this[R].port ? `:${this[R].port}` : ''}`; + this[H] = []; + this[W] = 0; + this[j] = 0; + } + get pipelining() { + return this[X]; + } + set pipelining(e) { + this[X] = e; + resume(this, true); + } + get [L]() { + return this[H].length - this[j]; + } + get [U]() { + return this[j] - this[W]; + } + get [M]() { + return this[H].length - this[W]; + } + get [O]() { + return !!this[Z] && !this[x] && !this[Z].destroyed; + } + get [v]() { + const e = this[Z]; + return (e && (e[k] || e[G] || e[T])) || this[M] >= (this[X] || 1) || this[L] > 0; + } + [q](e) { + connect(this); + this.once('connect', e); + } + [ge](e, t) { + const r = e.origin || this[R].origin; + const A = this[he] === 'h2' ? c[Be](r, e, t) : c[fe](r, e, t); + this[H].push(A); + if (this[_]) { + } else if (o.bodyLength(A.body) == null && o.isIterable(A.body)) { + this[_] = 1; + process.nextTick(resume, this); + } else { + resume(this, true); + } + if (this[_] && this[P] !== 2 && this[v]) { + this[P] = 2; + } + return this[P] < 2; + } + async [ce]() { + return new Promise((e) => { + if (!this[M]) { + e(null); + } else { + this[Ne] = e; + } + }); + } + async [ue](e) { + return new Promise((t) => { + const r = this[H].splice(this[j]); + for (let t = 0; t < r.length; t++) { + const A = r[t]; + errorRequest(this, A, e); + } + const callback = () => { + if (this[Ne]) { + this[Ne](); + this[Ne] = null; + } + t(); + }; + if (this[Ce] != null) { + o.destroy(this[Ce], e); + this[Ce] = null; + this[Qe] = null; + } + if (!this[Z]) { + queueMicrotask(callback); + } else { + o.destroy(this[Z].on('close', callback), e); + } + resume(this); + }); + } + } + function onHttp2SessionError(e) { + A(e.code !== 'ERR_TLS_CERT_ALTNAME_INVALID'); + this[Z][z] = e; + onError(this[S], e); + } + function onHttp2FrameError(e, t, r) { + const A = new B(`HTTP/2: "frameError" received - type ${e}, code ${t}`); + if (r === 0) { + this[Z][z] = A; + onError(this[S], A); + } + } + function onHttp2SessionEnd() { + o.destroy(this, new Q('other side closed')); + o.destroy(this[Z], new Q('other side closed')); + } + function onHTTP2GoAway(e) { + const t = this[S]; + const r = new B(`HTTP/2: "GOAWAY" frame received with code ${e}`); + t[Z] = null; + t[Ce] = null; + if (t.destroyed) { + A(this[L] === 0); + const e = t[H].splice(t[W]); + for (let t = 0; t < e.length; t++) { + const A = e[t]; + errorRequest(this, A, r); + } + } else if (t[U] > 0) { + const e = t[H][t[W]]; + t[H][t[W]++] = null; + errorRequest(t, e, r); + } + t[j] = t[W]; + A(t[U] === 0); + t.emit('disconnect', t[R], [t], r); + resume(t); + } + const Te = r(2824); + const _e = r(4415); + const Ue = Buffer.alloc(0); + async function lazyllhttp() { + const e = process.env.JEST_WORKER_ID ? r(3870) : undefined; + let t; + try { + t = await WebAssembly.compile(Buffer.from(r(3434), 'base64')); + } catch (A) { + t = await WebAssembly.compile(Buffer.from(e || r(3870), 'base64')); + } + return await WebAssembly.instantiate(t, { + env: { + wasm_on_url: (e, t, r) => 0, + wasm_on_status: (e, t, r) => { + A.strictEqual(Ge.ptr, e); + const s = t - xe + He.byteOffset; + return Ge.onStatus(new ve(He.buffer, s, r)) || 0; + }, + wasm_on_message_begin: (e) => { + A.strictEqual(Ge.ptr, e); + return Ge.onMessageBegin() || 0; + }, + wasm_on_header_field: (e, t, r) => { + A.strictEqual(Ge.ptr, e); + const s = t - xe + He.byteOffset; + return Ge.onHeaderField(new ve(He.buffer, s, r)) || 0; + }, + wasm_on_header_value: (e, t, r) => { + A.strictEqual(Ge.ptr, e); + const s = t - xe + He.byteOffset; + return Ge.onHeaderValue(new ve(He.buffer, s, r)) || 0; + }, + wasm_on_headers_complete: (e, t, r, s) => { + A.strictEqual(Ge.ptr, e); + return Ge.onHeadersComplete(t, Boolean(r), Boolean(s)) || 0; + }, + wasm_on_body: (e, t, r) => { + A.strictEqual(Ge.ptr, e); + const s = t - xe + He.byteOffset; + return Ge.onBody(new ve(He.buffer, s, r)) || 0; + }, + wasm_on_message_complete: (e) => { + A.strictEqual(Ge.ptr, e); + return Ge.onMessageComplete() || 0; + }, + }, + }); + } + let Le = null; + let Me = lazyllhttp(); + Me.catch(); + let Ge = null; + let He = null; + let Oe = 0; + let xe = null; + const Pe = 1; + const Ye = 2; + const Je = 3; + class Parser { + constructor(e, t, {exports: r}) { + A(Number.isFinite(e[$]) && e[$] > 0); + this.llhttp = r; + this.ptr = this.llhttp.llhttp_alloc(Te.TYPE.RESPONSE); + this.client = e; + this.socket = t; + this.timeout = null; + this.timeoutValue = null; + this.timeoutType = null; + this.statusCode = null; + this.statusText = ''; + this.upgrade = false; + this.headers = []; + this.headersSize = 0; + this.headersMaxSize = e[$]; + this.shouldKeepAlive = false; + this.paused = false; + this.resume = this.resume.bind(this); + this.bytesRead = 0; + this.keepAlive = ''; + this.contentLength = ''; + this.connection = ''; + this.maxResponseSize = e[de]; + } + setTimeout(e, t) { + this.timeoutType = t; + if (e !== this.timeoutValue) { + a.clearTimeout(this.timeout); + if (e) { + this.timeout = a.setTimeout(onParserTimeout, e, this); + if (this.timeout.unref) { + this.timeout.unref(); + } + } else { + this.timeout = null; + } + this.timeoutValue = e; + } else if (this.timeout) { + if (this.timeout.refresh) { + this.timeout.refresh(); + } + } + } + resume() { + if (this.socket.destroyed || !this.paused) { + return; + } + A(this.ptr != null); + A(Ge == null); + this.llhttp.llhttp_resume(this.ptr); + A(this.timeoutType === Ye); + if (this.timeout) { + if (this.timeout.refresh) { + this.timeout.refresh(); + } + } + this.paused = false; + this.execute(this.socket.read() || Ue); + this.readMore(); + } + readMore() { + while (!this.paused && this.ptr) { + const e = this.socket.read(); + if (e === null) { + break; + } + this.execute(e); + } + } + execute(e) { + A(this.ptr != null); + A(Ge == null); + A(!this.paused); + const {socket: t, llhttp: r} = this; + if (e.length > Oe) { + if (xe) { + r.free(xe); + } + Oe = Math.ceil(e.length / 4096) * 4096; + xe = r.malloc(Oe); + } + new Uint8Array(r.memory.buffer, xe, Oe).set(e); + try { + let A; + try { + He = e; + Ge = this; + A = r.llhttp_execute(this.ptr, xe, e.length); + } catch (e) { + throw e; + } finally { + Ge = null; + He = null; + } + const s = r.llhttp_get_error_pos(this.ptr) - xe; + if (A === Te.ERROR.PAUSED_UPGRADE) { + this.onUpgrade(e.slice(s)); + } else if (A === Te.ERROR.PAUSED) { + this.paused = true; + t.unshift(e.slice(s)); + } else if (A !== Te.ERROR.OK) { + const t = r.llhttp_get_error_reason(this.ptr); + let i = ''; + if (t) { + const e = new Uint8Array(r.memory.buffer, t).indexOf(0); + i = + 'Response does not match the HTTP/1.1 protocol (' + + Buffer.from(r.memory.buffer, t, e).toString() + + ')'; + } + throw new m(i, Te.ERROR[A], e.slice(s)); + } + } catch (e) { + o.destroy(t, e); + } + } + destroy() { + A(this.ptr != null); + A(Ge == null); + this.llhttp.llhttp_free(this.ptr); + this.ptr = null; + a.clearTimeout(this.timeout); + this.timeout = null; + this.timeoutValue = null; + this.timeoutType = null; + this.paused = false; + } + onStatus(e) { + this.statusText = e.toString(); + } + onMessageBegin() { + const {socket: e, client: t} = this; + if (e.destroyed) { + return -1; + } + const r = t[H][t[W]]; + if (!r) { + return -1; + } + } + onHeaderField(e) { + const t = this.headers.length; + if ((t & 1) === 0) { + this.headers.push(e); + } else { + this.headers[t - 1] = Buffer.concat([this.headers[t - 1], e]); + } + this.trackHeader(e.length); + } + onHeaderValue(e) { + let t = this.headers.length; + if ((t & 1) === 1) { + this.headers.push(e); + t += 1; + } else { + this.headers[t - 1] = Buffer.concat([this.headers[t - 1], e]); + } + const r = this.headers[t - 2]; + if (r.length === 10 && r.toString().toLowerCase() === 'keep-alive') { + this.keepAlive += e.toString(); + } else if (r.length === 10 && r.toString().toLowerCase() === 'connection') { + this.connection += e.toString(); + } else if (r.length === 14 && r.toString().toLowerCase() === 'content-length') { + this.contentLength += e.toString(); + } + this.trackHeader(e.length); + } + trackHeader(e) { + this.headersSize += e; + if (this.headersSize >= this.headersMaxSize) { + o.destroy(this.socket, new C()); + } + } + onUpgrade(e) { + const {upgrade: t, client: r, socket: s, headers: i, statusCode: n} = this; + A(t); + const a = r[H][r[W]]; + A(a); + A(!s.destroyed); + A(s === r[Z]); + A(!this.paused); + A(a.upgrade || a.method === 'CONNECT'); + this.statusCode = null; + this.statusText = ''; + this.shouldKeepAlive = null; + A(this.headers.length % 2 === 0); + this.headers = []; + this.headersSize = 0; + s.unshift(e); + s[N].destroy(); + s[N] = null; + s[S] = null; + s[z] = null; + s.removeListener('error', onSocketError) + .removeListener('readable', onSocketReadable) + .removeListener('end', onSocketEnd) + .removeListener('close', onSocketClose); + r[Z] = null; + r[H][r[W]++] = null; + r.emit('disconnect', r[R], [r], new B('upgrade')); + try { + a.onUpgrade(n, i, s); + } catch (e) { + o.destroy(s, e); + } + resume(r); + } + onHeadersComplete(e, t, r) { + const {client: s, socket: i, headers: n, statusText: a} = this; + if (i.destroyed) { + return -1; + } + const c = s[H][s[W]]; + if (!c) { + return -1; + } + A(!this.upgrade); + A(this.statusCode < 200); + if (e === 100) { + o.destroy(i, new Q('bad response', o.getSocketInfo(i))); + return -1; + } + if (t && !c.upgrade) { + o.destroy(i, new Q('bad upgrade', o.getSocketInfo(i))); + return -1; + } + A.strictEqual(this.timeoutType, Pe); + this.statusCode = e; + this.shouldKeepAlive = + r || (c.method === 'HEAD' && !i[k] && this.connection.toLowerCase() === 'keep-alive'); + if (this.statusCode >= 200) { + const e = c.bodyTimeout != null ? c.bodyTimeout : s[Ae]; + this.setTimeout(e, Ye); + } else if (this.timeout) { + if (this.timeout.refresh) { + this.timeout.refresh(); + } + } + if (c.method === 'CONNECT') { + A(s[U] === 1); + this.upgrade = true; + return 2; + } + if (t) { + A(s[U] === 1); + this.upgrade = true; + return 2; + } + A(this.headers.length % 2 === 0); + this.headers = []; + this.headersSize = 0; + if (this.shouldKeepAlive && s[X]) { + const e = this.keepAlive ? o.parseKeepAliveTimeout(this.keepAlive) : null; + if (e != null) { + const t = Math.min(e - s[te], s[ee]); + if (t <= 0) { + i[k] = true; + } else { + s[K] = t; + } + } else { + s[K] = s[J]; + } + } else { + i[k] = true; + } + const u = c.onHeaders(e, n, this.resume, a) === false; + if (c.aborted) { + return -1; + } + if (c.method === 'HEAD') { + return 1; + } + if (e < 200) { + return 1; + } + if (i[T]) { + i[T] = false; + resume(s); + } + return u ? Te.ERROR.PAUSED : 0; + } + onBody(e) { + const {client: t, socket: r, statusCode: s, maxResponseSize: i} = this; + if (r.destroyed) { + return -1; + } + const n = t[H][t[W]]; + A(n); + A.strictEqual(this.timeoutType, Ye); + if (this.timeout) { + if (this.timeout.refresh) { + this.timeout.refresh(); + } + } + A(s >= 200); + if (i > -1 && this.bytesRead + e.length > i) { + o.destroy(r, new y()); + return -1; + } + this.bytesRead += e.length; + if (n.onData(e) === false) { + return Te.ERROR.PAUSED; + } + } + onMessageComplete() { + const { + client: e, + socket: t, + statusCode: r, + upgrade: s, + headers: i, + contentLength: n, + bytesRead: a, + shouldKeepAlive: c, + } = this; + if (t.destroyed && (!r || c)) { + return -1; + } + if (s) { + return; + } + const u = e[H][e[W]]; + A(u); + A(r >= 100); + this.statusCode = null; + this.statusText = ''; + this.bytesRead = 0; + this.contentLength = ''; + this.keepAlive = ''; + this.connection = ''; + A(this.headers.length % 2 === 0); + this.headers = []; + this.headersSize = 0; + if (r < 200) { + return; + } + if (u.method !== 'HEAD' && n && a !== parseInt(n, 10)) { + o.destroy(t, new l()); + return -1; + } + u.onComplete(i); + e[H][e[W]++] = null; + if (t[G]) { + A.strictEqual(e[U], 0); + o.destroy(t, new B('reset')); + return Te.ERROR.PAUSED; + } else if (!c) { + o.destroy(t, new B('reset')); + return Te.ERROR.PAUSED; + } else if (t[k] && e[U] === 0) { + o.destroy(t, new B('reset')); + return Te.ERROR.PAUSED; + } else if (e[X] === 1) { + setImmediate(resume, e); + } else { + resume(e); + } + } + } + function onParserTimeout(e) { + const {socket: t, timeoutType: r, client: s} = e; + if (r === Pe) { + if (!t[G] || t.writableNeedDrain || s[U] > 1) { + A(!e.paused, 'cannot be paused while waiting for headers'); + o.destroy(t, new h()); + } + } else if (r === Ye) { + if (!e.paused) { + o.destroy(t, new I()); + } + } else if (r === Je) { + A(s[U] === 0 && s[K]); + o.destroy(t, new B('socket idle timeout')); + } + } + function onSocketReadable() { + const {[N]: e} = this; + if (e) { + e.readMore(); + } + } + function onSocketError(e) { + const {[S]: t, [N]: r} = this; + A(e.code !== 'ERR_TLS_CERT_ALTNAME_INVALID'); + if (t[he] !== 'h2') { + if (e.code === 'ECONNRESET' && r.statusCode && !r.shouldKeepAlive) { + r.onMessageComplete(); + return; + } + } + this[z] = e; + onError(this[S], e); + } + function onError(e, t) { + if (e[U] === 0 && t.code !== 'UND_ERR_INFO' && t.code !== 'UND_ERR_SOCKET') { + A(e[j] === e[W]); + const r = e[H].splice(e[W]); + for (let A = 0; A < r.length; A++) { + const s = r[A]; + errorRequest(e, s, t); + } + A(e[M] === 0); + } + } + function onSocketEnd() { + const {[N]: e, [S]: t} = this; + if (t[he] !== 'h2') { + if (e.statusCode && !e.shouldKeepAlive) { + e.onMessageComplete(); + return; + } + } + o.destroy(this, new Q('other side closed', o.getSocketInfo(this))); + } + function onSocketClose() { + const {[S]: e, [N]: t} = this; + if (e[he] === 'h1' && t) { + if (!this[z] && t.statusCode && !t.shouldKeepAlive) { + t.onMessageComplete(); + } + this[N].destroy(); + this[N] = null; + } + const r = this[z] || new Q('closed', o.getSocketInfo(this)); + e[Z] = null; + if (e.destroyed) { + A(e[L] === 0); + const t = e[H].splice(e[W]); + for (let A = 0; A < t.length; A++) { + const s = t[A]; + errorRequest(e, s, r); + } + } else if (e[U] > 0 && r.code !== 'UND_ERR_INFO') { + const t = e[H][e[W]]; + e[H][e[W]++] = null; + errorRequest(e, t, r); + } + e[j] = e[W]; + A(e[U] === 0); + e.emit('disconnect', e[R], [e], r); + resume(e); + } + async function connect(e) { + A(!e[x]); + A(!e[Z]); + let {host: t, hostname: r, protocol: i, port: n} = e[R]; + if (r[0] === '[') { + const e = r.indexOf(']'); + A(e !== -1); + const t = r.substring(1, e); + A(s.isIP(t)); + r = t; + } + e[x] = true; + if (qe.beforeConnect.hasSubscribers) { + qe.beforeConnect.publish({ + connectParams: { + host: t, + hostname: r, + protocol: i, + port: n, + servername: e[D], + localAddress: e[pe], + }, + connector: e[ie], + }); + } + try { + const s = await new Promise((A, s) => { + e[ie]( + {host: t, hostname: r, protocol: i, port: n, servername: e[D], localAddress: e[pe]}, + (e, t) => { + if (e) { + s(e); + } else { + A(t); + } + }, + ); + }); + if (e.destroyed) { + o.destroy( + s.on('error', () => {}), + new b(), + ); + return; + } + e[x] = false; + A(s); + const a = s.alpnProtocol === 'h2'; + if (a) { + if (!Fe) { + Fe = true; + process.emitWarning('H2 support is experimental, expect them to change at any time.', { + code: 'UNDICI-H2', + }); + } + const t = me.connect(e[R], { + createConnection: () => s, + peerMaxConcurrentStreams: e[Qe].maxConcurrentStreams, + }); + e[he] = 'h2'; + t[S] = e; + t[Z] = s; + t.on('error', onHttp2SessionError); + t.on('frameError', onHttp2FrameError); + t.on('end', onHttp2SessionEnd); + t.on('goaway', onHTTP2GoAway); + t.on('close', onSocketClose); + t.unref(); + e[Ce] = t; + s[Ce] = t; + } else { + if (!Le) { + Le = await Me; + Me = null; + } + s[Y] = false; + s[G] = false; + s[k] = false; + s[T] = false; + s[N] = new Parser(e, s, Le); + } + s[ae] = 0; + s[oe] = e[oe]; + s[S] = e; + s[z] = null; + s.on('error', onSocketError) + .on('readable', onSocketReadable) + .on('end', onSocketEnd) + .on('close', onSocketClose); + e[Z] = s; + if (qe.connected.hasSubscribers) { + qe.connected.publish({ + connectParams: { + host: t, + hostname: r, + protocol: i, + port: n, + servername: e[D], + localAddress: e[pe], + }, + connector: e[ie], + socket: s, + }); + } + e.emit('connect', e[R], [e]); + } catch (s) { + if (e.destroyed) { + return; + } + e[x] = false; + if (qe.connectError.hasSubscribers) { + qe.connectError.publish({ + connectParams: { + host: t, + hostname: r, + protocol: i, + port: n, + servername: e[D], + localAddress: e[pe], + }, + connector: e[ie], + error: s, + }); + } + if (s.code === 'ERR_TLS_CERT_ALTNAME_INVALID') { + A(e[U] === 0); + while (e[L] > 0 && e[H][e[j]].servername === e[D]) { + const t = e[H][e[j]++]; + errorRequest(e, t, s); + } + } else { + onError(e, s); + } + e.emit('connectionError', e[R], [e], s); + } + resume(e); + } + function emitDrain(e) { + e[P] = 0; + e.emit('drain', e[R], [e]); + } + function resume(e, t) { + if (e[_] === 2) { + return; + } + e[_] = 2; + _resume(e, t); + e[_] = 0; + if (e[W] > 256) { + e[H].splice(0, e[W]); + e[j] -= e[W]; + e[W] = 0; + } + } + function _resume(e, t) { + while (true) { + if (e.destroyed) { + A(e[L] === 0); + return; + } + if (e[Ne] && !e[M]) { + e[Ne](); + e[Ne] = null; + return; + } + const r = e[Z]; + if (r && !r.destroyed && r.alpnProtocol !== 'h2') { + if (e[M] === 0) { + if (!r[Y] && r.unref) { + r.unref(); + r[Y] = true; + } + } else if (r[Y] && r.ref) { + r.ref(); + r[Y] = false; + } + if (e[M] === 0) { + if (r[N].timeoutType !== Je) { + r[N].setTimeout(e[K], Je); + } + } else if (e[U] > 0 && r[N].statusCode < 200) { + if (r[N].timeoutType !== Pe) { + const t = e[H][e[W]]; + const A = t.headersTimeout != null ? t.headersTimeout : e[re]; + r[N].setTimeout(A, Pe); + } + } + } + if (e[v]) { + e[P] = 2; + } else if (e[P] === 2) { + if (t) { + e[P] = 1; + process.nextTick(emitDrain, e); + } else { + emitDrain(e); + } + continue; + } + if (e[L] === 0) { + return; + } + if (e[U] >= (e[X] || 1)) { + return; + } + const s = e[H][e[j]]; + if (e[R].protocol === 'https:' && e[D] !== s.servername) { + if (e[U] > 0) { + return; + } + e[D] = s.servername; + if (r && r.servername !== s.servername) { + o.destroy(r, new B('servername changed')); + return; + } + } + if (e[x]) { + return; + } + if (!r && !e[Ce]) { + connect(e); + return; + } + if (r.destroyed || r[G] || r[k] || r[T]) { + return; + } + if (e[U] > 0 && !s.idempotent) { + return; + } + if (e[U] > 0 && (s.upgrade || s.method === 'CONNECT')) { + return; + } + if (e[U] > 0 && o.bodyLength(s.body) !== 0 && (o.isStream(s.body) || o.isAsyncIterable(s.body))) { + return; + } + if (!s.aborted && write(e, s)) { + e[j]++; + } else { + e[H].splice(e[j], 1); + } + } + } + function shouldSendContentLength(e) { + return e !== 'GET' && e !== 'HEAD' && e !== 'OPTIONS' && e !== 'TRACE' && e !== 'CONNECT'; + } + function write(e, t) { + if (e[he] === 'h2') { + writeH2(e, e[Ce], t); + return; + } + const {body: r, method: s, path: i, host: n, upgrade: a, headers: c, blocking: u, reset: l} = t; + const p = s === 'PUT' || s === 'POST' || s === 'PATCH'; + if (r && typeof r.read === 'function') { + r.read(0); + } + const h = o.bodyLength(r); + let C = h; + if (C === null) { + C = t.contentLength; + } + if (C === 0 && !p) { + C = null; + } + if (shouldSendContentLength(s) && C > 0 && t.contentLength !== null && t.contentLength !== C) { + if (e[se]) { + errorRequest(e, t, new g()); + return false; + } + process.emitWarning(new g()); + } + const Q = e[Z]; + try { + t.onConnect((r) => { + if (t.aborted || t.completed) { + return; + } + errorRequest(e, t, r || new d()); + o.destroy(Q, new B('aborted')); + }); + } catch (r) { + errorRequest(e, t, r); + } + if (t.aborted) { + return false; + } + if (s === 'HEAD') { + Q[k] = true; + } + if (a || s === 'CONNECT') { + Q[k] = true; + } + if (l != null) { + Q[k] = l; + } + if (e[oe] && Q[ae]++ >= e[oe]) { + Q[k] = true; + } + if (u) { + Q[T] = true; + } + let I = `${s} ${i} HTTP/1.1\r\n`; + if (typeof n === 'string') { + I += `host: ${n}\r\n`; + } else { + I += e[V]; + } + if (a) { + I += `connection: upgrade\r\nupgrade: ${a}\r\n`; + } else if (e[X] && !Q[k]) { + I += 'connection: keep-alive\r\n'; + } else { + I += 'connection: close\r\n'; + } + if (c) { + I += c; + } + if (qe.sendHeaders.hasSubscribers) { + qe.sendHeaders.publish({request: t, headers: I, socket: Q}); + } + if (!r || h === 0) { + if (C === 0) { + Q.write(`${I}content-length: 0\r\n\r\n`, 'latin1'); + } else { + A(C === null, 'no body must not have content length'); + Q.write(`${I}\r\n`, 'latin1'); + } + t.onRequestSent(); + } else if (o.isBuffer(r)) { + A(C === r.byteLength, 'buffer body must have content length'); + Q.cork(); + Q.write(`${I}content-length: ${C}\r\n\r\n`, 'latin1'); + Q.write(r); + Q.uncork(); + t.onBodySent(r); + t.onRequestSent(); + if (!p) { + Q[k] = true; + } + } else if (o.isBlobLike(r)) { + if (typeof r.stream === 'function') { + writeIterable({ + body: r.stream(), + client: e, + request: t, + socket: Q, + contentLength: C, + header: I, + expectsPayload: p, + }); + } else { + writeBlob({ + body: r, + client: e, + request: t, + socket: Q, + contentLength: C, + header: I, + expectsPayload: p, + }); + } + } else if (o.isStream(r)) { + writeStream({ + body: r, + client: e, + request: t, + socket: Q, + contentLength: C, + header: I, + expectsPayload: p, + }); + } else if (o.isIterable(r)) { + writeIterable({ + body: r, + client: e, + request: t, + socket: Q, + contentLength: C, + header: I, + expectsPayload: p, + }); + } else { + A(false); + } + return true; + } + function writeH2(e, t, r) { + const {body: s, method: i, path: n, host: a, upgrade: u, expectContinue: l, signal: p, headers: h} = r; + let C; + if (typeof h === 'string') C = c[Ie](h.trim()); + else C = h; + if (u) { + errorRequest(e, r, new Error('Upgrade not supported for H2')); + return false; + } + try { + r.onConnect((t) => { + if (r.aborted || r.completed) { + return; + } + errorRequest(e, r, t || new d()); + }); + } catch (t) { + errorRequest(e, r, t); + } + if (r.aborted) { + return false; + } + let Q; + const I = e[Qe]; + C[ye] = a || e[Ee]; + C[be] = i; + if (i === 'CONNECT') { + t.ref(); + Q = t.request(C, {endStream: false, signal: p}); + if (Q.id && !Q.pending) { + r.onUpgrade(null, null, Q); + ++I.openStreams; + } else { + Q.once('ready', () => { + r.onUpgrade(null, null, Q); + ++I.openStreams; + }); + } + Q.once('close', () => { + I.openStreams -= 1; + if (I.openStreams === 0) t.unref(); + }); + return true; + } + C[we] = n; + C[Re] = 'https'; + const m = i === 'PUT' || i === 'POST' || i === 'PATCH'; + if (s && typeof s.read === 'function') { + s.read(0); + } + let y = o.bodyLength(s); + if (y == null) { + y = r.contentLength; + } + if (y === 0 || !m) { + y = null; + } + if (shouldSendContentLength(i) && y > 0 && r.contentLength != null && r.contentLength !== y) { + if (e[se]) { + errorRequest(e, r, new g()); + return false; + } + process.emitWarning(new g()); + } + if (y != null) { + A(s, 'no body must not have content length'); + C[ke] = `${y}`; + } + t.ref(); + const b = i === 'GET' || i === 'HEAD'; + if (l) { + C[De] = '100-continue'; + Q = t.request(C, {endStream: b, signal: p}); + Q.once('continue', writeBodyH2); + } else { + Q = t.request(C, {endStream: b, signal: p}); + writeBodyH2(); + } + ++I.openStreams; + Q.once('response', (e) => { + const {[Se]: t, ...A} = e; + if (r.onHeaders(Number(t), A, Q.resume.bind(Q), '') === false) { + Q.pause(); + } + }); + Q.once('end', () => { + r.onComplete([]); + }); + Q.on('data', (e) => { + if (r.onData(e) === false) { + Q.pause(); + } + }); + Q.once('close', () => { + I.openStreams -= 1; + if (I.openStreams === 0) { + t.unref(); + } + }); + Q.once('error', function (t) { + if (e[Ce] && !e[Ce].destroyed && !this.closed && !this.destroyed) { + I.streams -= 1; + o.destroy(Q, t); + } + }); + Q.once('frameError', (t, A) => { + const s = new B(`HTTP/2: "frameError" received - type ${t}, code ${A}`); + errorRequest(e, r, s); + if (e[Ce] && !e[Ce].destroyed && !this.closed && !this.destroyed) { + I.streams -= 1; + o.destroy(Q, s); + } + }); + return true; + function writeBodyH2() { + if (!s) { + r.onRequestSent(); + } else if (o.isBuffer(s)) { + A(y === s.byteLength, 'buffer body must have content length'); + Q.cork(); + Q.write(s); + Q.uncork(); + Q.end(); + r.onBodySent(s); + r.onRequestSent(); + } else if (o.isBlobLike(s)) { + if (typeof s.stream === 'function') { + writeIterable({ + client: e, + request: r, + contentLength: y, + h2stream: Q, + expectsPayload: m, + body: s.stream(), + socket: e[Z], + header: '', + }); + } else { + writeBlob({ + body: s, + client: e, + request: r, + contentLength: y, + expectsPayload: m, + h2stream: Q, + header: '', + socket: e[Z], + }); + } + } else if (o.isStream(s)) { + writeStream({ + body: s, + client: e, + request: r, + contentLength: y, + expectsPayload: m, + socket: e[Z], + h2stream: Q, + header: '', + }); + } else if (o.isIterable(s)) { + writeIterable({ + body: s, + client: e, + request: r, + contentLength: y, + expectsPayload: m, + header: '', + h2stream: Q, + socket: e[Z], + }); + } else { + A(false); + } + } + } + function writeStream({ + h2stream: e, + body: t, + client: r, + request: s, + socket: i, + contentLength: a, + header: c, + expectsPayload: u, + }) { + A(a !== 0 || r[U] === 0, 'stream body cannot be pipelined'); + if (r[he] === 'h2') { + const p = n(t, e, (r) => { + if (r) { + o.destroy(t, r); + o.destroy(e, r); + } else { + s.onRequestSent(); + } + }); + p.on('data', onPipeData); + p.once('end', () => { + p.removeListener('data', onPipeData); + o.destroy(p); + }); + function onPipeData(e) { + s.onBodySent(e); + } + return; + } + let g = false; + const l = new AsyncWriter({ + socket: i, + request: s, + contentLength: a, + client: r, + expectsPayload: u, + header: c, + }); + const onData = function (e) { + if (g) { + return; + } + try { + if (!l.write(e) && this.pause) { + this.pause(); + } + } catch (e) { + o.destroy(this, e); + } + }; + const onDrain = function () { + if (g) { + return; + } + if (t.resume) { + t.resume(); + } + }; + const onAbort = function () { + if (g) { + return; + } + const e = new d(); + queueMicrotask(() => onFinished(e)); + }; + const onFinished = function (e) { + if (g) { + return; + } + g = true; + A(i.destroyed || (i[G] && r[U] <= 1)); + i.off('drain', onDrain).off('error', onFinished); + t.removeListener('data', onData) + .removeListener('end', onFinished) + .removeListener('error', onFinished) + .removeListener('close', onAbort); + if (!e) { + try { + l.end(); + } catch (t) { + e = t; + } + } + l.destroy(e); + if (e && (e.code !== 'UND_ERR_INFO' || e.message !== 'reset')) { + o.destroy(t, e); + } else { + o.destroy(t); + } + }; + t.on('data', onData).on('end', onFinished).on('error', onFinished).on('close', onAbort); + if (t.resume) { + t.resume(); + } + i.on('drain', onDrain).on('error', onFinished); + } + async function writeBlob({ + h2stream: e, + body: t, + client: r, + request: s, + socket: i, + contentLength: n, + header: a, + expectsPayload: c, + }) { + A(n === t.size, 'blob body must have content length'); + const u = r[he] === 'h2'; + try { + if (n != null && n !== t.size) { + throw new g(); + } + const A = Buffer.from(await t.arrayBuffer()); + if (u) { + e.cork(); + e.write(A); + e.uncork(); + } else { + i.cork(); + i.write(`${a}content-length: ${n}\r\n\r\n`, 'latin1'); + i.write(A); + i.uncork(); + } + s.onBodySent(A); + s.onRequestSent(); + if (!c) { + i[k] = true; + } + resume(r); + } catch (t) { + o.destroy(u ? e : i, t); + } + } + async function writeIterable({ + h2stream: e, + body: t, + client: r, + request: s, + socket: i, + contentLength: n, + header: o, + expectsPayload: a, + }) { + A(n !== 0 || r[U] === 0, 'iterator body cannot be pipelined'); + let c = null; + function onDrain() { + if (c) { + const e = c; + c = null; + e(); + } + } + const waitForDrain = () => + new Promise((e, t) => { + A(c === null); + if (i[z]) { + t(i[z]); + } else { + c = e; + } + }); + if (r[he] === 'h2') { + e.on('close', onDrain).on('drain', onDrain); + try { + for await (const r of t) { + if (i[z]) { + throw i[z]; + } + const t = e.write(r); + s.onBodySent(r); + if (!t) { + await waitForDrain(); + } + } + } catch (t) { + e.destroy(t); + } finally { + s.onRequestSent(); + e.end(); + e.off('close', onDrain).off('drain', onDrain); + } + return; + } + i.on('close', onDrain).on('drain', onDrain); + const u = new AsyncWriter({ + socket: i, + request: s, + contentLength: n, + client: r, + expectsPayload: a, + header: o, + }); + try { + for await (const e of t) { + if (i[z]) { + throw i[z]; + } + if (!u.write(e)) { + await waitForDrain(); + } + } + u.end(); + } catch (e) { + u.destroy(e); + } finally { + i.off('close', onDrain).off('drain', onDrain); + } + } + class AsyncWriter { + constructor({socket: e, request: t, contentLength: r, client: A, expectsPayload: s, header: i}) { + this.socket = e; + this.request = t; + this.contentLength = r; + this.client = A; + this.bytesWritten = 0; + this.expectsPayload = s; + this.header = i; + e[G] = true; + } + write(e) { + const { + socket: t, + request: r, + contentLength: A, + client: s, + bytesWritten: i, + expectsPayload: n, + header: o, + } = this; + if (t[z]) { + throw t[z]; + } + if (t.destroyed) { + return false; + } + const a = Buffer.byteLength(e); + if (!a) { + return true; + } + if (A !== null && i + a > A) { + if (s[se]) { + throw new g(); + } + process.emitWarning(new g()); + } + t.cork(); + if (i === 0) { + if (!n) { + t[k] = true; + } + if (A === null) { + t.write(`${o}transfer-encoding: chunked\r\n`, 'latin1'); + } else { + t.write(`${o}content-length: ${A}\r\n\r\n`, 'latin1'); + } + } + if (A === null) { + t.write(`\r\n${a.toString(16)}\r\n`, 'latin1'); + } + this.bytesWritten += a; + const c = t.write(e); + t.uncork(); + r.onBodySent(e); + if (!c) { + if (t[N].timeout && t[N].timeoutType === Pe) { + if (t[N].timeout.refresh) { + t[N].timeout.refresh(); + } + } + } + return c; + } + end() { + const { + socket: e, + contentLength: t, + client: r, + bytesWritten: A, + expectsPayload: s, + header: i, + request: n, + } = this; + n.onRequestSent(); + e[G] = false; + if (e[z]) { + throw e[z]; + } + if (e.destroyed) { + return; + } + if (A === 0) { + if (s) { + e.write(`${i}content-length: 0\r\n\r\n`, 'latin1'); + } else { + e.write(`${i}\r\n`, 'latin1'); + } + } else if (t === null) { + e.write('\r\n0\r\n\r\n', 'latin1'); + } + if (t !== null && A !== t) { + if (r[se]) { + throw new g(); + } else { + process.emitWarning(new g()); + } + } + if (e[N].timeout && e[N].timeoutType === Pe) { + if (e[N].timeout.refresh) { + e[N].timeout.refresh(); + } + } + resume(r); + } + destroy(e) { + const {socket: t, client: r} = this; + t[G] = false; + if (e) { + A(r[U] <= 1, 'pipeline should only contain this request'); + o.destroy(t, e); + } + } + } + function errorRequest(e, t, r) { + try { + t.onError(r); + A(t.aborted); + } catch (r) { + e.emit('error', r); + } + } + e.exports = Client; + }, + 3194: (e, t, r) => { + 'use strict'; + const {kConnected: A, kSize: s} = r(6443); + class CompatWeakRef { + constructor(e) { + this.value = e; + } + deref() { + return this.value[A] === 0 && this.value[s] === 0 ? undefined : this.value; + } + } + class CompatFinalizer { + constructor(e) { + this.finalizer = e; + } + register(e, t) { + if (e.on) { + e.on('disconnect', () => { + if (e[A] === 0 && e[s] === 0) { + this.finalizer(t); + } + }); + } + } + } + e.exports = function () { + if (process.env.NODE_V8_COVERAGE) { + return {WeakRef: CompatWeakRef, FinalizationRegistry: CompatFinalizer}; + } + return { + WeakRef: global.WeakRef || CompatWeakRef, + FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer, + }; + }; + }, + 9237: (e) => { + 'use strict'; + const t = 1024; + const r = 4096; + e.exports = {maxAttributeValueSize: t, maxNameValuePairSize: r}; + }, + 3168: (e, t, r) => { + 'use strict'; + const {parseSetCookie: A} = r(8915); + const {stringify: s} = r(3834); + const {webidl: i} = r(4222); + const {Headers: n} = r(6349); + function getCookies(e) { + i.argumentLengthCheck(arguments, 1, {header: 'getCookies'}); + i.brandCheck(e, n, {strict: false}); + const t = e.get('cookie'); + const r = {}; + if (!t) { + return r; + } + for (const e of t.split(';')) { + const [t, ...A] = e.split('='); + r[t.trim()] = A.join('='); + } + return r; + } + function deleteCookie(e, t, r) { + i.argumentLengthCheck(arguments, 2, {header: 'deleteCookie'}); + i.brandCheck(e, n, {strict: false}); + t = i.converters.DOMString(t); + r = i.converters.DeleteCookieAttributes(r); + setCookie(e, {name: t, value: '', expires: new Date(0), ...r}); + } + function getSetCookies(e) { + i.argumentLengthCheck(arguments, 1, {header: 'getSetCookies'}); + i.brandCheck(e, n, {strict: false}); + const t = e.getSetCookie(); + if (!t) { + return []; + } + return t.map((e) => A(e)); + } + function setCookie(e, t) { + i.argumentLengthCheck(arguments, 2, {header: 'setCookie'}); + i.brandCheck(e, n, {strict: false}); + t = i.converters.Cookie(t); + const r = s(t); + if (r) { + e.append('Set-Cookie', s(t)); + } + } + i.converters.DeleteCookieAttributes = i.dictionaryConverter([ + {converter: i.nullableConverter(i.converters.DOMString), key: 'path', defaultValue: null}, + {converter: i.nullableConverter(i.converters.DOMString), key: 'domain', defaultValue: null}, + ]); + i.converters.Cookie = i.dictionaryConverter([ + {converter: i.converters.DOMString, key: 'name'}, + {converter: i.converters.DOMString, key: 'value'}, + { + converter: i.nullableConverter((e) => { + if (typeof e === 'number') { + return i.converters['unsigned long long'](e); + } + return new Date(e); + }), + key: 'expires', + defaultValue: null, + }, + {converter: i.nullableConverter(i.converters['long long']), key: 'maxAge', defaultValue: null}, + {converter: i.nullableConverter(i.converters.DOMString), key: 'domain', defaultValue: null}, + {converter: i.nullableConverter(i.converters.DOMString), key: 'path', defaultValue: null}, + {converter: i.nullableConverter(i.converters.boolean), key: 'secure', defaultValue: null}, + {converter: i.nullableConverter(i.converters.boolean), key: 'httpOnly', defaultValue: null}, + {converter: i.converters.USVString, key: 'sameSite', allowedValues: ['Strict', 'Lax', 'None']}, + {converter: i.sequenceConverter(i.converters.DOMString), key: 'unparsed', defaultValue: []}, + ]); + e.exports = { + getCookies: getCookies, + deleteCookie: deleteCookie, + getSetCookies: getSetCookies, + setCookie: setCookie, + }; + }, + 8915: (e, t, r) => { + 'use strict'; + const {maxNameValuePairSize: A, maxAttributeValueSize: s} = r(9237); + const {isCTLExcludingHtab: i} = r(3834); + const {collectASequenceOfCodePointsFast: n} = r(4322); + const o = r(2613); + function parseSetCookie(e) { + if (i(e)) { + return null; + } + let t = ''; + let r = ''; + let s = ''; + let o = ''; + if (e.includes(';')) { + const A = {position: 0}; + t = n(';', e, A); + r = e.slice(A.position); + } else { + t = e; + } + if (!t.includes('=')) { + o = t; + } else { + const e = {position: 0}; + s = n('=', t, e); + o = t.slice(e.position + 1); + } + s = s.trim(); + o = o.trim(); + if (s.length + o.length > A) { + return null; + } + return {name: s, value: o, ...parseUnparsedAttributes(r)}; + } + function parseUnparsedAttributes(e, t = {}) { + if (e.length === 0) { + return t; + } + o(e[0] === ';'); + e = e.slice(1); + let r = ''; + if (e.includes(';')) { + r = n(';', e, {position: 0}); + e = e.slice(r.length); + } else { + r = e; + e = ''; + } + let A = ''; + let i = ''; + if (r.includes('=')) { + const e = {position: 0}; + A = n('=', r, e); + i = r.slice(e.position + 1); + } else { + A = r; + } + A = A.trim(); + i = i.trim(); + if (i.length > s) { + return parseUnparsedAttributes(e, t); + } + const a = A.toLowerCase(); + if (a === 'expires') { + const e = new Date(i); + t.expires = e; + } else if (a === 'max-age') { + const r = i.charCodeAt(0); + if ((r < 48 || r > 57) && i[0] !== '-') { + return parseUnparsedAttributes(e, t); + } + if (!/^\d+$/.test(i)) { + return parseUnparsedAttributes(e, t); + } + const A = Number(i); + t.maxAge = A; + } else if (a === 'domain') { + let e = i; + if (e[0] === '.') { + e = e.slice(1); + } + e = e.toLowerCase(); + t.domain = e; + } else if (a === 'path') { + let e = ''; + if (i.length === 0 || i[0] !== '/') { + e = '/'; + } else { + e = i; + } + t.path = e; + } else if (a === 'secure') { + t.secure = true; + } else if (a === 'httponly') { + t.httpOnly = true; + } else if (a === 'samesite') { + let e = 'Default'; + const r = i.toLowerCase(); + if (r.includes('none')) { + e = 'None'; + } + if (r.includes('strict')) { + e = 'Strict'; + } + if (r.includes('lax')) { + e = 'Lax'; + } + t.sameSite = e; + } else { + t.unparsed ??= []; + t.unparsed.push(`${A}=${i}`); + } + return parseUnparsedAttributes(e, t); + } + e.exports = {parseSetCookie: parseSetCookie, parseUnparsedAttributes: parseUnparsedAttributes}; + }, + 3834: (e) => { + 'use strict'; + function isCTLExcludingHtab(e) { + if (e.length === 0) { + return false; + } + for (const t of e) { + const e = t.charCodeAt(0); + if (e >= 0 || e <= 8 || e >= 10 || e <= 31 || e === 127) { + return false; + } + } + } + function validateCookieName(e) { + for (const t of e) { + const e = t.charCodeAt(0); + if ( + e <= 32 || + e > 127 || + t === '(' || + t === ')' || + t === '>' || + t === '<' || + t === '@' || + t === ',' || + t === ';' || + t === ':' || + t === '\\' || + t === '"' || + t === '/' || + t === '[' || + t === ']' || + t === '?' || + t === '=' || + t === '{' || + t === '}' + ) { + throw new Error('Invalid cookie name'); + } + } + } + function validateCookieValue(e) { + for (const t of e) { + const e = t.charCodeAt(0); + if (e < 33 || e === 34 || e === 44 || e === 59 || e === 92 || e > 126) { + throw new Error('Invalid header value'); + } + } + } + function validateCookiePath(e) { + for (const t of e) { + const e = t.charCodeAt(0); + if (e < 33 || t === ';') { + throw new Error('Invalid cookie path'); + } + } + } + function validateCookieDomain(e) { + if (e.startsWith('-') || e.endsWith('.') || e.endsWith('-')) { + throw new Error('Invalid cookie domain'); + } + } + function toIMFDate(e) { + if (typeof e === 'number') { + e = new Date(e); + } + const t = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; + const r = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + const A = t[e.getUTCDay()]; + const s = e.getUTCDate().toString().padStart(2, '0'); + const i = r[e.getUTCMonth()]; + const n = e.getUTCFullYear(); + const o = e.getUTCHours().toString().padStart(2, '0'); + const a = e.getUTCMinutes().toString().padStart(2, '0'); + const c = e.getUTCSeconds().toString().padStart(2, '0'); + return `${A}, ${s} ${i} ${n} ${o}:${a}:${c} GMT`; + } + function validateCookieMaxAge(e) { + if (e < 0) { + throw new Error('Invalid cookie max-age'); + } + } + function stringify(e) { + if (e.name.length === 0) { + return null; + } + validateCookieName(e.name); + validateCookieValue(e.value); + const t = [`${e.name}=${e.value}`]; + if (e.name.startsWith('__Secure-')) { + e.secure = true; + } + if (e.name.startsWith('__Host-')) { + e.secure = true; + e.domain = null; + e.path = '/'; + } + if (e.secure) { + t.push('Secure'); + } + if (e.httpOnly) { + t.push('HttpOnly'); + } + if (typeof e.maxAge === 'number') { + validateCookieMaxAge(e.maxAge); + t.push(`Max-Age=${e.maxAge}`); + } + if (e.domain) { + validateCookieDomain(e.domain); + t.push(`Domain=${e.domain}`); + } + if (e.path) { + validateCookiePath(e.path); + t.push(`Path=${e.path}`); + } + if (e.expires && e.expires.toString() !== 'Invalid Date') { + t.push(`Expires=${toIMFDate(e.expires)}`); + } + if (e.sameSite) { + t.push(`SameSite=${e.sameSite}`); + } + for (const r of e.unparsed) { + if (!r.includes('=')) { + throw new Error('Invalid unparsed'); + } + const [e, ...A] = r.split('='); + t.push(`${e.trim()}=${A.join('=')}`); + } + return t.join('; '); + } + e.exports = { + isCTLExcludingHtab: isCTLExcludingHtab, + validateCookieName: validateCookieName, + validateCookiePath: validateCookiePath, + validateCookieValue: validateCookieValue, + toIMFDate: toIMFDate, + stringify: stringify, + }; + }, + 9136: (e, t, r) => { + 'use strict'; + const A = r(9278); + const s = r(2613); + const i = r(3440); + const {InvalidArgumentError: n, ConnectTimeoutError: o} = r(8707); + let a; + let c; + if (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) { + c = class WeakSessionCache { + constructor(e) { + this._maxCachedSessions = e; + this._sessionCache = new Map(); + this._sessionRegistry = new global.FinalizationRegistry((e) => { + if (this._sessionCache.size < this._maxCachedSessions) { + return; + } + const t = this._sessionCache.get(e); + if (t !== undefined && t.deref() === undefined) { + this._sessionCache.delete(e); + } + }); + } + get(e) { + const t = this._sessionCache.get(e); + return t ? t.deref() : null; + } + set(e, t) { + if (this._maxCachedSessions === 0) { + return; + } + this._sessionCache.set(e, new WeakRef(t)); + this._sessionRegistry.register(t, e); + } + }; + } else { + c = class SimpleSessionCache { + constructor(e) { + this._maxCachedSessions = e; + this._sessionCache = new Map(); + } + get(e) { + return this._sessionCache.get(e); + } + set(e, t) { + if (this._maxCachedSessions === 0) { + return; + } + if (this._sessionCache.size >= this._maxCachedSessions) { + const {value: e} = this._sessionCache.keys().next(); + this._sessionCache.delete(e); + } + this._sessionCache.set(e, t); + } + }; + } + function buildConnector({allowH2: e, maxCachedSessions: t, socketPath: o, timeout: u, ...g}) { + if (t != null && (!Number.isInteger(t) || t < 0)) { + throw new n('maxCachedSessions must be a positive integer or zero'); + } + const l = {path: o, ...g}; + const p = new c(t == null ? 100 : t); + u = u == null ? 1e4 : u; + e = e != null ? e : false; + return function connect( + {hostname: t, host: n, protocol: o, port: c, servername: g, localAddress: d, httpSocket: h}, + C, + ) { + let Q; + if (o === 'https:') { + if (!a) { + a = r(4756); + } + g = g || l.servername || i.getServerName(n) || null; + const A = g || t; + const o = p.get(A) || null; + s(A); + Q = a.connect({ + highWaterMark: 16384, + ...l, + servername: g, + session: o, + localAddress: d, + ALPNProtocols: e ? ['http/1.1', 'h2'] : ['http/1.1'], + socket: h, + port: c || 443, + host: t, + }); + Q.on('session', function (e) { + p.set(A, e); + }); + } else { + s(!h, 'httpSocket can only be sent on TLS update'); + Q = A.connect({highWaterMark: 64 * 1024, ...l, localAddress: d, port: c || 80, host: t}); + } + if (l.keepAlive == null || l.keepAlive) { + const e = l.keepAliveInitialDelay === undefined ? 6e4 : l.keepAliveInitialDelay; + Q.setKeepAlive(true, e); + } + const B = setupTimeout(() => onConnectTimeout(Q), u); + Q.setNoDelay(true) + .once(o === 'https:' ? 'secureConnect' : 'connect', function () { + B(); + if (C) { + const e = C; + C = null; + e(null, this); + } + }) + .on('error', function (e) { + B(); + if (C) { + const t = C; + C = null; + t(e); + } + }); + return Q; + }; + } + function setupTimeout(e, t) { + if (!t) { + return () => {}; + } + let r = null; + let A = null; + const s = setTimeout(() => { + r = setImmediate(() => { + if (process.platform === 'win32') { + A = setImmediate(() => e()); + } else { + e(); + } + }); + }, t); + return () => { + clearTimeout(s); + clearImmediate(r); + clearImmediate(A); + }; + } + function onConnectTimeout(e) { + i.destroy(e, new o()); + } + e.exports = buildConnector; + }, + 735: (e) => { + 'use strict'; + const t = {}; + const r = [ + 'Accept', + 'Accept-Encoding', + 'Accept-Language', + 'Accept-Ranges', + 'Access-Control-Allow-Credentials', + 'Access-Control-Allow-Headers', + 'Access-Control-Allow-Methods', + 'Access-Control-Allow-Origin', + 'Access-Control-Expose-Headers', + 'Access-Control-Max-Age', + 'Access-Control-Request-Headers', + 'Access-Control-Request-Method', + 'Age', + 'Allow', + 'Alt-Svc', + 'Alt-Used', + 'Authorization', + 'Cache-Control', + 'Clear-Site-Data', + 'Connection', + 'Content-Disposition', + 'Content-Encoding', + 'Content-Language', + 'Content-Length', + 'Content-Location', + 'Content-Range', + 'Content-Security-Policy', + 'Content-Security-Policy-Report-Only', + 'Content-Type', + 'Cookie', + 'Cross-Origin-Embedder-Policy', + 'Cross-Origin-Opener-Policy', + 'Cross-Origin-Resource-Policy', + 'Date', + 'Device-Memory', + 'Downlink', + 'ECT', + 'ETag', + 'Expect', + 'Expect-CT', + 'Expires', + 'Forwarded', + 'From', + 'Host', + 'If-Match', + 'If-Modified-Since', + 'If-None-Match', + 'If-Range', + 'If-Unmodified-Since', + 'Keep-Alive', + 'Last-Modified', + 'Link', + 'Location', + 'Max-Forwards', + 'Origin', + 'Permissions-Policy', + 'Pragma', + 'Proxy-Authenticate', + 'Proxy-Authorization', + 'RTT', + 'Range', + 'Referer', + 'Referrer-Policy', + 'Refresh', + 'Retry-After', + 'Sec-WebSocket-Accept', + 'Sec-WebSocket-Extensions', + 'Sec-WebSocket-Key', + 'Sec-WebSocket-Protocol', + 'Sec-WebSocket-Version', + 'Server', + 'Server-Timing', + 'Service-Worker-Allowed', + 'Service-Worker-Navigation-Preload', + 'Set-Cookie', + 'SourceMap', + 'Strict-Transport-Security', + 'Supports-Loading-Mode', + 'TE', + 'Timing-Allow-Origin', + 'Trailer', + 'Transfer-Encoding', + 'Upgrade', + 'Upgrade-Insecure-Requests', + 'User-Agent', + 'Vary', + 'Via', + 'WWW-Authenticate', + 'X-Content-Type-Options', + 'X-DNS-Prefetch-Control', + 'X-Frame-Options', + 'X-Permitted-Cross-Domain-Policies', + 'X-Powered-By', + 'X-Requested-With', + 'X-XSS-Protection', + ]; + for (let e = 0; e < r.length; ++e) { + const A = r[e]; + const s = A.toLowerCase(); + t[A] = t[s] = s; + } + Object.setPrototypeOf(t, null); + e.exports = {wellknownHeaderNames: r, headerNameLowerCasedRecord: t}; + }, + 8707: (e) => { + 'use strict'; + class UndiciError extends Error { + constructor(e) { + super(e); + this.name = 'UndiciError'; + this.code = 'UND_ERR'; + } + } + class ConnectTimeoutError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, ConnectTimeoutError); + this.name = 'ConnectTimeoutError'; + this.message = e || 'Connect Timeout Error'; + this.code = 'UND_ERR_CONNECT_TIMEOUT'; + } + } + class HeadersTimeoutError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, HeadersTimeoutError); + this.name = 'HeadersTimeoutError'; + this.message = e || 'Headers Timeout Error'; + this.code = 'UND_ERR_HEADERS_TIMEOUT'; + } + } + class HeadersOverflowError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, HeadersOverflowError); + this.name = 'HeadersOverflowError'; + this.message = e || 'Headers Overflow Error'; + this.code = 'UND_ERR_HEADERS_OVERFLOW'; + } + } + class BodyTimeoutError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, BodyTimeoutError); + this.name = 'BodyTimeoutError'; + this.message = e || 'Body Timeout Error'; + this.code = 'UND_ERR_BODY_TIMEOUT'; + } + } + class ResponseStatusCodeError extends UndiciError { + constructor(e, t, r, A) { + super(e); + Error.captureStackTrace(this, ResponseStatusCodeError); + this.name = 'ResponseStatusCodeError'; + this.message = e || 'Response Status Code Error'; + this.code = 'UND_ERR_RESPONSE_STATUS_CODE'; + this.body = A; + this.status = t; + this.statusCode = t; + this.headers = r; + } + } + class InvalidArgumentError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, InvalidArgumentError); + this.name = 'InvalidArgumentError'; + this.message = e || 'Invalid Argument Error'; + this.code = 'UND_ERR_INVALID_ARG'; + } + } + class InvalidReturnValueError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, InvalidReturnValueError); + this.name = 'InvalidReturnValueError'; + this.message = e || 'Invalid Return Value Error'; + this.code = 'UND_ERR_INVALID_RETURN_VALUE'; + } + } + class RequestAbortedError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, RequestAbortedError); + this.name = 'AbortError'; + this.message = e || 'Request aborted'; + this.code = 'UND_ERR_ABORTED'; + } + } + class InformationalError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, InformationalError); + this.name = 'InformationalError'; + this.message = e || 'Request information'; + this.code = 'UND_ERR_INFO'; + } + } + class RequestContentLengthMismatchError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, RequestContentLengthMismatchError); + this.name = 'RequestContentLengthMismatchError'; + this.message = e || 'Request body length does not match content-length header'; + this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'; + } + } + class ResponseContentLengthMismatchError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, ResponseContentLengthMismatchError); + this.name = 'ResponseContentLengthMismatchError'; + this.message = e || 'Response body length does not match content-length header'; + this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'; + } + } + class ClientDestroyedError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, ClientDestroyedError); + this.name = 'ClientDestroyedError'; + this.message = e || 'The client is destroyed'; + this.code = 'UND_ERR_DESTROYED'; + } + } + class ClientClosedError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, ClientClosedError); + this.name = 'ClientClosedError'; + this.message = e || 'The client is closed'; + this.code = 'UND_ERR_CLOSED'; + } + } + class SocketError extends UndiciError { + constructor(e, t) { + super(e); + Error.captureStackTrace(this, SocketError); + this.name = 'SocketError'; + this.message = e || 'Socket error'; + this.code = 'UND_ERR_SOCKET'; + this.socket = t; + } + } + class NotSupportedError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, NotSupportedError); + this.name = 'NotSupportedError'; + this.message = e || 'Not supported error'; + this.code = 'UND_ERR_NOT_SUPPORTED'; + } + } + class BalancedPoolMissingUpstreamError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, NotSupportedError); + this.name = 'MissingUpstreamError'; + this.message = e || 'No upstream has been added to the BalancedPool'; + this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'; + } + } + class HTTPParserError extends Error { + constructor(e, t, r) { + super(e); + Error.captureStackTrace(this, HTTPParserError); + this.name = 'HTTPParserError'; + this.code = t ? `HPE_${t}` : undefined; + this.data = r ? r.toString() : undefined; + } + } + class ResponseExceededMaxSizeError extends UndiciError { + constructor(e) { + super(e); + Error.captureStackTrace(this, ResponseExceededMaxSizeError); + this.name = 'ResponseExceededMaxSizeError'; + this.message = e || 'Response content exceeded max size'; + this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'; + } + } + class RequestRetryError extends UndiciError { + constructor(e, t, {headers: r, data: A}) { + super(e); + Error.captureStackTrace(this, RequestRetryError); + this.name = 'RequestRetryError'; + this.message = e || 'Request retry error'; + this.code = 'UND_ERR_REQ_RETRY'; + this.statusCode = t; + this.data = A; + this.headers = r; + } + } + e.exports = { + HTTPParserError: HTTPParserError, + UndiciError: UndiciError, + HeadersTimeoutError: HeadersTimeoutError, + HeadersOverflowError: HeadersOverflowError, + BodyTimeoutError: BodyTimeoutError, + RequestContentLengthMismatchError: RequestContentLengthMismatchError, + ConnectTimeoutError: ConnectTimeoutError, + ResponseStatusCodeError: ResponseStatusCodeError, + InvalidArgumentError: InvalidArgumentError, + InvalidReturnValueError: InvalidReturnValueError, + RequestAbortedError: RequestAbortedError, + ClientDestroyedError: ClientDestroyedError, + ClientClosedError: ClientClosedError, + InformationalError: InformationalError, + SocketError: SocketError, + NotSupportedError: NotSupportedError, + ResponseContentLengthMismatchError: ResponseContentLengthMismatchError, + BalancedPoolMissingUpstreamError: BalancedPoolMissingUpstreamError, + ResponseExceededMaxSizeError: ResponseExceededMaxSizeError, + RequestRetryError: RequestRetryError, + }; + }, + 4655: (e, t, r) => { + 'use strict'; + const {InvalidArgumentError: A, NotSupportedError: s} = r(8707); + const i = r(2613); + const {kHTTP2BuildRequest: n, kHTTP2CopyHeaders: o, kHTTP1BuildRequest: a} = r(6443); + const c = r(3440); + const u = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/; + const g = /[^\t\x20-\x7e\x80-\xff]/; + const l = /[^\u0021-\u00ff]/; + const p = Symbol('handler'); + const d = {}; + let h; + try { + const e = r(1637); + d.create = e.channel('undici:request:create'); + d.bodySent = e.channel('undici:request:bodySent'); + d.headers = e.channel('undici:request:headers'); + d.trailers = e.channel('undici:request:trailers'); + d.error = e.channel('undici:request:error'); + } catch { + d.create = {hasSubscribers: false}; + d.bodySent = {hasSubscribers: false}; + d.headers = {hasSubscribers: false}; + d.trailers = {hasSubscribers: false}; + d.error = {hasSubscribers: false}; + } + class Request { + constructor( + e, + { + path: t, + method: s, + body: i, + headers: n, + query: o, + idempotent: a, + blocking: g, + upgrade: C, + headersTimeout: Q, + bodyTimeout: B, + reset: I, + throwOnError: m, + expectContinue: y, + }, + b, + ) { + if (typeof t !== 'string') { + throw new A('path must be a string'); + } else if ( + t[0] !== '/' && + !(t.startsWith('http://') || t.startsWith('https://')) && + s !== 'CONNECT' + ) { + throw new A('path must be an absolute URL or start with a slash'); + } else if (l.exec(t) !== null) { + throw new A('invalid request path'); + } + if (typeof s !== 'string') { + throw new A('method must be a string'); + } else if (u.exec(s) === null) { + throw new A('invalid request method'); + } + if (C && typeof C !== 'string') { + throw new A('upgrade must be a string'); + } + if (Q != null && (!Number.isFinite(Q) || Q < 0)) { + throw new A('invalid headersTimeout'); + } + if (B != null && (!Number.isFinite(B) || B < 0)) { + throw new A('invalid bodyTimeout'); + } + if (I != null && typeof I !== 'boolean') { + throw new A('invalid reset'); + } + if (y != null && typeof y !== 'boolean') { + throw new A('invalid expectContinue'); + } + this.headersTimeout = Q; + this.bodyTimeout = B; + this.throwOnError = m === true; + this.method = s; + this.abort = null; + if (i == null) { + this.body = null; + } else if (c.isStream(i)) { + this.body = i; + const e = this.body._readableState; + if (!e || !e.autoDestroy) { + this.endHandler = function autoDestroy() { + c.destroy(this); + }; + this.body.on('end', this.endHandler); + } + this.errorHandler = (e) => { + if (this.abort) { + this.abort(e); + } else { + this.error = e; + } + }; + this.body.on('error', this.errorHandler); + } else if (c.isBuffer(i)) { + this.body = i.byteLength ? i : null; + } else if (ArrayBuffer.isView(i)) { + this.body = i.buffer.byteLength ? Buffer.from(i.buffer, i.byteOffset, i.byteLength) : null; + } else if (i instanceof ArrayBuffer) { + this.body = i.byteLength ? Buffer.from(i) : null; + } else if (typeof i === 'string') { + this.body = i.length ? Buffer.from(i) : null; + } else if (c.isFormDataLike(i) || c.isIterable(i) || c.isBlobLike(i)) { + this.body = i; + } else { + throw new A( + 'body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable', + ); + } + this.completed = false; + this.aborted = false; + this.upgrade = C || null; + this.path = o ? c.buildURL(t, o) : t; + this.origin = e; + this.idempotent = a == null ? s === 'HEAD' || s === 'GET' : a; + this.blocking = g == null ? false : g; + this.reset = I == null ? null : I; + this.host = null; + this.contentLength = null; + this.contentType = null; + this.headers = ''; + this.expectContinue = y != null ? y : false; + if (Array.isArray(n)) { + if (n.length % 2 !== 0) { + throw new A('headers array must be even'); + } + for (let e = 0; e < n.length; e += 2) { + processHeader(this, n[e], n[e + 1]); + } + } else if (n && typeof n === 'object') { + const e = Object.keys(n); + for (let t = 0; t < e.length; t++) { + const r = e[t]; + processHeader(this, r, n[r]); + } + } else if (n != null) { + throw new A('headers must be an object or an array'); + } + if (c.isFormDataLike(this.body)) { + if (c.nodeMajor < 16 || (c.nodeMajor === 16 && c.nodeMinor < 8)) { + throw new A('Form-Data bodies are only supported in node v16.8 and newer.'); + } + if (!h) { + h = r(8923).extractBody; + } + const [e, t] = h(i); + if (this.contentType == null) { + this.contentType = t; + this.headers += `content-type: ${t}\r\n`; + } + this.body = e.stream; + this.contentLength = e.length; + } else if (c.isBlobLike(i) && this.contentType == null && i.type) { + this.contentType = i.type; + this.headers += `content-type: ${i.type}\r\n`; + } + c.validateHandler(b, s, C); + this.servername = c.getServerName(this.host); + this[p] = b; + if (d.create.hasSubscribers) { + d.create.publish({request: this}); + } + } + onBodySent(e) { + if (this[p].onBodySent) { + try { + return this[p].onBodySent(e); + } catch (e) { + this.abort(e); + } + } + } + onRequestSent() { + if (d.bodySent.hasSubscribers) { + d.bodySent.publish({request: this}); + } + if (this[p].onRequestSent) { + try { + return this[p].onRequestSent(); + } catch (e) { + this.abort(e); + } + } + } + onConnect(e) { + i(!this.aborted); + i(!this.completed); + if (this.error) { + e(this.error); + } else { + this.abort = e; + return this[p].onConnect(e); + } + } + onHeaders(e, t, r, A) { + i(!this.aborted); + i(!this.completed); + if (d.headers.hasSubscribers) { + d.headers.publish({request: this, response: {statusCode: e, headers: t, statusText: A}}); + } + try { + return this[p].onHeaders(e, t, r, A); + } catch (e) { + this.abort(e); + } + } + onData(e) { + i(!this.aborted); + i(!this.completed); + try { + return this[p].onData(e); + } catch (e) { + this.abort(e); + return false; + } + } + onUpgrade(e, t, r) { + i(!this.aborted); + i(!this.completed); + return this[p].onUpgrade(e, t, r); + } + onComplete(e) { + this.onFinally(); + i(!this.aborted); + this.completed = true; + if (d.trailers.hasSubscribers) { + d.trailers.publish({request: this, trailers: e}); + } + try { + return this[p].onComplete(e); + } catch (e) { + this.onError(e); + } + } + onError(e) { + this.onFinally(); + if (d.error.hasSubscribers) { + d.error.publish({request: this, error: e}); + } + if (this.aborted) { + return; + } + this.aborted = true; + return this[p].onError(e); + } + onFinally() { + if (this.errorHandler) { + this.body.off('error', this.errorHandler); + this.errorHandler = null; + } + if (this.endHandler) { + this.body.off('end', this.endHandler); + this.endHandler = null; + } + } + addHeader(e, t) { + processHeader(this, e, t); + return this; + } + static [a](e, t, r) { + return new Request(e, t, r); + } + static [n](e, t, r) { + const s = t.headers; + t = {...t, headers: null}; + const i = new Request(e, t, r); + i.headers = {}; + if (Array.isArray(s)) { + if (s.length % 2 !== 0) { + throw new A('headers array must be even'); + } + for (let e = 0; e < s.length; e += 2) { + processHeader(i, s[e], s[e + 1], true); + } + } else if (s && typeof s === 'object') { + const e = Object.keys(s); + for (let t = 0; t < e.length; t++) { + const r = e[t]; + processHeader(i, r, s[r], true); + } + } else if (s != null) { + throw new A('headers must be an object or an array'); + } + return i; + } + static [o](e) { + const t = e.split('\r\n'); + const r = {}; + for (const e of t) { + const [t, A] = e.split(': '); + if (A == null || A.length === 0) continue; + if (r[t]) r[t] += `,${A}`; + else r[t] = A; + } + return r; + } + } + function processHeaderValue(e, t, r) { + if (t && typeof t === 'object') { + throw new A(`invalid ${e} header`); + } + t = t != null ? `${t}` : ''; + if (g.exec(t) !== null) { + throw new A(`invalid ${e} header`); + } + return r ? t : `${e}: ${t}\r\n`; + } + function processHeader(e, t, r, i = false) { + if (r && typeof r === 'object' && !Array.isArray(r)) { + throw new A(`invalid ${t} header`); + } else if (r === undefined) { + return; + } + if (e.host === null && t.length === 4 && t.toLowerCase() === 'host') { + if (g.exec(r) !== null) { + throw new A(`invalid ${t} header`); + } + e.host = r; + } else if (e.contentLength === null && t.length === 14 && t.toLowerCase() === 'content-length') { + e.contentLength = parseInt(r, 10); + if (!Number.isFinite(e.contentLength)) { + throw new A('invalid content-length header'); + } + } else if (e.contentType === null && t.length === 12 && t.toLowerCase() === 'content-type') { + e.contentType = r; + if (i) e.headers[t] = processHeaderValue(t, r, i); + else e.headers += processHeaderValue(t, r); + } else if (t.length === 17 && t.toLowerCase() === 'transfer-encoding') { + throw new A('invalid transfer-encoding header'); + } else if (t.length === 10 && t.toLowerCase() === 'connection') { + const t = typeof r === 'string' ? r.toLowerCase() : null; + if (t !== 'close' && t !== 'keep-alive') { + throw new A('invalid connection header'); + } else if (t === 'close') { + e.reset = true; + } + } else if (t.length === 10 && t.toLowerCase() === 'keep-alive') { + throw new A('invalid keep-alive header'); + } else if (t.length === 7 && t.toLowerCase() === 'upgrade') { + throw new A('invalid upgrade header'); + } else if (t.length === 6 && t.toLowerCase() === 'expect') { + throw new s('expect header not supported'); + } else if (u.exec(t) === null) { + throw new A('invalid header key'); + } else { + if (Array.isArray(r)) { + for (let A = 0; A < r.length; A++) { + if (i) { + if (e.headers[t]) e.headers[t] += `,${processHeaderValue(t, r[A], i)}`; + else e.headers[t] = processHeaderValue(t, r[A], i); + } else { + e.headers += processHeaderValue(t, r[A]); + } + } + } else { + if (i) e.headers[t] = processHeaderValue(t, r, i); + else e.headers += processHeaderValue(t, r); + } + } + } + e.exports = Request; + }, + 6443: (e) => { + e.exports = { + kClose: Symbol('close'), + kDestroy: Symbol('destroy'), + kDispatch: Symbol('dispatch'), + kUrl: Symbol('url'), + kWriting: Symbol('writing'), + kResuming: Symbol('resuming'), + kQueue: Symbol('queue'), + kConnect: Symbol('connect'), + kConnecting: Symbol('connecting'), + kHeadersList: Symbol('headers list'), + kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'), + kKeepAliveMaxTimeout: Symbol('max keep alive timeout'), + kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'), + kKeepAliveTimeoutValue: Symbol('keep alive timeout'), + kKeepAlive: Symbol('keep alive'), + kHeadersTimeout: Symbol('headers timeout'), + kBodyTimeout: Symbol('body timeout'), + kServerName: Symbol('server name'), + kLocalAddress: Symbol('local address'), + kHost: Symbol('host'), + kNoRef: Symbol('no ref'), + kBodyUsed: Symbol('used'), + kRunning: Symbol('running'), + kBlocking: Symbol('blocking'), + kPending: Symbol('pending'), + kSize: Symbol('size'), + kBusy: Symbol('busy'), + kQueued: Symbol('queued'), + kFree: Symbol('free'), + kConnected: Symbol('connected'), + kClosed: Symbol('closed'), + kNeedDrain: Symbol('need drain'), + kReset: Symbol('reset'), + kDestroyed: Symbol.for('nodejs.stream.destroyed'), + kMaxHeadersSize: Symbol('max headers size'), + kRunningIdx: Symbol('running index'), + kPendingIdx: Symbol('pending index'), + kError: Symbol('error'), + kClients: Symbol('clients'), + kClient: Symbol('client'), + kParser: Symbol('parser'), + kOnDestroyed: Symbol('destroy callbacks'), + kPipelining: Symbol('pipelining'), + kSocket: Symbol('socket'), + kHostHeader: Symbol('host header'), + kConnector: Symbol('connector'), + kStrictContentLength: Symbol('strict content length'), + kMaxRedirections: Symbol('maxRedirections'), + kMaxRequests: Symbol('maxRequestsPerClient'), + kProxy: Symbol('proxy agent options'), + kCounter: Symbol('socket request counter'), + kInterceptors: Symbol('dispatch interceptors'), + kMaxResponseSize: Symbol('max response size'), + kHTTP2Session: Symbol('http2Session'), + kHTTP2SessionState: Symbol('http2Session state'), + kHTTP2BuildRequest: Symbol('http2 build request'), + kHTTP1BuildRequest: Symbol('http1 build request'), + kHTTP2CopyHeaders: Symbol('http2 copy headers'), + kHTTPConnVersion: Symbol('http connection version'), + kRetryHandlerDefaultRetry: Symbol('retry agent default retry'), + kConstruct: Symbol('constructable'), + }; + }, + 3440: (e, t, r) => { + 'use strict'; + const A = r(2613); + const {kDestroyed: s, kBodyUsed: i} = r(6443); + const {IncomingMessage: n} = r(8611); + const o = r(2203); + const a = r(9278); + const {InvalidArgumentError: c} = r(8707); + const {Blob: u} = r(181); + const g = r(9023); + const {stringify: l} = r(3480); + const {headerNameLowerCasedRecord: p} = r(735); + const [d, h] = process.versions.node.split('.').map((e) => Number(e)); + function nop() {} + function isStream(e) { + return e && typeof e === 'object' && typeof e.pipe === 'function' && typeof e.on === 'function'; + } + function isBlobLike(e) { + return ( + (u && e instanceof u) || + (e && + typeof e === 'object' && + (typeof e.stream === 'function' || typeof e.arrayBuffer === 'function') && + /^(Blob|File)$/.test(e[Symbol.toStringTag])) + ); + } + function buildURL(e, t) { + if (e.includes('?') || e.includes('#')) { + throw new Error('Query params cannot be passed when url already contains "?" or "#".'); + } + const r = l(t); + if (r) { + e += '?' + r; + } + return e; + } + function parseURL(e) { + if (typeof e === 'string') { + e = new URL(e); + if (!/^https?:/.test(e.origin || e.protocol)) { + throw new c('Invalid URL protocol: the URL must start with `http:` or `https:`.'); + } + return e; + } + if (!e || typeof e !== 'object') { + throw new c('Invalid URL: The URL argument must be a non-null object.'); + } + if (!/^https?:/.test(e.origin || e.protocol)) { + throw new c('Invalid URL protocol: the URL must start with `http:` or `https:`.'); + } + if (!(e instanceof URL)) { + if (e.port != null && e.port !== '' && !Number.isFinite(parseInt(e.port))) { + throw new c( + 'Invalid URL: port must be a valid integer or a string representation of an integer.', + ); + } + if (e.path != null && typeof e.path !== 'string') { + throw new c('Invalid URL path: the path must be a string or null/undefined.'); + } + if (e.pathname != null && typeof e.pathname !== 'string') { + throw new c('Invalid URL pathname: the pathname must be a string or null/undefined.'); + } + if (e.hostname != null && typeof e.hostname !== 'string') { + throw new c('Invalid URL hostname: the hostname must be a string or null/undefined.'); + } + if (e.origin != null && typeof e.origin !== 'string') { + throw new c('Invalid URL origin: the origin must be a string or null/undefined.'); + } + const t = e.port != null ? e.port : e.protocol === 'https:' ? 443 : 80; + let r = e.origin != null ? e.origin : `${e.protocol}//${e.hostname}:${t}`; + let A = e.path != null ? e.path : `${e.pathname || ''}${e.search || ''}`; + if (r.endsWith('/')) { + r = r.substring(0, r.length - 1); + } + if (A && !A.startsWith('/')) { + A = `/${A}`; + } + e = new URL(r + A); + } + return e; + } + function parseOrigin(e) { + e = parseURL(e); + if (e.pathname !== '/' || e.search || e.hash) { + throw new c('invalid url'); + } + return e; + } + function getHostname(e) { + if (e[0] === '[') { + const t = e.indexOf(']'); + A(t !== -1); + return e.substring(1, t); + } + const t = e.indexOf(':'); + if (t === -1) return e; + return e.substring(0, t); + } + function getServerName(e) { + if (!e) { + return null; + } + A.strictEqual(typeof e, 'string'); + const t = getHostname(e); + if (a.isIP(t)) { + return ''; + } + return t; + } + function deepClone(e) { + return JSON.parse(JSON.stringify(e)); + } + function isAsyncIterable(e) { + return !!(e != null && typeof e[Symbol.asyncIterator] === 'function'); + } + function isIterable(e) { + return !!( + e != null && + (typeof e[Symbol.iterator] === 'function' || typeof e[Symbol.asyncIterator] === 'function') + ); + } + function bodyLength(e) { + if (e == null) { + return 0; + } else if (isStream(e)) { + const t = e._readableState; + return t && t.objectMode === false && t.ended === true && Number.isFinite(t.length) + ? t.length + : null; + } else if (isBlobLike(e)) { + return e.size != null ? e.size : null; + } else if (isBuffer(e)) { + return e.byteLength; + } + return null; + } + function isDestroyed(e) { + return !e || !!(e.destroyed || e[s]); + } + function isReadableAborted(e) { + const t = e && e._readableState; + return isDestroyed(e) && t && !t.endEmitted; + } + function destroy(e, t) { + if (e == null || !isStream(e) || isDestroyed(e)) { + return; + } + if (typeof e.destroy === 'function') { + if (Object.getPrototypeOf(e).constructor === n) { + e.socket = null; + } + e.destroy(t); + } else if (t) { + process.nextTick( + (e, t) => { + e.emit('error', t); + }, + e, + t, + ); + } + if (e.destroyed !== true) { + e[s] = true; + } + } + const C = /timeout=(\d+)/; + function parseKeepAliveTimeout(e) { + const t = e.toString().match(C); + return t ? parseInt(t[1], 10) * 1e3 : null; + } + function headerNameToString(e) { + return p[e] || e.toLowerCase(); + } + function parseHeaders(e, t = {}) { + if (!Array.isArray(e)) return e; + for (let r = 0; r < e.length; r += 2) { + const A = e[r].toString().toLowerCase(); + let s = t[A]; + if (!s) { + if (Array.isArray(e[r + 1])) { + t[A] = e[r + 1].map((e) => e.toString('utf8')); + } else { + t[A] = e[r + 1].toString('utf8'); + } + } else { + if (!Array.isArray(s)) { + s = [s]; + t[A] = s; + } + s.push(e[r + 1].toString('utf8')); + } + } + if ('content-length' in t && 'content-disposition' in t) { + t['content-disposition'] = Buffer.from(t['content-disposition']).toString('latin1'); + } + return t; + } + function parseRawHeaders(e) { + const t = []; + let r = false; + let A = -1; + for (let s = 0; s < e.length; s += 2) { + const i = e[s + 0].toString(); + const n = e[s + 1].toString('utf8'); + if (i.length === 14 && (i === 'content-length' || i.toLowerCase() === 'content-length')) { + t.push(i, n); + r = true; + } else if ( + i.length === 19 && + (i === 'content-disposition' || i.toLowerCase() === 'content-disposition') + ) { + A = t.push(i, n) - 1; + } else { + t.push(i, n); + } + } + if (r && A !== -1) { + t[A] = Buffer.from(t[A]).toString('latin1'); + } + return t; + } + function isBuffer(e) { + return e instanceof Uint8Array || Buffer.isBuffer(e); + } + function validateHandler(e, t, r) { + if (!e || typeof e !== 'object') { + throw new c('handler must be an object'); + } + if (typeof e.onConnect !== 'function') { + throw new c('invalid onConnect method'); + } + if (typeof e.onError !== 'function') { + throw new c('invalid onError method'); + } + if (typeof e.onBodySent !== 'function' && e.onBodySent !== undefined) { + throw new c('invalid onBodySent method'); + } + if (r || t === 'CONNECT') { + if (typeof e.onUpgrade !== 'function') { + throw new c('invalid onUpgrade method'); + } + } else { + if (typeof e.onHeaders !== 'function') { + throw new c('invalid onHeaders method'); + } + if (typeof e.onData !== 'function') { + throw new c('invalid onData method'); + } + if (typeof e.onComplete !== 'function') { + throw new c('invalid onComplete method'); + } + } + } + function isDisturbed(e) { + return !!( + e && + (o.isDisturbed + ? o.isDisturbed(e) || e[i] + : e[i] || + e.readableDidRead || + (e._readableState && e._readableState.dataEmitted) || + isReadableAborted(e)) + ); + } + function isErrored(e) { + return !!(e && (o.isErrored ? o.isErrored(e) : /state: 'errored'/.test(g.inspect(e)))); + } + function isReadable(e) { + return !!(e && (o.isReadable ? o.isReadable(e) : /state: 'readable'/.test(g.inspect(e)))); + } + function getSocketInfo(e) { + return { + localAddress: e.localAddress, + localPort: e.localPort, + remoteAddress: e.remoteAddress, + remotePort: e.remotePort, + remoteFamily: e.remoteFamily, + timeout: e.timeout, + bytesWritten: e.bytesWritten, + bytesRead: e.bytesRead, + }; + } + async function* convertIterableToBuffer(e) { + for await (const t of e) { + yield Buffer.isBuffer(t) ? t : Buffer.from(t); + } + } + let Q; + function ReadableStreamFrom(e) { + if (!Q) { + Q = r(3774).ReadableStream; + } + if (Q.from) { + return Q.from(convertIterableToBuffer(e)); + } + let t; + return new Q( + { + async start() { + t = e[Symbol.asyncIterator](); + }, + async pull(e) { + const {done: r, value: A} = await t.next(); + if (r) { + queueMicrotask(() => { + e.close(); + }); + } else { + const t = Buffer.isBuffer(A) ? A : Buffer.from(A); + e.enqueue(new Uint8Array(t)); + } + return e.desiredSize > 0; + }, + async cancel(e) { + await t.return(); + }, + }, + 0, + ); + } + function isFormDataLike(e) { + return ( + e && + typeof e === 'object' && + typeof e.append === 'function' && + typeof e.delete === 'function' && + typeof e.get === 'function' && + typeof e.getAll === 'function' && + typeof e.has === 'function' && + typeof e.set === 'function' && + e[Symbol.toStringTag] === 'FormData' + ); + } + function throwIfAborted(e) { + if (!e) { + return; + } + if (typeof e.throwIfAborted === 'function') { + e.throwIfAborted(); + } else { + if (e.aborted) { + const e = new Error('The operation was aborted'); + e.name = 'AbortError'; + throw e; + } + } + } + function addAbortListener(e, t) { + if ('addEventListener' in e) { + e.addEventListener('abort', t, {once: true}); + return () => e.removeEventListener('abort', t); + } + e.addListener('abort', t); + return () => e.removeListener('abort', t); + } + const B = !!String.prototype.toWellFormed; + function toUSVString(e) { + if (B) { + return `${e}`.toWellFormed(); + } else if (g.toUSVString) { + return g.toUSVString(e); + } + return `${e}`; + } + function parseRangeHeader(e) { + if (e == null || e === '') return {start: 0, end: null, size: null}; + const t = e ? e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null; + return t + ? {start: parseInt(t[1]), end: t[2] ? parseInt(t[2]) : null, size: t[3] ? parseInt(t[3]) : null} + : null; + } + const I = Object.create(null); + I.enumerable = true; + e.exports = { + kEnumerableProperty: I, + nop: nop, + isDisturbed: isDisturbed, + isErrored: isErrored, + isReadable: isReadable, + toUSVString: toUSVString, + isReadableAborted: isReadableAborted, + isBlobLike: isBlobLike, + parseOrigin: parseOrigin, + parseURL: parseURL, + getServerName: getServerName, + isStream: isStream, + isIterable: isIterable, + isAsyncIterable: isAsyncIterable, + isDestroyed: isDestroyed, + headerNameToString: headerNameToString, + parseRawHeaders: parseRawHeaders, + parseHeaders: parseHeaders, + parseKeepAliveTimeout: parseKeepAliveTimeout, + destroy: destroy, + bodyLength: bodyLength, + deepClone: deepClone, + ReadableStreamFrom: ReadableStreamFrom, + isBuffer: isBuffer, + validateHandler: validateHandler, + getSocketInfo: getSocketInfo, + isFormDataLike: isFormDataLike, + buildURL: buildURL, + throwIfAborted: throwIfAborted, + addAbortListener: addAbortListener, + parseRangeHeader: parseRangeHeader, + nodeMajor: d, + nodeMinor: h, + nodeHasAutoSelectFamily: d > 18 || (d === 18 && h >= 13), + safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE'], + }; + }, + 1: (e, t, r) => { + 'use strict'; + const A = r(992); + const {ClientDestroyedError: s, ClientClosedError: i, InvalidArgumentError: n} = r(8707); + const {kDestroy: o, kClose: a, kDispatch: c, kInterceptors: u} = r(6443); + const g = Symbol('destroyed'); + const l = Symbol('closed'); + const p = Symbol('onDestroyed'); + const d = Symbol('onClosed'); + const h = Symbol('Intercepted Dispatch'); + class DispatcherBase extends A { + constructor() { + super(); + this[g] = false; + this[p] = null; + this[l] = false; + this[d] = []; + } + get destroyed() { + return this[g]; + } + get closed() { + return this[l]; + } + get interceptors() { + return this[u]; + } + set interceptors(e) { + if (e) { + for (let t = e.length - 1; t >= 0; t--) { + const e = this[u][t]; + if (typeof e !== 'function') { + throw new n('interceptor must be an function'); + } + } + } + this[u] = e; + } + close(e) { + if (e === undefined) { + return new Promise((e, t) => { + this.close((r, A) => (r ? t(r) : e(A))); + }); + } + if (typeof e !== 'function') { + throw new n('invalid callback'); + } + if (this[g]) { + queueMicrotask(() => e(new s(), null)); + return; + } + if (this[l]) { + if (this[d]) { + this[d].push(e); + } else { + queueMicrotask(() => e(null, null)); + } + return; + } + this[l] = true; + this[d].push(e); + const onClosed = () => { + const e = this[d]; + this[d] = null; + for (let t = 0; t < e.length; t++) { + e[t](null, null); + } + }; + this[a]() + .then(() => this.destroy()) + .then(() => { + queueMicrotask(onClosed); + }); + } + destroy(e, t) { + if (typeof e === 'function') { + t = e; + e = null; + } + if (t === undefined) { + return new Promise((t, r) => { + this.destroy(e, (e, A) => (e ? r(e) : t(A))); + }); + } + if (typeof t !== 'function') { + throw new n('invalid callback'); + } + if (this[g]) { + if (this[p]) { + this[p].push(t); + } else { + queueMicrotask(() => t(null, null)); + } + return; + } + if (!e) { + e = new s(); + } + this[g] = true; + this[p] = this[p] || []; + this[p].push(t); + const onDestroyed = () => { + const e = this[p]; + this[p] = null; + for (let t = 0; t < e.length; t++) { + e[t](null, null); + } + }; + this[o](e).then(() => { + queueMicrotask(onDestroyed); + }); + } + [h](e, t) { + if (!this[u] || this[u].length === 0) { + this[h] = this[c]; + return this[c](e, t); + } + let r = this[c].bind(this); + for (let e = this[u].length - 1; e >= 0; e--) { + r = this[u][e](r); + } + this[h] = r; + return r(e, t); + } + dispatch(e, t) { + if (!t || typeof t !== 'object') { + throw new n('handler must be an object'); + } + try { + if (!e || typeof e !== 'object') { + throw new n('opts must be an object.'); + } + if (this[g] || this[p]) { + throw new s(); + } + if (this[l]) { + throw new i(); + } + return this[h](e, t); + } catch (e) { + if (typeof t.onError !== 'function') { + throw new n('invalid onError method'); + } + t.onError(e); + return false; + } + } + } + e.exports = DispatcherBase; + }, + 992: (e, t, r) => { + 'use strict'; + const A = r(4434); + class Dispatcher extends A { + dispatch() { + throw new Error('not implemented'); + } + close() { + throw new Error('not implemented'); + } + destroy() { + throw new Error('not implemented'); + } + } + e.exports = Dispatcher; + }, + 8923: (e, t, r) => { + 'use strict'; + const A = r(9581); + const s = r(3440); + const { + ReadableStreamFrom: i, + isBlobLike: n, + isReadableStreamLike: o, + readableStreamClose: a, + createDeferredPromise: c, + fullyReadBody: u, + } = r(5523); + const {FormData: g} = r(3073); + const {kState: l} = r(9710); + const {webidl: p} = r(4222); + const {DOMException: d, structuredClone: h} = r(7326); + const {Blob: C, File: Q} = r(181); + const {kBodyUsed: B} = r(6443); + const I = r(2613); + const {isErrored: m} = r(3440); + const {isUint8Array: y, isArrayBuffer: b} = r(8253); + const {File: w} = r(3041); + const {parseMIMEType: R, serializeAMimeType: k} = r(4322); + let D; + try { + const e = r(7598); + D = (t) => e.randomInt(0, t); + } catch { + D = (e) => Math.floor(Math.random(e)); + } + let S = globalThis.ReadableStream; + const v = Q ?? w; + const N = new TextEncoder(); + const q = new TextDecoder(); + function extractBody(e, t = false) { + if (!S) { + S = r(3774).ReadableStream; + } + let A = null; + if (e instanceof S) { + A = e; + } else if (n(e)) { + A = e.stream(); + } else { + A = new S({ + async pull(e) { + e.enqueue(typeof u === 'string' ? N.encode(u) : u); + queueMicrotask(() => a(e)); + }, + start() {}, + type: undefined, + }); + } + I(o(A)); + let c = null; + let u = null; + let g = null; + let l = null; + if (typeof e === 'string') { + u = e; + l = 'text/plain;charset=UTF-8'; + } else if (e instanceof URLSearchParams) { + u = e.toString(); + l = 'application/x-www-form-urlencoded;charset=UTF-8'; + } else if (b(e)) { + u = new Uint8Array(e.slice()); + } else if (ArrayBuffer.isView(e)) { + u = new Uint8Array(e.buffer.slice(e.byteOffset, e.byteOffset + e.byteLength)); + } else if (s.isFormDataLike(e)) { + const t = `----formdata-undici-0${`${D(1e11)}`.padStart(11, '0')}`; + const r = `--${t}\r\nContent-Disposition: form-data`; + /*! formdata-polyfill. MIT License. Jimmy Wärting */ const escape = + (e) => e.replace(/\n/g, '%0A').replace(/\r/g, '%0D').replace(/"/g, '%22'); + const normalizeLinefeeds = (e) => e.replace(/\r?\n|\r/g, '\r\n'); + const A = []; + const s = new Uint8Array([13, 10]); + g = 0; + let i = false; + for (const [t, n] of e) { + if (typeof n === 'string') { + const e = N.encode( + r + + `; name="${escape(normalizeLinefeeds(t))}"` + + `\r\n\r\n${normalizeLinefeeds(n)}\r\n`, + ); + A.push(e); + g += e.byteLength; + } else { + const e = N.encode( + `${r}; name="${escape(normalizeLinefeeds(t))}"` + + (n.name ? `; filename="${escape(n.name)}"` : '') + + '\r\n' + + `Content-Type: ${n.type || 'application/octet-stream'}\r\n\r\n`, + ); + A.push(e, n, s); + if (typeof n.size === 'number') { + g += e.byteLength + n.size + s.byteLength; + } else { + i = true; + } + } + } + const n = N.encode(`--${t}--`); + A.push(n); + g += n.byteLength; + if (i) { + g = null; + } + u = e; + c = async function* () { + for (const e of A) { + if (e.stream) { + yield* e.stream(); + } else { + yield e; + } + } + }; + l = 'multipart/form-data; boundary=' + t; + } else if (n(e)) { + u = e; + g = e.size; + if (e.type) { + l = e.type; + } + } else if (typeof e[Symbol.asyncIterator] === 'function') { + if (t) { + throw new TypeError('keepalive'); + } + if (s.isDisturbed(e) || e.locked) { + throw new TypeError('Response body object should not be disturbed or locked'); + } + A = e instanceof S ? e : i(e); + } + if (typeof u === 'string' || s.isBuffer(u)) { + g = Buffer.byteLength(u); + } + if (c != null) { + let t; + A = new S({ + async start() { + t = c(e)[Symbol.asyncIterator](); + }, + async pull(e) { + const {value: r, done: s} = await t.next(); + if (s) { + queueMicrotask(() => { + e.close(); + }); + } else { + if (!m(A)) { + e.enqueue(new Uint8Array(r)); + } + } + return e.desiredSize > 0; + }, + async cancel(e) { + await t.return(); + }, + type: undefined, + }); + } + const p = {stream: A, source: u, length: g}; + return [p, l]; + } + function safelyExtractBody(e, t = false) { + if (!S) { + S = r(3774).ReadableStream; + } + if (e instanceof S) { + I(!s.isDisturbed(e), 'The body has already been consumed.'); + I(!e.locked, 'The stream is locked.'); + } + return extractBody(e, t); + } + function cloneBody(e) { + const [t, r] = e.stream.tee(); + const A = h(r, {transfer: [r]}); + const [, s] = A.tee(); + e.stream = t; + return {stream: s, length: e.length, source: e.source}; + } + async function* consumeBody(e) { + if (e) { + if (y(e)) { + yield e; + } else { + const t = e.stream; + if (s.isDisturbed(t)) { + throw new TypeError('The body has already been consumed.'); + } + if (t.locked) { + throw new TypeError('The stream is locked.'); + } + t[B] = true; + yield* t; + } + } + } + function throwIfAborted(e) { + if (e.aborted) { + throw new d('The operation was aborted.', 'AbortError'); + } + } + function bodyMixinMethods(e) { + const t = { + blob() { + return specConsumeBody( + this, + (e) => { + let t = bodyMimeType(this); + if (t === 'failure') { + t = ''; + } else if (t) { + t = k(t); + } + return new C([e], {type: t}); + }, + e, + ); + }, + arrayBuffer() { + return specConsumeBody(this, (e) => new Uint8Array(e).buffer, e); + }, + text() { + return specConsumeBody(this, utf8DecodeBytes, e); + }, + json() { + return specConsumeBody(this, parseJSONFromBytes, e); + }, + async formData() { + p.brandCheck(this, e); + throwIfAborted(this[l]); + const t = this.headers.get('Content-Type'); + if (/multipart\/form-data/.test(t)) { + const e = {}; + for (const [t, r] of this.headers) e[t.toLowerCase()] = r; + const t = new g(); + let r; + try { + r = new A({headers: e, preservePath: true}); + } catch (e) { + throw new d(`${e}`, 'AbortError'); + } + r.on('field', (e, r) => { + t.append(e, r); + }); + r.on('file', (e, r, A, s, i) => { + const n = []; + if (s === 'base64' || s.toLowerCase() === 'base64') { + let s = ''; + r.on('data', (e) => { + s += e.toString().replace(/[\r\n]/gm, ''); + const t = s.length - (s.length % 4); + n.push(Buffer.from(s.slice(0, t), 'base64')); + s = s.slice(t); + }); + r.on('end', () => { + n.push(Buffer.from(s, 'base64')); + t.append(e, new v(n, A, {type: i})); + }); + } else { + r.on('data', (e) => { + n.push(e); + }); + r.on('end', () => { + t.append(e, new v(n, A, {type: i})); + }); + } + }); + const s = new Promise((e, t) => { + r.on('finish', e); + r.on('error', (e) => t(new TypeError(e))); + }); + if (this.body !== null) for await (const e of consumeBody(this[l].body)) r.write(e); + r.end(); + await s; + return t; + } else if (/application\/x-www-form-urlencoded/.test(t)) { + let e; + try { + let t = ''; + const r = new TextDecoder('utf-8', {ignoreBOM: true}); + for await (const e of consumeBody(this[l].body)) { + if (!y(e)) { + throw new TypeError('Expected Uint8Array chunk'); + } + t += r.decode(e, {stream: true}); + } + t += r.decode(); + e = new URLSearchParams(t); + } catch (e) { + throw Object.assign(new TypeError(), {cause: e}); + } + const t = new g(); + for (const [r, A] of e) { + t.append(r, A); + } + return t; + } else { + await Promise.resolve(); + throwIfAborted(this[l]); + throw p.errors.exception({ + header: `${e.name}.formData`, + message: 'Could not parse content as FormData.', + }); + } + }, + }; + return t; + } + function mixinBody(e) { + Object.assign(e.prototype, bodyMixinMethods(e)); + } + async function specConsumeBody(e, t, r) { + p.brandCheck(e, r); + throwIfAborted(e[l]); + if (bodyUnusable(e[l].body)) { + throw new TypeError('Body is unusable'); + } + const A = c(); + const errorSteps = (e) => A.reject(e); + const successSteps = (e) => { + try { + A.resolve(t(e)); + } catch (e) { + errorSteps(e); + } + }; + if (e[l].body == null) { + successSteps(new Uint8Array()); + return A.promise; + } + await u(e[l].body, successSteps, errorSteps); + return A.promise; + } + function bodyUnusable(e) { + return e != null && (e.stream.locked || s.isDisturbed(e.stream)); + } + function utf8DecodeBytes(e) { + if (e.length === 0) { + return ''; + } + if (e[0] === 239 && e[1] === 187 && e[2] === 191) { + e = e.subarray(3); + } + const t = q.decode(e); + return t; + } + function parseJSONFromBytes(e) { + return JSON.parse(utf8DecodeBytes(e)); + } + function bodyMimeType(e) { + const {headersList: t} = e[l]; + const r = t.get('content-type'); + if (r === null) { + return 'failure'; + } + return R(r); + } + e.exports = { + extractBody: extractBody, + safelyExtractBody: safelyExtractBody, + cloneBody: cloneBody, + mixinBody: mixinBody, + }; + }, + 7326: (e, t, r) => { + 'use strict'; + const {MessageChannel: A, receiveMessageOnPort: s} = r(8167); + const i = ['GET', 'HEAD', 'POST']; + const n = new Set(i); + const o = [101, 204, 205, 304]; + const a = [301, 302, 303, 307, 308]; + const c = new Set(a); + const u = [ + '1', + '7', + '9', + '11', + '13', + '15', + '17', + '19', + '20', + '21', + '22', + '23', + '25', + '37', + '42', + '43', + '53', + '69', + '77', + '79', + '87', + '95', + '101', + '102', + '103', + '104', + '109', + '110', + '111', + '113', + '115', + '117', + '119', + '123', + '135', + '137', + '139', + '143', + '161', + '179', + '389', + '427', + '465', + '512', + '513', + '514', + '515', + '526', + '530', + '531', + '532', + '540', + '548', + '554', + '556', + '563', + '587', + '601', + '636', + '989', + '990', + '993', + '995', + '1719', + '1720', + '1723', + '2049', + '3659', + '4045', + '5060', + '5061', + '6000', + '6566', + '6665', + '6666', + '6667', + '6668', + '6669', + '6697', + '10080', + ]; + const g = new Set(u); + const l = [ + '', + 'no-referrer', + 'no-referrer-when-downgrade', + 'same-origin', + 'origin', + 'strict-origin', + 'origin-when-cross-origin', + 'strict-origin-when-cross-origin', + 'unsafe-url', + ]; + const p = new Set(l); + const d = ['follow', 'manual', 'error']; + const h = ['GET', 'HEAD', 'OPTIONS', 'TRACE']; + const C = new Set(h); + const Q = ['navigate', 'same-origin', 'no-cors', 'cors']; + const B = ['omit', 'same-origin', 'include']; + const I = ['default', 'no-store', 'reload', 'no-cache', 'force-cache', 'only-if-cached']; + const m = ['content-encoding', 'content-language', 'content-location', 'content-type', 'content-length']; + const y = ['half']; + const b = ['CONNECT', 'TRACE', 'TRACK']; + const w = new Set(b); + const R = [ + 'audio', + 'audioworklet', + 'font', + 'image', + 'manifest', + 'paintworklet', + 'script', + 'style', + 'track', + 'video', + 'xslt', + '', + ]; + const k = new Set(R); + const D = + globalThis.DOMException ?? + (() => { + try { + atob('~'); + } catch (e) { + return Object.getPrototypeOf(e).constructor; + } + })(); + let S; + const v = + globalThis.structuredClone ?? + function structuredClone(e, t = undefined) { + if (arguments.length === 0) { + throw new TypeError('missing argument'); + } + if (!S) { + S = new A(); + } + S.port1.unref(); + S.port2.unref(); + S.port1.postMessage(e, t?.transfer); + return s(S.port2).message; + }; + e.exports = { + DOMException: D, + structuredClone: v, + subresource: R, + forbiddenMethods: b, + requestBodyHeader: m, + referrerPolicy: l, + requestRedirect: d, + requestMode: Q, + requestCredentials: B, + requestCache: I, + redirectStatus: a, + corsSafeListedMethods: i, + nullBodyStatus: o, + safeMethods: h, + badPorts: u, + requestDuplex: y, + subresourceSet: k, + badPortsSet: g, + redirectStatusSet: c, + corsSafeListedMethodsSet: n, + safeMethodsSet: C, + forbiddenMethodsSet: w, + referrerPolicySet: p, + }; + }, + 4322: (e, t, r) => { + const A = r(2613); + const {atob: s} = r(181); + const {isomorphicDecode: i} = r(5523); + const n = new TextEncoder(); + const o = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/; + const a = /(\u000A|\u000D|\u0009|\u0020)/; + const c = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/; + function dataURLProcessor(e) { + A(e.protocol === 'data:'); + let t = URLSerializer(e, true); + t = t.slice(5); + const r = {position: 0}; + let s = collectASequenceOfCodePointsFast(',', t, r); + const n = s.length; + s = removeASCIIWhitespace(s, true, true); + if (r.position >= t.length) { + return 'failure'; + } + r.position++; + const o = t.slice(n + 1); + let a = stringPercentDecode(o); + if (/;(\u0020){0,}base64$/i.test(s)) { + const e = i(a); + a = forgivingBase64(e); + if (a === 'failure') { + return 'failure'; + } + s = s.slice(0, -6); + s = s.replace(/(\u0020)+$/, ''); + s = s.slice(0, -1); + } + if (s.startsWith(';')) { + s = 'text/plain' + s; + } + let c = parseMIMEType(s); + if (c === 'failure') { + c = parseMIMEType('text/plain;charset=US-ASCII'); + } + return {mimeType: c, body: a}; + } + function URLSerializer(e, t = false) { + if (!t) { + return e.href; + } + const r = e.href; + const A = e.hash.length; + return A === 0 ? r : r.substring(0, r.length - A); + } + function collectASequenceOfCodePoints(e, t, r) { + let A = ''; + while (r.position < t.length && e(t[r.position])) { + A += t[r.position]; + r.position++; + } + return A; + } + function collectASequenceOfCodePointsFast(e, t, r) { + const A = t.indexOf(e, r.position); + const s = r.position; + if (A === -1) { + r.position = t.length; + return t.slice(s); + } + r.position = A; + return t.slice(s, r.position); + } + function stringPercentDecode(e) { + const t = n.encode(e); + return percentDecode(t); + } + function percentDecode(e) { + const t = []; + for (let r = 0; r < e.length; r++) { + const A = e[r]; + if (A !== 37) { + t.push(A); + } else if (A === 37 && !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(e[r + 1], e[r + 2]))) { + t.push(37); + } else { + const A = String.fromCharCode(e[r + 1], e[r + 2]); + const s = Number.parseInt(A, 16); + t.push(s); + r += 2; + } + } + return Uint8Array.from(t); + } + function parseMIMEType(e) { + e = removeHTTPWhitespace(e, true, true); + const t = {position: 0}; + const r = collectASequenceOfCodePointsFast('/', e, t); + if (r.length === 0 || !o.test(r)) { + return 'failure'; + } + if (t.position > e.length) { + return 'failure'; + } + t.position++; + let A = collectASequenceOfCodePointsFast(';', e, t); + A = removeHTTPWhitespace(A, false, true); + if (A.length === 0 || !o.test(A)) { + return 'failure'; + } + const s = r.toLowerCase(); + const i = A.toLowerCase(); + const n = {type: s, subtype: i, parameters: new Map(), essence: `${s}/${i}`}; + while (t.position < e.length) { + t.position++; + collectASequenceOfCodePoints((e) => a.test(e), e, t); + let r = collectASequenceOfCodePoints((e) => e !== ';' && e !== '=', e, t); + r = r.toLowerCase(); + if (t.position < e.length) { + if (e[t.position] === ';') { + continue; + } + t.position++; + } + if (t.position > e.length) { + break; + } + let A = null; + if (e[t.position] === '"') { + A = collectAnHTTPQuotedString(e, t, true); + collectASequenceOfCodePointsFast(';', e, t); + } else { + A = collectASequenceOfCodePointsFast(';', e, t); + A = removeHTTPWhitespace(A, false, true); + if (A.length === 0) { + continue; + } + } + if (r.length !== 0 && o.test(r) && (A.length === 0 || c.test(A)) && !n.parameters.has(r)) { + n.parameters.set(r, A); + } + } + return n; + } + function forgivingBase64(e) { + e = e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g, ''); + if (e.length % 4 === 0) { + e = e.replace(/=?=$/, ''); + } + if (e.length % 4 === 1) { + return 'failure'; + } + if (/[^+/0-9A-Za-z]/.test(e)) { + return 'failure'; + } + const t = s(e); + const r = new Uint8Array(t.length); + for (let e = 0; e < t.length; e++) { + r[e] = t.charCodeAt(e); + } + return r; + } + function collectAnHTTPQuotedString(e, t, r) { + const s = t.position; + let i = ''; + A(e[t.position] === '"'); + t.position++; + while (true) { + i += collectASequenceOfCodePoints((e) => e !== '"' && e !== '\\', e, t); + if (t.position >= e.length) { + break; + } + const r = e[t.position]; + t.position++; + if (r === '\\') { + if (t.position >= e.length) { + i += '\\'; + break; + } + i += e[t.position]; + t.position++; + } else { + A(r === '"'); + break; + } + } + if (r) { + return i; + } + return e.slice(s, t.position); + } + function serializeAMimeType(e) { + A(e !== 'failure'); + const {parameters: t, essence: r} = e; + let s = r; + for (let [e, r] of t.entries()) { + s += ';'; + s += e; + s += '='; + if (!o.test(r)) { + r = r.replace(/(\\|")/g, '\\$1'); + r = '"' + r; + r += '"'; + } + s += r; + } + return s; + } + function isHTTPWhiteSpace(e) { + return e === '\r' || e === '\n' || e === '\t' || e === ' '; + } + function removeHTTPWhitespace(e, t = true, r = true) { + let A = 0; + let s = e.length - 1; + if (t) { + for (; A < e.length && isHTTPWhiteSpace(e[A]); A++); + } + if (r) { + for (; s > 0 && isHTTPWhiteSpace(e[s]); s--); + } + return e.slice(A, s + 1); + } + function isASCIIWhitespace(e) { + return e === '\r' || e === '\n' || e === '\t' || e === '\f' || e === ' '; + } + function removeASCIIWhitespace(e, t = true, r = true) { + let A = 0; + let s = e.length - 1; + if (t) { + for (; A < e.length && isASCIIWhitespace(e[A]); A++); + } + if (r) { + for (; s > 0 && isASCIIWhitespace(e[s]); s--); + } + return e.slice(A, s + 1); + } + e.exports = { + dataURLProcessor: dataURLProcessor, + URLSerializer: URLSerializer, + collectASequenceOfCodePoints: collectASequenceOfCodePoints, + collectASequenceOfCodePointsFast: collectASequenceOfCodePointsFast, + stringPercentDecode: stringPercentDecode, + parseMIMEType: parseMIMEType, + collectAnHTTPQuotedString: collectAnHTTPQuotedString, + serializeAMimeType: serializeAMimeType, + }; + }, + 3041: (e, t, r) => { + 'use strict'; + const {Blob: A, File: s} = r(181); + const {types: i} = r(9023); + const {kState: n} = r(9710); + const {isBlobLike: o} = r(5523); + const {webidl: a} = r(4222); + const {parseMIMEType: c, serializeAMimeType: u} = r(4322); + const {kEnumerableProperty: g} = r(3440); + const l = new TextEncoder(); + class File extends A { + constructor(e, t, r = {}) { + a.argumentLengthCheck(arguments, 2, {header: 'File constructor'}); + e = a.converters['sequence'](e); + t = a.converters.USVString(t); + r = a.converters.FilePropertyBag(r); + const A = t; + let s = r.type; + let i; + e: { + if (s) { + s = c(s); + if (s === 'failure') { + s = ''; + break e; + } + s = u(s).toLowerCase(); + } + i = r.lastModified; + } + super(processBlobParts(e, r), {type: s}); + this[n] = {name: A, lastModified: i, type: s}; + } + get name() { + a.brandCheck(this, File); + return this[n].name; + } + get lastModified() { + a.brandCheck(this, File); + return this[n].lastModified; + } + get type() { + a.brandCheck(this, File); + return this[n].type; + } + } + class FileLike { + constructor(e, t, r = {}) { + const A = t; + const s = r.type; + const i = r.lastModified ?? Date.now(); + this[n] = {blobLike: e, name: A, type: s, lastModified: i}; + } + stream(...e) { + a.brandCheck(this, FileLike); + return this[n].blobLike.stream(...e); + } + arrayBuffer(...e) { + a.brandCheck(this, FileLike); + return this[n].blobLike.arrayBuffer(...e); + } + slice(...e) { + a.brandCheck(this, FileLike); + return this[n].blobLike.slice(...e); + } + text(...e) { + a.brandCheck(this, FileLike); + return this[n].blobLike.text(...e); + } + get size() { + a.brandCheck(this, FileLike); + return this[n].blobLike.size; + } + get type() { + a.brandCheck(this, FileLike); + return this[n].blobLike.type; + } + get name() { + a.brandCheck(this, FileLike); + return this[n].name; + } + get lastModified() { + a.brandCheck(this, FileLike); + return this[n].lastModified; + } + get [Symbol.toStringTag]() { + return 'File'; + } + } + Object.defineProperties(File.prototype, { + [Symbol.toStringTag]: {value: 'File', configurable: true}, + name: g, + lastModified: g, + }); + a.converters.Blob = a.interfaceConverter(A); + a.converters.BlobPart = function (e, t) { + if (a.util.Type(e) === 'Object') { + if (o(e)) { + return a.converters.Blob(e, {strict: false}); + } + if (ArrayBuffer.isView(e) || i.isAnyArrayBuffer(e)) { + return a.converters.BufferSource(e, t); + } + } + return a.converters.USVString(e, t); + }; + a.converters['sequence'] = a.sequenceConverter(a.converters.BlobPart); + a.converters.FilePropertyBag = a.dictionaryConverter([ + { + key: 'lastModified', + converter: a.converters['long long'], + get defaultValue() { + return Date.now(); + }, + }, + {key: 'type', converter: a.converters.DOMString, defaultValue: ''}, + { + key: 'endings', + converter: (e) => { + e = a.converters.DOMString(e); + e = e.toLowerCase(); + if (e !== 'native') { + e = 'transparent'; + } + return e; + }, + defaultValue: 'transparent', + }, + ]); + function processBlobParts(e, t) { + const r = []; + for (const A of e) { + if (typeof A === 'string') { + let e = A; + if (t.endings === 'native') { + e = convertLineEndingsNative(e); + } + r.push(l.encode(e)); + } else if (i.isAnyArrayBuffer(A) || i.isTypedArray(A)) { + if (!A.buffer) { + r.push(new Uint8Array(A)); + } else { + r.push(new Uint8Array(A.buffer, A.byteOffset, A.byteLength)); + } + } else if (o(A)) { + r.push(A); + } + } + return r; + } + function convertLineEndingsNative(e) { + let t = '\n'; + if (process.platform === 'win32') { + t = '\r\n'; + } + return e.replace(/\r?\n/g, t); + } + function isFileLike(e) { + return ( + (s && e instanceof s) || + e instanceof File || + (e && + (typeof e.stream === 'function' || typeof e.arrayBuffer === 'function') && + e[Symbol.toStringTag] === 'File') + ); + } + e.exports = {File: File, FileLike: FileLike, isFileLike: isFileLike}; + }, + 3073: (e, t, r) => { + 'use strict'; + const {isBlobLike: A, toUSVString: s, makeIterator: i} = r(5523); + const {kState: n} = r(9710); + const {File: o, FileLike: a, isFileLike: c} = r(3041); + const {webidl: u} = r(4222); + const {Blob: g, File: l} = r(181); + const p = l ?? o; + class FormData { + constructor(e) { + if (e !== undefined) { + throw u.errors.conversionFailed({ + prefix: 'FormData constructor', + argument: 'Argument 1', + types: ['undefined'], + }); + } + this[n] = []; + } + append(e, t, r = undefined) { + u.brandCheck(this, FormData); + u.argumentLengthCheck(arguments, 2, {header: 'FormData.append'}); + if (arguments.length === 3 && !A(t)) { + throw new TypeError( + "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'", + ); + } + e = u.converters.USVString(e); + t = A(t) ? u.converters.Blob(t, {strict: false}) : u.converters.USVString(t); + r = arguments.length === 3 ? u.converters.USVString(r) : undefined; + const s = makeEntry(e, t, r); + this[n].push(s); + } + delete(e) { + u.brandCheck(this, FormData); + u.argumentLengthCheck(arguments, 1, {header: 'FormData.delete'}); + e = u.converters.USVString(e); + this[n] = this[n].filter((t) => t.name !== e); + } + get(e) { + u.brandCheck(this, FormData); + u.argumentLengthCheck(arguments, 1, {header: 'FormData.get'}); + e = u.converters.USVString(e); + const t = this[n].findIndex((t) => t.name === e); + if (t === -1) { + return null; + } + return this[n][t].value; + } + getAll(e) { + u.brandCheck(this, FormData); + u.argumentLengthCheck(arguments, 1, {header: 'FormData.getAll'}); + e = u.converters.USVString(e); + return this[n].filter((t) => t.name === e).map((e) => e.value); + } + has(e) { + u.brandCheck(this, FormData); + u.argumentLengthCheck(arguments, 1, {header: 'FormData.has'}); + e = u.converters.USVString(e); + return this[n].findIndex((t) => t.name === e) !== -1; + } + set(e, t, r = undefined) { + u.brandCheck(this, FormData); + u.argumentLengthCheck(arguments, 2, {header: 'FormData.set'}); + if (arguments.length === 3 && !A(t)) { + throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'"); + } + e = u.converters.USVString(e); + t = A(t) ? u.converters.Blob(t, {strict: false}) : u.converters.USVString(t); + r = arguments.length === 3 ? s(r) : undefined; + const i = makeEntry(e, t, r); + const o = this[n].findIndex((t) => t.name === e); + if (o !== -1) { + this[n] = [...this[n].slice(0, o), i, ...this[n].slice(o + 1).filter((t) => t.name !== e)]; + } else { + this[n].push(i); + } + } + entries() { + u.brandCheck(this, FormData); + return i(() => this[n].map((e) => [e.name, e.value]), 'FormData', 'key+value'); + } + keys() { + u.brandCheck(this, FormData); + return i(() => this[n].map((e) => [e.name, e.value]), 'FormData', 'key'); + } + values() { + u.brandCheck(this, FormData); + return i(() => this[n].map((e) => [e.name, e.value]), 'FormData', 'value'); + } + forEach(e, t = globalThis) { + u.brandCheck(this, FormData); + u.argumentLengthCheck(arguments, 1, {header: 'FormData.forEach'}); + if (typeof e !== 'function') { + throw new TypeError( + "Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.", + ); + } + for (const [r, A] of this) { + e.apply(t, [A, r, this]); + } + } + } + FormData.prototype[Symbol.iterator] = FormData.prototype.entries; + Object.defineProperties(FormData.prototype, { + [Symbol.toStringTag]: {value: 'FormData', configurable: true}, + }); + function makeEntry(e, t, r) { + e = Buffer.from(e).toString('utf8'); + if (typeof t === 'string') { + t = Buffer.from(t).toString('utf8'); + } else { + if (!c(t)) { + t = t instanceof g ? new p([t], 'blob', {type: t.type}) : new a(t, 'blob', {type: t.type}); + } + if (r !== undefined) { + const e = {type: t.type, lastModified: t.lastModified}; + t = (l && t instanceof l) || t instanceof o ? new p([t], r, e) : new a(t, r, e); + } + } + return {name: e, value: t}; + } + e.exports = {FormData: FormData}; + }, + 5628: (e) => { + 'use strict'; + const t = Symbol.for('undici.globalOrigin.1'); + function getGlobalOrigin() { + return globalThis[t]; + } + function setGlobalOrigin(e) { + if (e === undefined) { + Object.defineProperty(globalThis, t, { + value: undefined, + writable: true, + enumerable: false, + configurable: false, + }); + return; + } + const r = new URL(e); + if (r.protocol !== 'http:' && r.protocol !== 'https:') { + throw new TypeError(`Only http & https urls are allowed, received ${r.protocol}`); + } + Object.defineProperty(globalThis, t, { + value: r, + writable: true, + enumerable: false, + configurable: false, + }); + } + e.exports = {getGlobalOrigin: getGlobalOrigin, setGlobalOrigin: setGlobalOrigin}; + }, + 6349: (e, t, r) => { + 'use strict'; + const {kHeadersList: A, kConstruct: s} = r(6443); + const {kGuard: i} = r(9710); + const {kEnumerableProperty: n} = r(3440); + const {makeIterator: o, isValidHeaderName: a, isValidHeaderValue: c} = r(5523); + const u = r(9023); + const {webidl: g} = r(4222); + const l = r(2613); + const p = Symbol('headers map'); + const d = Symbol('headers map sorted'); + function isHTTPWhiteSpaceCharCode(e) { + return e === 10 || e === 13 || e === 9 || e === 32; + } + function headerValueNormalize(e) { + let t = 0; + let r = e.length; + while (r > t && isHTTPWhiteSpaceCharCode(e.charCodeAt(r - 1))) --r; + while (r > t && isHTTPWhiteSpaceCharCode(e.charCodeAt(t))) ++t; + return t === 0 && r === e.length ? e : e.substring(t, r); + } + function fill(e, t) { + if (Array.isArray(t)) { + for (let r = 0; r < t.length; ++r) { + const A = t[r]; + if (A.length !== 2) { + throw g.errors.exception({ + header: 'Headers constructor', + message: `expected name/value pair to be length 2, found ${A.length}.`, + }); + } + appendHeader(e, A[0], A[1]); + } + } else if (typeof t === 'object' && t !== null) { + const r = Object.keys(t); + for (let A = 0; A < r.length; ++A) { + appendHeader(e, r[A], t[r[A]]); + } + } else { + throw g.errors.conversionFailed({ + prefix: 'Headers constructor', + argument: 'Argument 1', + types: ['sequence>', 'record'], + }); + } + } + function appendHeader(e, t, r) { + r = headerValueNormalize(r); + if (!a(t)) { + throw g.errors.invalidArgument({prefix: 'Headers.append', value: t, type: 'header name'}); + } else if (!c(r)) { + throw g.errors.invalidArgument({prefix: 'Headers.append', value: r, type: 'header value'}); + } + if (e[i] === 'immutable') { + throw new TypeError('immutable'); + } else if (e[i] === 'request-no-cors') { + } + return e[A].append(t, r); + } + class HeadersList { + cookies = null; + constructor(e) { + if (e instanceof HeadersList) { + this[p] = new Map(e[p]); + this[d] = e[d]; + this.cookies = e.cookies === null ? null : [...e.cookies]; + } else { + this[p] = new Map(e); + this[d] = null; + } + } + contains(e) { + e = e.toLowerCase(); + return this[p].has(e); + } + clear() { + this[p].clear(); + this[d] = null; + this.cookies = null; + } + append(e, t) { + this[d] = null; + const r = e.toLowerCase(); + const A = this[p].get(r); + if (A) { + const e = r === 'cookie' ? '; ' : ', '; + this[p].set(r, {name: A.name, value: `${A.value}${e}${t}`}); + } else { + this[p].set(r, {name: e, value: t}); + } + if (r === 'set-cookie') { + this.cookies ??= []; + this.cookies.push(t); + } + } + set(e, t) { + this[d] = null; + const r = e.toLowerCase(); + if (r === 'set-cookie') { + this.cookies = [t]; + } + this[p].set(r, {name: e, value: t}); + } + delete(e) { + this[d] = null; + e = e.toLowerCase(); + if (e === 'set-cookie') { + this.cookies = null; + } + this[p].delete(e); + } + get(e) { + const t = this[p].get(e.toLowerCase()); + return t === undefined ? null : t.value; + } + *[Symbol.iterator]() { + for (const [e, {value: t}] of this[p]) { + yield [e, t]; + } + } + get entries() { + const e = {}; + if (this[p].size) { + for (const {name: t, value: r} of this[p].values()) { + e[t] = r; + } + } + return e; + } + } + class Headers { + constructor(e = undefined) { + if (e === s) { + return; + } + this[A] = new HeadersList(); + this[i] = 'none'; + if (e !== undefined) { + e = g.converters.HeadersInit(e); + fill(this, e); + } + } + append(e, t) { + g.brandCheck(this, Headers); + g.argumentLengthCheck(arguments, 2, {header: 'Headers.append'}); + e = g.converters.ByteString(e); + t = g.converters.ByteString(t); + return appendHeader(this, e, t); + } + delete(e) { + g.brandCheck(this, Headers); + g.argumentLengthCheck(arguments, 1, {header: 'Headers.delete'}); + e = g.converters.ByteString(e); + if (!a(e)) { + throw g.errors.invalidArgument({prefix: 'Headers.delete', value: e, type: 'header name'}); + } + if (this[i] === 'immutable') { + throw new TypeError('immutable'); + } else if (this[i] === 'request-no-cors') { + } + if (!this[A].contains(e)) { + return; + } + this[A].delete(e); + } + get(e) { + g.brandCheck(this, Headers); + g.argumentLengthCheck(arguments, 1, {header: 'Headers.get'}); + e = g.converters.ByteString(e); + if (!a(e)) { + throw g.errors.invalidArgument({prefix: 'Headers.get', value: e, type: 'header name'}); + } + return this[A].get(e); + } + has(e) { + g.brandCheck(this, Headers); + g.argumentLengthCheck(arguments, 1, {header: 'Headers.has'}); + e = g.converters.ByteString(e); + if (!a(e)) { + throw g.errors.invalidArgument({prefix: 'Headers.has', value: e, type: 'header name'}); + } + return this[A].contains(e); + } + set(e, t) { + g.brandCheck(this, Headers); + g.argumentLengthCheck(arguments, 2, {header: 'Headers.set'}); + e = g.converters.ByteString(e); + t = g.converters.ByteString(t); + t = headerValueNormalize(t); + if (!a(e)) { + throw g.errors.invalidArgument({prefix: 'Headers.set', value: e, type: 'header name'}); + } else if (!c(t)) { + throw g.errors.invalidArgument({prefix: 'Headers.set', value: t, type: 'header value'}); + } + if (this[i] === 'immutable') { + throw new TypeError('immutable'); + } else if (this[i] === 'request-no-cors') { + } + this[A].set(e, t); + } + getSetCookie() { + g.brandCheck(this, Headers); + const e = this[A].cookies; + if (e) { + return [...e]; + } + return []; + } + get [d]() { + if (this[A][d]) { + return this[A][d]; + } + const e = []; + const t = [...this[A]].sort((e, t) => (e[0] < t[0] ? -1 : 1)); + const r = this[A].cookies; + for (let A = 0; A < t.length; ++A) { + const [s, i] = t[A]; + if (s === 'set-cookie') { + for (let t = 0; t < r.length; ++t) { + e.push([s, r[t]]); + } + } else { + l(i !== null); + e.push([s, i]); + } + } + this[A][d] = e; + return e; + } + keys() { + g.brandCheck(this, Headers); + if (this[i] === 'immutable') { + const e = this[d]; + return o(() => e, 'Headers', 'key'); + } + return o(() => [...this[d].values()], 'Headers', 'key'); + } + values() { + g.brandCheck(this, Headers); + if (this[i] === 'immutable') { + const e = this[d]; + return o(() => e, 'Headers', 'value'); + } + return o(() => [...this[d].values()], 'Headers', 'value'); + } + entries() { + g.brandCheck(this, Headers); + if (this[i] === 'immutable') { + const e = this[d]; + return o(() => e, 'Headers', 'key+value'); + } + return o(() => [...this[d].values()], 'Headers', 'key+value'); + } + forEach(e, t = globalThis) { + g.brandCheck(this, Headers); + g.argumentLengthCheck(arguments, 1, {header: 'Headers.forEach'}); + if (typeof e !== 'function') { + throw new TypeError( + "Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.", + ); + } + for (const [r, A] of this) { + e.apply(t, [A, r, this]); + } + } + [Symbol.for('nodejs.util.inspect.custom')]() { + g.brandCheck(this, Headers); + return this[A]; + } + } + Headers.prototype[Symbol.iterator] = Headers.prototype.entries; + Object.defineProperties(Headers.prototype, { + append: n, + delete: n, + get: n, + has: n, + set: n, + getSetCookie: n, + keys: n, + values: n, + entries: n, + forEach: n, + [Symbol.iterator]: {enumerable: false}, + [Symbol.toStringTag]: {value: 'Headers', configurable: true}, + [u.inspect.custom]: {enumerable: false}, + }); + g.converters.HeadersInit = function (e) { + if (g.util.Type(e) === 'Object') { + if (e[Symbol.iterator]) { + return g.converters['sequence>'](e); + } + return g.converters['record'](e); + } + throw g.errors.conversionFailed({ + prefix: 'Headers constructor', + argument: 'Argument 1', + types: ['sequence>', 'record'], + }); + }; + e.exports = {fill: fill, Headers: Headers, HeadersList: HeadersList}; + }, + 2315: (e, t, r) => { + 'use strict'; + const { + Response: A, + makeNetworkError: s, + makeAppropriateNetworkError: i, + filterResponse: n, + makeResponse: o, + } = r(8676); + const {Headers: a} = r(6349); + const {Request: c, makeRequest: u} = r(5194); + const g = r(3106); + const { + bytesMatch: l, + makePolicyContainer: p, + clonePolicyContainer: d, + requestBadPort: h, + TAOCheck: C, + appendRequestOriginHeader: Q, + responseLocationURL: B, + requestCurrentURL: I, + setRequestReferrerPolicyOnRedirect: m, + tryUpgradeRequestToAPotentiallyTrustworthyURL: y, + createOpaqueTimingInfo: b, + appendFetchMetadata: w, + corsCheck: R, + crossOriginResourcePolicyCheck: k, + determineRequestsReferrer: D, + coarsenedSharedCurrentTime: S, + createDeferredPromise: v, + isBlobLike: N, + sameOrigin: q, + isCancelled: T, + isAborted: _, + isErrorLike: U, + fullyReadBody: L, + readableStreamClose: M, + isomorphicEncode: G, + urlIsLocal: H, + urlIsHttpHttpsScheme: O, + urlHasHttpsScheme: x, + } = r(5523); + const {kState: P, kHeaders: Y, kGuard: J, kRealm: V} = r(9710); + const j = r(2613); + const {safelyExtractBody: W} = r(8923); + const { + redirectStatusSet: z, + nullBodyStatus: X, + safeMethodsSet: Z, + requestBodyHeader: K, + subresourceSet: $, + DOMException: ee, + } = r(7326); + const {kHeadersList: te} = r(6443); + const re = r(4434); + const {Readable: Ae, pipeline: se} = r(2203); + const {addAbortListener: ie, isErrored: ne, isReadable: oe, nodeMajor: ae, nodeMinor: ce} = r(3440); + const {dataURLProcessor: ue, serializeAMimeType: ge} = r(4322); + const {TransformStream: le} = r(3774); + const {getGlobalDispatcher: pe} = r(2581); + const {webidl: de} = r(4222); + const {STATUS_CODES: he} = r(8611); + const Ee = ['GET', 'HEAD']; + let Ce; + let Qe = globalThis.ReadableStream; + class Fetch extends re { + constructor(e) { + super(); + this.dispatcher = e; + this.connection = null; + this.dump = false; + this.state = 'ongoing'; + this.setMaxListeners(21); + } + terminate(e) { + if (this.state !== 'ongoing') { + return; + } + this.state = 'terminated'; + this.connection?.destroy(e); + this.emit('terminated', e); + } + abort(e) { + if (this.state !== 'ongoing') { + return; + } + this.state = 'aborted'; + if (!e) { + e = new ee('The operation was aborted.', 'AbortError'); + } + this.serializedAbortReason = e; + this.connection?.destroy(e); + this.emit('terminated', e); + } + } + function fetch(e, t = {}) { + de.argumentLengthCheck(arguments, 1, {header: 'globalThis.fetch'}); + const r = v(); + let s; + try { + s = new c(e, t); + } catch (e) { + r.reject(e); + return r.promise; + } + const i = s[P]; + if (s.signal.aborted) { + abortFetch(r, i, null, s.signal.reason); + return r.promise; + } + const n = i.client.globalObject; + if (n?.constructor?.name === 'ServiceWorkerGlobalScope') { + i.serviceWorkers = 'none'; + } + let o = null; + const a = null; + let u = false; + let g = null; + ie(s.signal, () => { + u = true; + j(g != null); + g.abort(s.signal.reason); + abortFetch(r, i, o, s.signal.reason); + }); + const handleFetchDone = (e) => finalizeAndReportTiming(e, 'fetch'); + const processResponse = (e) => { + if (u) { + return Promise.resolve(); + } + if (e.aborted) { + abortFetch(r, i, o, g.serializedAbortReason); + return Promise.resolve(); + } + if (e.type === 'error') { + r.reject(Object.assign(new TypeError('fetch failed'), {cause: e.error})); + return Promise.resolve(); + } + o = new A(); + o[P] = e; + o[V] = a; + o[Y][te] = e.headersList; + o[Y][J] = 'immutable'; + o[Y][V] = a; + r.resolve(o); + }; + g = fetching({ + request: i, + processResponseEndOfBody: handleFetchDone, + processResponse: processResponse, + dispatcher: t.dispatcher ?? pe(), + }); + return r.promise; + } + function finalizeAndReportTiming(e, t = 'other') { + if (e.type === 'error' && e.aborted) { + return; + } + if (!e.urlList?.length) { + return; + } + const r = e.urlList[0]; + let A = e.timingInfo; + let s = e.cacheState; + if (!O(r)) { + return; + } + if (A === null) { + return; + } + if (!e.timingAllowPassed) { + A = b({startTime: A.startTime}); + s = ''; + } + A.endTime = S(); + e.timingInfo = A; + markResourceTiming(A, r, t, globalThis, s); + } + function markResourceTiming(e, t, r, A, s) { + if (ae > 18 || (ae === 18 && ce >= 2)) { + performance.markResourceTiming(e, t.href, r, A, s); + } + } + function abortFetch(e, t, r, A) { + if (!A) { + A = new ee('The operation was aborted.', 'AbortError'); + } + e.reject(A); + if (t.body != null && oe(t.body?.stream)) { + t.body.stream.cancel(A).catch((e) => { + if (e.code === 'ERR_INVALID_STATE') { + return; + } + throw e; + }); + } + if (r == null) { + return; + } + const s = r[P]; + if (s.body != null && oe(s.body?.stream)) { + s.body.stream.cancel(A).catch((e) => { + if (e.code === 'ERR_INVALID_STATE') { + return; + } + throw e; + }); + } + } + function fetching({ + request: e, + processRequestBodyChunkLength: t, + processRequestEndOfBody: r, + processResponse: A, + processResponseEndOfBody: s, + processResponseConsumeBody: i, + useParallelQueue: n = false, + dispatcher: o, + }) { + let a = null; + let c = false; + if (e.client != null) { + a = e.client.globalObject; + c = e.client.crossOriginIsolatedCapability; + } + const u = S(c); + const g = b({startTime: u}); + const l = { + controller: new Fetch(o), + request: e, + timingInfo: g, + processRequestBodyChunkLength: t, + processRequestEndOfBody: r, + processResponse: A, + processResponseConsumeBody: i, + processResponseEndOfBody: s, + taskDestination: a, + crossOriginIsolatedCapability: c, + }; + j(!e.body || e.body.stream); + if (e.window === 'client') { + e.window = e.client?.globalObject?.constructor?.name === 'Window' ? e.client : 'no-window'; + } + if (e.origin === 'client') { + e.origin = e.client?.origin; + } + if (e.policyContainer === 'client') { + if (e.client != null) { + e.policyContainer = d(e.client.policyContainer); + } else { + e.policyContainer = p(); + } + } + if (!e.headersList.contains('accept')) { + const t = '*/*'; + e.headersList.append('accept', t); + } + if (!e.headersList.contains('accept-language')) { + e.headersList.append('accept-language', '*'); + } + if (e.priority === null) { + } + if ($.has(e.destination)) { + } + mainFetch(l).catch((e) => { + l.controller.terminate(e); + }); + return l.controller; + } + async function mainFetch(e, t = false) { + const r = e.request; + let A = null; + if (r.localURLsOnly && !H(I(r))) { + A = s('local URLs only'); + } + y(r); + if (h(r) === 'blocked') { + A = s('bad port'); + } + if (r.referrerPolicy === '') { + r.referrerPolicy = r.policyContainer.referrerPolicy; + } + if (r.referrer !== 'no-referrer') { + r.referrer = D(r); + } + if (A === null) { + A = await (async () => { + const t = I(r); + if ( + (q(t, r.url) && r.responseTainting === 'basic') || + t.protocol === 'data:' || + r.mode === 'navigate' || + r.mode === 'websocket' + ) { + r.responseTainting = 'basic'; + return await schemeFetch(e); + } + if (r.mode === 'same-origin') { + return s('request mode cannot be "same-origin"'); + } + if (r.mode === 'no-cors') { + if (r.redirect !== 'follow') { + return s('redirect mode cannot be "follow" for "no-cors" request'); + } + r.responseTainting = 'opaque'; + return await schemeFetch(e); + } + if (!O(I(r))) { + return s('URL scheme must be a HTTP(S) scheme'); + } + r.responseTainting = 'cors'; + return await httpFetch(e); + })(); + } + if (t) { + return A; + } + if (A.status !== 0 && !A.internalResponse) { + if (r.responseTainting === 'cors') { + } + if (r.responseTainting === 'basic') { + A = n(A, 'basic'); + } else if (r.responseTainting === 'cors') { + A = n(A, 'cors'); + } else if (r.responseTainting === 'opaque') { + A = n(A, 'opaque'); + } else { + j(false); + } + } + let i = A.status === 0 ? A : A.internalResponse; + if (i.urlList.length === 0) { + i.urlList.push(...r.urlList); + } + if (!r.timingAllowFailed) { + A.timingAllowPassed = true; + } + if (A.type === 'opaque' && i.status === 206 && i.rangeRequested && !r.headers.contains('range')) { + A = i = s(); + } + if (A.status !== 0 && (r.method === 'HEAD' || r.method === 'CONNECT' || X.includes(i.status))) { + i.body = null; + e.controller.dump = true; + } + if (r.integrity) { + const processBodyError = (t) => fetchFinale(e, s(t)); + if (r.responseTainting === 'opaque' || A.body == null) { + processBodyError(A.error); + return; + } + const processBody = (t) => { + if (!l(t, r.integrity)) { + processBodyError('integrity mismatch'); + return; + } + A.body = W(t)[0]; + fetchFinale(e, A); + }; + await L(A.body, processBody, processBodyError); + } else { + fetchFinale(e, A); + } + } + function schemeFetch(e) { + if (T(e) && e.request.redirectCount === 0) { + return Promise.resolve(i(e)); + } + const {request: t} = e; + const {protocol: A} = I(t); + switch (A) { + case 'about:': { + return Promise.resolve(s('about scheme is not supported')); + } + case 'blob:': { + if (!Ce) { + Ce = r(181).resolveObjectURL; + } + const e = I(t); + if (e.search.length !== 0) { + return Promise.resolve(s('NetworkError when attempting to fetch resource.')); + } + const A = Ce(e.toString()); + if (t.method !== 'GET' || !N(A)) { + return Promise.resolve(s('invalid method')); + } + const i = W(A); + const n = i[0]; + const a = G(`${n.length}`); + const c = i[1] ?? ''; + const u = o({ + statusText: 'OK', + headersList: [ + ['content-length', {name: 'Content-Length', value: a}], + ['content-type', {name: 'Content-Type', value: c}], + ], + }); + u.body = n; + return Promise.resolve(u); + } + case 'data:': { + const e = I(t); + const r = ue(e); + if (r === 'failure') { + return Promise.resolve(s('failed to fetch the data URL')); + } + const A = ge(r.mimeType); + return Promise.resolve( + o({ + statusText: 'OK', + headersList: [['content-type', {name: 'Content-Type', value: A}]], + body: W(r.body)[0], + }), + ); + } + case 'file:': { + return Promise.resolve(s('not implemented... yet...')); + } + case 'http:': + case 'https:': { + return httpFetch(e).catch((e) => s(e)); + } + default: { + return Promise.resolve(s('unknown scheme')); + } + } + } + function finalizeResponse(e, t) { + e.request.done = true; + if (e.processResponseDone != null) { + queueMicrotask(() => e.processResponseDone(t)); + } + } + function fetchFinale(e, t) { + if (t.type === 'error') { + t.urlList = [e.request.urlList[0]]; + t.timingInfo = b({startTime: e.timingInfo.startTime}); + } + const processResponseEndOfBody = () => { + e.request.done = true; + if (e.processResponseEndOfBody != null) { + queueMicrotask(() => e.processResponseEndOfBody(t)); + } + }; + if (e.processResponse != null) { + queueMicrotask(() => e.processResponse(t)); + } + if (t.body == null) { + processResponseEndOfBody(); + } else { + const identityTransformAlgorithm = (e, t) => { + t.enqueue(e); + }; + const e = new le( + {start() {}, transform: identityTransformAlgorithm, flush: processResponseEndOfBody}, + { + size() { + return 1; + }, + }, + { + size() { + return 1; + }, + }, + ); + t.body = {stream: t.body.stream.pipeThrough(e)}; + } + if (e.processResponseConsumeBody != null) { + const processBody = (r) => e.processResponseConsumeBody(t, r); + const processBodyError = (r) => e.processResponseConsumeBody(t, r); + if (t.body == null) { + queueMicrotask(() => processBody(null)); + } else { + return L(t.body, processBody, processBodyError); + } + return Promise.resolve(); + } + } + async function httpFetch(e) { + const t = e.request; + let r = null; + let A = null; + const i = e.timingInfo; + if (t.serviceWorkers === 'all') { + } + if (r === null) { + if (t.redirect === 'follow') { + t.serviceWorkers = 'none'; + } + A = r = await httpNetworkOrCacheFetch(e); + if (t.responseTainting === 'cors' && R(t, r) === 'failure') { + return s('cors failure'); + } + if (C(t, r) === 'failure') { + t.timingAllowFailed = true; + } + } + if ( + (t.responseTainting === 'opaque' || r.type === 'opaque') && + k(t.origin, t.client, t.destination, A) === 'blocked' + ) { + return s('blocked'); + } + if (z.has(A.status)) { + if (t.redirect !== 'manual') { + e.controller.connection.destroy(); + } + if (t.redirect === 'error') { + r = s('unexpected redirect'); + } else if (t.redirect === 'manual') { + r = A; + } else if (t.redirect === 'follow') { + r = await httpRedirectFetch(e, r); + } else { + j(false); + } + } + r.timingInfo = i; + return r; + } + function httpRedirectFetch(e, t) { + const r = e.request; + const A = t.internalResponse ? t.internalResponse : t; + let i; + try { + i = B(A, I(r).hash); + if (i == null) { + return t; + } + } catch (e) { + return Promise.resolve(s(e)); + } + if (!O(i)) { + return Promise.resolve(s('URL scheme must be a HTTP(S) scheme')); + } + if (r.redirectCount === 20) { + return Promise.resolve(s('redirect count exceeded')); + } + r.redirectCount += 1; + if (r.mode === 'cors' && (i.username || i.password) && !q(r, i)) { + return Promise.resolve(s('cross origin not allowed for request mode "cors"')); + } + if (r.responseTainting === 'cors' && (i.username || i.password)) { + return Promise.resolve(s('URL cannot contain credentials for request mode "cors"')); + } + if (A.status !== 303 && r.body != null && r.body.source == null) { + return Promise.resolve(s()); + } + if ( + ([301, 302].includes(A.status) && r.method === 'POST') || + (A.status === 303 && !Ee.includes(r.method)) + ) { + r.method = 'GET'; + r.body = null; + for (const e of K) { + r.headersList.delete(e); + } + } + if (!q(I(r), i)) { + r.headersList.delete('authorization'); + r.headersList.delete('proxy-authorization', true); + r.headersList.delete('cookie'); + r.headersList.delete('host'); + } + if (r.body != null) { + j(r.body.source != null); + r.body = W(r.body.source)[0]; + } + const n = e.timingInfo; + n.redirectEndTime = n.postRedirectStartTime = S(e.crossOriginIsolatedCapability); + if (n.redirectStartTime === 0) { + n.redirectStartTime = n.startTime; + } + r.urlList.push(i); + m(r, A); + return mainFetch(e, true); + } + async function httpNetworkOrCacheFetch(e, t = false, r = false) { + const A = e.request; + let n = null; + let o = null; + let a = null; + const c = null; + const g = false; + if (A.window === 'no-window' && A.redirect === 'error') { + n = e; + o = A; + } else { + o = u(A); + n = {...e}; + n.request = o; + } + const l = + A.credentials === 'include' || (A.credentials === 'same-origin' && A.responseTainting === 'basic'); + const p = o.body ? o.body.length : null; + let d = null; + if (o.body == null && ['POST', 'PUT'].includes(o.method)) { + d = '0'; + } + if (p != null) { + d = G(`${p}`); + } + if (d != null) { + o.headersList.append('content-length', d); + } + if (p != null && o.keepalive) { + } + if (o.referrer instanceof URL) { + o.headersList.append('referer', G(o.referrer.href)); + } + Q(o); + w(o); + if (!o.headersList.contains('user-agent')) { + o.headersList.append('user-agent', typeof esbuildDetection === 'undefined' ? 'undici' : 'node'); + } + if ( + o.cache === 'default' && + (o.headersList.contains('if-modified-since') || + o.headersList.contains('if-none-match') || + o.headersList.contains('if-unmodified-since') || + o.headersList.contains('if-match') || + o.headersList.contains('if-range')) + ) { + o.cache = 'no-store'; + } + if ( + o.cache === 'no-cache' && + !o.preventNoCacheCacheControlHeaderModification && + !o.headersList.contains('cache-control') + ) { + o.headersList.append('cache-control', 'max-age=0'); + } + if (o.cache === 'no-store' || o.cache === 'reload') { + if (!o.headersList.contains('pragma')) { + o.headersList.append('pragma', 'no-cache'); + } + if (!o.headersList.contains('cache-control')) { + o.headersList.append('cache-control', 'no-cache'); + } + } + if (o.headersList.contains('range')) { + o.headersList.append('accept-encoding', 'identity'); + } + if (!o.headersList.contains('accept-encoding')) { + if (x(I(o))) { + o.headersList.append('accept-encoding', 'br, gzip, deflate'); + } else { + o.headersList.append('accept-encoding', 'gzip, deflate'); + } + } + o.headersList.delete('host'); + if (l) { + } + if (c == null) { + o.cache = 'no-store'; + } + if (o.mode !== 'no-store' && o.mode !== 'reload') { + } + if (a == null) { + if (o.mode === 'only-if-cached') { + return s('only if cached'); + } + const e = await httpNetworkFetch(n, l, r); + if (!Z.has(o.method) && e.status >= 200 && e.status <= 399) { + } + if (g && e.status === 304) { + } + if (a == null) { + a = e; + } + } + a.urlList = [...o.urlList]; + if (o.headersList.contains('range')) { + a.rangeRequested = true; + } + a.requestIncludesCredentials = l; + if (a.status === 407) { + if (A.window === 'no-window') { + return s(); + } + if (T(e)) { + return i(e); + } + return s('proxy authentication required'); + } + if (a.status === 421 && !r && (A.body == null || A.body.source != null)) { + if (T(e)) { + return i(e); + } + e.controller.connection.destroy(); + a = await httpNetworkOrCacheFetch(e, t, true); + } + if (t) { + } + return a; + } + async function httpNetworkFetch(e, t = false, A = false) { + j(!e.controller.connection || e.controller.connection.destroyed); + e.controller.connection = { + abort: null, + destroyed: false, + destroy(e) { + if (!this.destroyed) { + this.destroyed = true; + this.abort?.(e ?? new ee('The operation was aborted.', 'AbortError')); + } + }, + }; + const n = e.request; + let c = null; + const u = e.timingInfo; + const l = null; + if (l == null) { + n.cache = 'no-store'; + } + const p = A ? 'yes' : 'no'; + if (n.mode === 'websocket') { + } else { + } + let d = null; + if (n.body == null && e.processRequestEndOfBody) { + queueMicrotask(() => e.processRequestEndOfBody()); + } else if (n.body != null) { + const processBodyChunk = async function* (t) { + if (T(e)) { + return; + } + yield t; + e.processRequestBodyChunkLength?.(t.byteLength); + }; + const processEndOfBody = () => { + if (T(e)) { + return; + } + if (e.processRequestEndOfBody) { + e.processRequestEndOfBody(); + } + }; + const processBodyError = (t) => { + if (T(e)) { + return; + } + if (t.name === 'AbortError') { + e.controller.abort(); + } else { + e.controller.terminate(t); + } + }; + d = (async function* () { + try { + for await (const e of n.body.stream) { + yield* processBodyChunk(e); + } + processEndOfBody(); + } catch (e) { + processBodyError(e); + } + })(); + } + try { + const {body: t, status: r, statusText: A, headersList: s, socket: i} = await dispatch({body: d}); + if (i) { + c = o({status: r, statusText: A, headersList: s, socket: i}); + } else { + const i = t[Symbol.asyncIterator](); + e.controller.next = () => i.next(); + c = o({status: r, statusText: A, headersList: s}); + } + } catch (t) { + if (t.name === 'AbortError') { + e.controller.connection.destroy(); + return i(e, t); + } + return s(t); + } + const pullAlgorithm = () => { + e.controller.resume(); + }; + const cancelAlgorithm = (t) => { + e.controller.abort(t); + }; + if (!Qe) { + Qe = r(3774).ReadableStream; + } + const h = new Qe( + { + async start(t) { + e.controller.controller = t; + }, + async pull(e) { + await pullAlgorithm(e); + }, + async cancel(e) { + await cancelAlgorithm(e); + }, + }, + { + highWaterMark: 0, + size() { + return 1; + }, + }, + ); + c.body = {stream: h}; + e.controller.on('terminated', onAborted); + e.controller.resume = async () => { + while (true) { + let t; + let r; + try { + const {done: r, value: A} = await e.controller.next(); + if (_(e)) { + break; + } + t = r ? undefined : A; + } catch (A) { + if (e.controller.ended && !u.encodedBodySize) { + t = undefined; + } else { + t = A; + r = true; + } + } + if (t === undefined) { + M(e.controller.controller); + finalizeResponse(e, c); + return; + } + u.decodedBodySize += t?.byteLength ?? 0; + if (r) { + e.controller.terminate(t); + return; + } + e.controller.controller.enqueue(new Uint8Array(t)); + if (ne(h)) { + e.controller.terminate(); + return; + } + if (!e.controller.controller.desiredSize) { + return; + } + } + }; + function onAborted(t) { + if (_(e)) { + c.aborted = true; + if (oe(h)) { + e.controller.controller.error(e.controller.serializedAbortReason); + } + } else { + if (oe(h)) { + e.controller.controller.error(new TypeError('terminated', {cause: U(t) ? t : undefined})); + } + } + e.controller.connection.destroy(); + } + return c; + async function dispatch({body: t}) { + const r = I(n); + const A = e.controller.dispatcher; + return new Promise((s, i) => + A.dispatch( + { + path: r.pathname + r.search, + origin: r.origin, + method: n.method, + body: e.controller.dispatcher.isMockActive + ? n.body && (n.body.source || n.body.stream) + : t, + headers: n.headersList.entries, + maxRedirections: 0, + upgrade: n.mode === 'websocket' ? 'websocket' : undefined, + }, + { + body: null, + abort: null, + onConnect(t) { + const {connection: r} = e.controller; + if (r.destroyed) { + t(new ee('The operation was aborted.', 'AbortError')); + } else { + e.controller.on('terminated', t); + this.abort = r.abort = t; + } + }, + onHeaders(e, t, r, A) { + if (e < 200) { + return; + } + let i = []; + let o = ''; + const c = new a(); + if (Array.isArray(t)) { + for (let e = 0; e < t.length; e += 2) { + const r = t[e + 0].toString('latin1'); + const A = t[e + 1].toString('latin1'); + if (r.toLowerCase() === 'content-encoding') { + i = A.toLowerCase() + .split(',') + .map((e) => e.trim()); + } else if (r.toLowerCase() === 'location') { + o = A; + } + c[te].append(r, A); + } + } else { + const e = Object.keys(t); + for (const r of e) { + const e = t[r]; + if (r.toLowerCase() === 'content-encoding') { + i = e + .toLowerCase() + .split(',') + .map((e) => e.trim()) + .reverse(); + } else if (r.toLowerCase() === 'location') { + o = e; + } + c[te].append(r, e); + } + } + this.body = new Ae({read: r}); + const u = []; + const l = n.redirect === 'follow' && o && z.has(e); + if (n.method !== 'HEAD' && n.method !== 'CONNECT' && !X.includes(e) && !l) { + for (const e of i) { + if (e === 'x-gzip' || e === 'gzip') { + u.push( + g.createGunzip({ + flush: g.constants.Z_SYNC_FLUSH, + finishFlush: g.constants.Z_SYNC_FLUSH, + }), + ); + } else if (e === 'deflate') { + u.push(g.createInflate()); + } else if (e === 'br') { + u.push(g.createBrotliDecompress()); + } else { + u.length = 0; + break; + } + } + } + s({ + status: e, + statusText: A, + headersList: c[te], + body: u.length + ? se(this.body, ...u, () => {}) + : this.body.on('error', () => {}), + }); + return true; + }, + onData(t) { + if (e.controller.dump) { + return; + } + const r = t; + u.encodedBodySize += r.byteLength; + return this.body.push(r); + }, + onComplete() { + if (this.abort) { + e.controller.off('terminated', this.abort); + } + e.controller.ended = true; + this.body.push(null); + }, + onError(t) { + if (this.abort) { + e.controller.off('terminated', this.abort); + } + this.body?.destroy(t); + e.controller.terminate(t); + i(t); + }, + onUpgrade(e, t, r) { + if (e !== 101) { + return; + } + const A = new a(); + for (let e = 0; e < t.length; e += 2) { + const r = t[e + 0].toString('latin1'); + const s = t[e + 1].toString('latin1'); + A[te].append(r, s); + } + s({status: e, statusText: he[e], headersList: A[te], socket: r}); + return true; + }, + }, + ), + ); + } + } + e.exports = { + fetch: fetch, + Fetch: Fetch, + fetching: fetching, + finalizeAndReportTiming: finalizeAndReportTiming, + }; + }, + 5194: (e, t, r) => { + 'use strict'; + const {extractBody: A, mixinBody: s, cloneBody: i} = r(8923); + const {Headers: n, fill: o, HeadersList: a} = r(6349); + const {FinalizationRegistry: c} = r(3194)(); + const u = r(3440); + const { + isValidHTTPToken: g, + sameOrigin: l, + normalizeMethod: p, + makePolicyContainer: d, + normalizeMethodRecord: h, + } = r(5523); + const { + forbiddenMethodsSet: C, + corsSafeListedMethodsSet: Q, + referrerPolicy: B, + requestRedirect: I, + requestMode: m, + requestCredentials: y, + requestCache: b, + requestDuplex: w, + } = r(7326); + const {kEnumerableProperty: R} = u; + const {kHeaders: k, kSignal: D, kState: S, kGuard: v, kRealm: N} = r(9710); + const {webidl: q} = r(4222); + const {getGlobalOrigin: T} = r(5628); + const {URLSerializer: _} = r(4322); + const {kHeadersList: U, kConstruct: L} = r(6443); + const M = r(2613); + const {getMaxListeners: G, setMaxListeners: H, getEventListeners: O, defaultMaxListeners: x} = r(4434); + let P = globalThis.TransformStream; + const Y = Symbol('abortController'); + const J = new c(({signal: e, abort: t}) => { + e.removeEventListener('abort', t); + }); + class Request { + constructor(e, t = {}) { + if (e === L) { + return; + } + q.argumentLengthCheck(arguments, 1, {header: 'Request constructor'}); + e = q.converters.RequestInfo(e); + t = q.converters.RequestInit(t); + this[N] = { + settingsObject: { + baseUrl: T(), + get origin() { + return this.baseUrl?.origin; + }, + policyContainer: d(), + }, + }; + let s = null; + let i = null; + const c = this[N].settingsObject.baseUrl; + let B = null; + if (typeof e === 'string') { + let t; + try { + t = new URL(e, c); + } catch (t) { + throw new TypeError('Failed to parse URL from ' + e, {cause: t}); + } + if (t.username || t.password) { + throw new TypeError( + 'Request cannot be constructed from a URL that includes credentials: ' + e, + ); + } + s = makeRequest({urlList: [t]}); + i = 'cors'; + } else { + M(e instanceof Request); + s = e[S]; + B = e[D]; + } + const I = this[N].settingsObject.origin; + let m = 'client'; + if (s.window?.constructor?.name === 'EnvironmentSettingsObject' && l(s.window, I)) { + m = s.window; + } + if (t.window != null) { + throw new TypeError(`'window' option '${m}' must be null`); + } + if ('window' in t) { + m = 'no-window'; + } + s = makeRequest({ + method: s.method, + headersList: s.headersList, + unsafeRequest: s.unsafeRequest, + client: this[N].settingsObject, + window: m, + priority: s.priority, + origin: s.origin, + referrer: s.referrer, + referrerPolicy: s.referrerPolicy, + mode: s.mode, + credentials: s.credentials, + cache: s.cache, + redirect: s.redirect, + integrity: s.integrity, + keepalive: s.keepalive, + reloadNavigation: s.reloadNavigation, + historyNavigation: s.historyNavigation, + urlList: [...s.urlList], + }); + const y = Object.keys(t).length !== 0; + if (y) { + if (s.mode === 'navigate') { + s.mode = 'same-origin'; + } + s.reloadNavigation = false; + s.historyNavigation = false; + s.origin = 'client'; + s.referrer = 'client'; + s.referrerPolicy = ''; + s.url = s.urlList[s.urlList.length - 1]; + s.urlList = [s.url]; + } + if (t.referrer !== undefined) { + const e = t.referrer; + if (e === '') { + s.referrer = 'no-referrer'; + } else { + let t; + try { + t = new URL(e, c); + } catch (t) { + throw new TypeError(`Referrer "${e}" is not a valid URL.`, {cause: t}); + } + if ( + (t.protocol === 'about:' && t.hostname === 'client') || + (I && !l(t, this[N].settingsObject.baseUrl)) + ) { + s.referrer = 'client'; + } else { + s.referrer = t; + } + } + } + if (t.referrerPolicy !== undefined) { + s.referrerPolicy = t.referrerPolicy; + } + let b; + if (t.mode !== undefined) { + b = t.mode; + } else { + b = i; + } + if (b === 'navigate') { + throw q.errors.exception({ + header: 'Request constructor', + message: 'invalid request mode navigate.', + }); + } + if (b != null) { + s.mode = b; + } + if (t.credentials !== undefined) { + s.credentials = t.credentials; + } + if (t.cache !== undefined) { + s.cache = t.cache; + } + if (s.cache === 'only-if-cached' && s.mode !== 'same-origin') { + throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode"); + } + if (t.redirect !== undefined) { + s.redirect = t.redirect; + } + if (t.integrity != null) { + s.integrity = String(t.integrity); + } + if (t.keepalive !== undefined) { + s.keepalive = Boolean(t.keepalive); + } + if (t.method !== undefined) { + let e = t.method; + if (!g(e)) { + throw new TypeError(`'${e}' is not a valid HTTP method.`); + } + if (C.has(e.toUpperCase())) { + throw new TypeError(`'${e}' HTTP method is unsupported.`); + } + e = h[e] ?? p(e); + s.method = e; + } + if (t.signal !== undefined) { + B = t.signal; + } + this[S] = s; + const w = new AbortController(); + this[D] = w.signal; + this[D][N] = this[N]; + if (B != null) { + if (!B || typeof B.aborted !== 'boolean' || typeof B.addEventListener !== 'function') { + throw new TypeError( + "Failed to construct 'Request': member signal is not of type AbortSignal.", + ); + } + if (B.aborted) { + w.abort(B.reason); + } else { + this[Y] = w; + const e = new WeakRef(w); + const abort = function () { + const t = e.deref(); + if (t !== undefined) { + t.abort(this.reason); + } + }; + try { + if (typeof G === 'function' && G(B) === x) { + H(100, B); + } else if (O(B, 'abort').length >= x) { + H(100, B); + } + } catch {} + u.addAbortListener(B, abort); + J.register(w, {signal: B, abort: abort}); + } + } + this[k] = new n(L); + this[k][U] = s.headersList; + this[k][v] = 'request'; + this[k][N] = this[N]; + if (b === 'no-cors') { + if (!Q.has(s.method)) { + throw new TypeError(`'${s.method} is unsupported in no-cors mode.`); + } + this[k][v] = 'request-no-cors'; + } + if (y) { + const e = this[k][U]; + const r = t.headers !== undefined ? t.headers : new a(e); + e.clear(); + if (r instanceof a) { + for (const [t, A] of r) { + e.append(t, A); + } + e.cookies = r.cookies; + } else { + o(this[k], r); + } + } + const R = e instanceof Request ? e[S].body : null; + if ((t.body != null || R != null) && (s.method === 'GET' || s.method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body.'); + } + let _ = null; + if (t.body != null) { + const [e, r] = A(t.body, s.keepalive); + _ = e; + if (r && !this[k][U].contains('content-type')) { + this[k].append('content-type', r); + } + } + const V = _ ?? R; + if (V != null && V.source == null) { + if (_ != null && t.duplex == null) { + throw new TypeError('RequestInit: duplex option is required when sending a body.'); + } + if (s.mode !== 'same-origin' && s.mode !== 'cors') { + throw new TypeError( + 'If request is made from ReadableStream, mode should be "same-origin" or "cors"', + ); + } + s.useCORSPreflightFlag = true; + } + let j = V; + if (_ == null && R != null) { + if (u.isDisturbed(R.stream) || R.stream.locked) { + throw new TypeError( + 'Cannot construct a Request with a Request object that has already been used.', + ); + } + if (!P) { + P = r(3774).TransformStream; + } + const e = new P(); + R.stream.pipeThrough(e); + j = {source: R.source, length: R.length, stream: e.readable}; + } + this[S].body = j; + } + get method() { + q.brandCheck(this, Request); + return this[S].method; + } + get url() { + q.brandCheck(this, Request); + return _(this[S].url); + } + get headers() { + q.brandCheck(this, Request); + return this[k]; + } + get destination() { + q.brandCheck(this, Request); + return this[S].destination; + } + get referrer() { + q.brandCheck(this, Request); + if (this[S].referrer === 'no-referrer') { + return ''; + } + if (this[S].referrer === 'client') { + return 'about:client'; + } + return this[S].referrer.toString(); + } + get referrerPolicy() { + q.brandCheck(this, Request); + return this[S].referrerPolicy; + } + get mode() { + q.brandCheck(this, Request); + return this[S].mode; + } + get credentials() { + return this[S].credentials; + } + get cache() { + q.brandCheck(this, Request); + return this[S].cache; + } + get redirect() { + q.brandCheck(this, Request); + return this[S].redirect; + } + get integrity() { + q.brandCheck(this, Request); + return this[S].integrity; + } + get keepalive() { + q.brandCheck(this, Request); + return this[S].keepalive; + } + get isReloadNavigation() { + q.brandCheck(this, Request); + return this[S].reloadNavigation; + } + get isHistoryNavigation() { + q.brandCheck(this, Request); + return this[S].historyNavigation; + } + get signal() { + q.brandCheck(this, Request); + return this[D]; + } + get body() { + q.brandCheck(this, Request); + return this[S].body ? this[S].body.stream : null; + } + get bodyUsed() { + q.brandCheck(this, Request); + return !!this[S].body && u.isDisturbed(this[S].body.stream); + } + get duplex() { + q.brandCheck(this, Request); + return 'half'; + } + clone() { + q.brandCheck(this, Request); + if (this.bodyUsed || this.body?.locked) { + throw new TypeError('unusable'); + } + const e = cloneRequest(this[S]); + const t = new Request(L); + t[S] = e; + t[N] = this[N]; + t[k] = new n(L); + t[k][U] = e.headersList; + t[k][v] = this[k][v]; + t[k][N] = this[k][N]; + const r = new AbortController(); + if (this.signal.aborted) { + r.abort(this.signal.reason); + } else { + u.addAbortListener(this.signal, () => { + r.abort(this.signal.reason); + }); + } + t[D] = r.signal; + return t; + } + } + s(Request); + function makeRequest(e) { + const t = { + method: 'GET', + localURLsOnly: false, + unsafeRequest: false, + body: null, + client: null, + reservedClient: null, + replacesClientId: '', + window: 'client', + keepalive: false, + serviceWorkers: 'all', + initiator: '', + destination: '', + priority: null, + origin: 'client', + policyContainer: 'client', + referrer: 'client', + referrerPolicy: '', + mode: 'no-cors', + useCORSPreflightFlag: false, + credentials: 'same-origin', + useCredentials: false, + cache: 'default', + redirect: 'follow', + integrity: '', + cryptoGraphicsNonceMetadata: '', + parserMetadata: '', + reloadNavigation: false, + historyNavigation: false, + userActivation: false, + taintedOrigin: false, + redirectCount: 0, + responseTainting: 'basic', + preventNoCacheCacheControlHeaderModification: false, + done: false, + timingAllowFailed: false, + ...e, + headersList: e.headersList ? new a(e.headersList) : new a(), + }; + t.url = t.urlList[0]; + return t; + } + function cloneRequest(e) { + const t = makeRequest({...e, body: null}); + if (e.body != null) { + t.body = i(e.body); + } + return t; + } + Object.defineProperties(Request.prototype, { + method: R, + url: R, + headers: R, + redirect: R, + clone: R, + signal: R, + duplex: R, + destination: R, + body: R, + bodyUsed: R, + isHistoryNavigation: R, + isReloadNavigation: R, + keepalive: R, + integrity: R, + cache: R, + credentials: R, + attribute: R, + referrerPolicy: R, + referrer: R, + mode: R, + [Symbol.toStringTag]: {value: 'Request', configurable: true}, + }); + q.converters.Request = q.interfaceConverter(Request); + q.converters.RequestInfo = function (e) { + if (typeof e === 'string') { + return q.converters.USVString(e); + } + if (e instanceof Request) { + return q.converters.Request(e); + } + return q.converters.USVString(e); + }; + q.converters.AbortSignal = q.interfaceConverter(AbortSignal); + q.converters.RequestInit = q.dictionaryConverter([ + {key: 'method', converter: q.converters.ByteString}, + {key: 'headers', converter: q.converters.HeadersInit}, + {key: 'body', converter: q.nullableConverter(q.converters.BodyInit)}, + {key: 'referrer', converter: q.converters.USVString}, + {key: 'referrerPolicy', converter: q.converters.DOMString, allowedValues: B}, + {key: 'mode', converter: q.converters.DOMString, allowedValues: m}, + {key: 'credentials', converter: q.converters.DOMString, allowedValues: y}, + {key: 'cache', converter: q.converters.DOMString, allowedValues: b}, + {key: 'redirect', converter: q.converters.DOMString, allowedValues: I}, + {key: 'integrity', converter: q.converters.DOMString}, + {key: 'keepalive', converter: q.converters.boolean}, + {key: 'signal', converter: q.nullableConverter((e) => q.converters.AbortSignal(e, {strict: false}))}, + {key: 'window', converter: q.converters.any}, + {key: 'duplex', converter: q.converters.DOMString, allowedValues: w}, + ]); + e.exports = {Request: Request, makeRequest: makeRequest}; + }, + 8676: (e, t, r) => { + 'use strict'; + const {Headers: A, HeadersList: s, fill: i} = r(6349); + const {extractBody: n, cloneBody: o, mixinBody: a} = r(8923); + const c = r(3440); + const {kEnumerableProperty: u} = c; + const { + isValidReasonPhrase: g, + isCancelled: l, + isAborted: p, + isBlobLike: d, + serializeJavascriptValueToJSONString: h, + isErrorLike: C, + isomorphicEncode: Q, + } = r(5523); + const {redirectStatusSet: B, nullBodyStatus: I, DOMException: m} = r(7326); + const {kState: y, kHeaders: b, kGuard: w, kRealm: R} = r(9710); + const {webidl: k} = r(4222); + const {FormData: D} = r(3073); + const {getGlobalOrigin: S} = r(5628); + const {URLSerializer: v} = r(4322); + const {kHeadersList: N, kConstruct: q} = r(6443); + const T = r(2613); + const {types: _} = r(9023); + const U = globalThis.ReadableStream || r(3774).ReadableStream; + const L = new TextEncoder('utf-8'); + class Response { + static error() { + const e = {settingsObject: {}}; + const t = new Response(); + t[y] = makeNetworkError(); + t[R] = e; + t[b][N] = t[y].headersList; + t[b][w] = 'immutable'; + t[b][R] = e; + return t; + } + static json(e, t = {}) { + k.argumentLengthCheck(arguments, 1, {header: 'Response.json'}); + if (t !== null) { + t = k.converters.ResponseInit(t); + } + const r = L.encode(h(e)); + const A = n(r); + const s = {settingsObject: {}}; + const i = new Response(); + i[R] = s; + i[b][w] = 'response'; + i[b][R] = s; + initializeResponse(i, t, {body: A[0], type: 'application/json'}); + return i; + } + static redirect(e, t = 302) { + const r = {settingsObject: {}}; + k.argumentLengthCheck(arguments, 1, {header: 'Response.redirect'}); + e = k.converters.USVString(e); + t = k.converters['unsigned short'](t); + let A; + try { + A = new URL(e, S()); + } catch (t) { + throw Object.assign(new TypeError('Failed to parse URL from ' + e), {cause: t}); + } + if (!B.has(t)) { + throw new RangeError('Invalid status code ' + t); + } + const s = new Response(); + s[R] = r; + s[b][w] = 'immutable'; + s[b][R] = r; + s[y].status = t; + const i = Q(v(A)); + s[y].headersList.append('location', i); + return s; + } + constructor(e = null, t = {}) { + if (e !== null) { + e = k.converters.BodyInit(e); + } + t = k.converters.ResponseInit(t); + this[R] = {settingsObject: {}}; + this[y] = makeResponse({}); + this[b] = new A(q); + this[b][w] = 'response'; + this[b][N] = this[y].headersList; + this[b][R] = this[R]; + let r = null; + if (e != null) { + const [t, A] = n(e); + r = {body: t, type: A}; + } + initializeResponse(this, t, r); + } + get type() { + k.brandCheck(this, Response); + return this[y].type; + } + get url() { + k.brandCheck(this, Response); + const e = this[y].urlList; + const t = e[e.length - 1] ?? null; + if (t === null) { + return ''; + } + return v(t, true); + } + get redirected() { + k.brandCheck(this, Response); + return this[y].urlList.length > 1; + } + get status() { + k.brandCheck(this, Response); + return this[y].status; + } + get ok() { + k.brandCheck(this, Response); + return this[y].status >= 200 && this[y].status <= 299; + } + get statusText() { + k.brandCheck(this, Response); + return this[y].statusText; + } + get headers() { + k.brandCheck(this, Response); + return this[b]; + } + get body() { + k.brandCheck(this, Response); + return this[y].body ? this[y].body.stream : null; + } + get bodyUsed() { + k.brandCheck(this, Response); + return !!this[y].body && c.isDisturbed(this[y].body.stream); + } + clone() { + k.brandCheck(this, Response); + if (this.bodyUsed || (this.body && this.body.locked)) { + throw k.errors.exception({ + header: 'Response.clone', + message: 'Body has already been consumed.', + }); + } + const e = cloneResponse(this[y]); + const t = new Response(); + t[y] = e; + t[R] = this[R]; + t[b][N] = e.headersList; + t[b][w] = this[b][w]; + t[b][R] = this[b][R]; + return t; + } + } + a(Response); + Object.defineProperties(Response.prototype, { + type: u, + url: u, + status: u, + ok: u, + redirected: u, + statusText: u, + headers: u, + clone: u, + body: u, + bodyUsed: u, + [Symbol.toStringTag]: {value: 'Response', configurable: true}, + }); + Object.defineProperties(Response, {json: u, redirect: u, error: u}); + function cloneResponse(e) { + if (e.internalResponse) { + return filterResponse(cloneResponse(e.internalResponse), e.type); + } + const t = makeResponse({...e, body: null}); + if (e.body != null) { + t.body = o(e.body); + } + return t; + } + function makeResponse(e) { + return { + aborted: false, + rangeRequested: false, + timingAllowPassed: false, + requestIncludesCredentials: false, + type: 'default', + status: 200, + timingInfo: null, + cacheState: '', + statusText: '', + ...e, + headersList: e.headersList ? new s(e.headersList) : new s(), + urlList: e.urlList ? [...e.urlList] : [], + }; + } + function makeNetworkError(e) { + const t = C(e); + return makeResponse({ + type: 'error', + status: 0, + error: t ? e : new Error(e ? String(e) : e), + aborted: e && e.name === 'AbortError', + }); + } + function makeFilteredResponse(e, t) { + t = {internalResponse: e, ...t}; + return new Proxy(e, { + get(e, r) { + return r in t ? t[r] : e[r]; + }, + set(e, r, A) { + T(!(r in t)); + e[r] = A; + return true; + }, + }); + } + function filterResponse(e, t) { + if (t === 'basic') { + return makeFilteredResponse(e, {type: 'basic', headersList: e.headersList}); + } else if (t === 'cors') { + return makeFilteredResponse(e, {type: 'cors', headersList: e.headersList}); + } else if (t === 'opaque') { + return makeFilteredResponse(e, { + type: 'opaque', + urlList: Object.freeze([]), + status: 0, + statusText: '', + body: null, + }); + } else if (t === 'opaqueredirect') { + return makeFilteredResponse(e, { + type: 'opaqueredirect', + status: 0, + statusText: '', + headersList: [], + body: null, + }); + } else { + T(false); + } + } + function makeAppropriateNetworkError(e, t = null) { + T(l(e)); + return p(e) + ? makeNetworkError(Object.assign(new m('The operation was aborted.', 'AbortError'), {cause: t})) + : makeNetworkError(Object.assign(new m('Request was cancelled.'), {cause: t})); + } + function initializeResponse(e, t, r) { + if (t.status !== null && (t.status < 200 || t.status > 599)) { + throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.'); + } + if ('statusText' in t && t.statusText != null) { + if (!g(String(t.statusText))) { + throw new TypeError('Invalid statusText'); + } + } + if ('status' in t && t.status != null) { + e[y].status = t.status; + } + if ('statusText' in t && t.statusText != null) { + e[y].statusText = t.statusText; + } + if ('headers' in t && t.headers != null) { + i(e[b], t.headers); + } + if (r) { + if (I.includes(e.status)) { + throw k.errors.exception({ + header: 'Response constructor', + message: 'Invalid response status code ' + e.status, + }); + } + e[y].body = r.body; + if (r.type != null && !e[y].headersList.contains('Content-Type')) { + e[y].headersList.append('content-type', r.type); + } + } + } + k.converters.ReadableStream = k.interfaceConverter(U); + k.converters.FormData = k.interfaceConverter(D); + k.converters.URLSearchParams = k.interfaceConverter(URLSearchParams); + k.converters.XMLHttpRequestBodyInit = function (e) { + if (typeof e === 'string') { + return k.converters.USVString(e); + } + if (d(e)) { + return k.converters.Blob(e, {strict: false}); + } + if (_.isArrayBuffer(e) || _.isTypedArray(e) || _.isDataView(e)) { + return k.converters.BufferSource(e); + } + if (c.isFormDataLike(e)) { + return k.converters.FormData(e, {strict: false}); + } + if (e instanceof URLSearchParams) { + return k.converters.URLSearchParams(e); + } + return k.converters.DOMString(e); + }; + k.converters.BodyInit = function (e) { + if (e instanceof U) { + return k.converters.ReadableStream(e); + } + if (e?.[Symbol.asyncIterator]) { + return e; + } + return k.converters.XMLHttpRequestBodyInit(e); + }; + k.converters.ResponseInit = k.dictionaryConverter([ + {key: 'status', converter: k.converters['unsigned short'], defaultValue: 200}, + {key: 'statusText', converter: k.converters.ByteString, defaultValue: ''}, + {key: 'headers', converter: k.converters.HeadersInit}, + ]); + e.exports = { + makeNetworkError: makeNetworkError, + makeResponse: makeResponse, + makeAppropriateNetworkError: makeAppropriateNetworkError, + filterResponse: filterResponse, + Response: Response, + cloneResponse: cloneResponse, + }; + }, + 9710: (e) => { + 'use strict'; + e.exports = { + kUrl: Symbol('url'), + kHeaders: Symbol('headers'), + kSignal: Symbol('signal'), + kState: Symbol('state'), + kGuard: Symbol('guard'), + kRealm: Symbol('realm'), + }; + }, + 5523: (e, t, r) => { + 'use strict'; + const {redirectStatusSet: A, referrerPolicySet: s, badPortsSet: i} = r(7326); + const {getGlobalOrigin: n} = r(5628); + const {performance: o} = r(2987); + const {isBlobLike: a, toUSVString: c, ReadableStreamFrom: u} = r(3440); + const g = r(2613); + const {isUint8Array: l} = r(8253); + let p = []; + let d; + try { + d = r(6982); + const e = ['sha256', 'sha384', 'sha512']; + p = d.getHashes().filter((t) => e.includes(t)); + } catch {} + function responseURL(e) { + const t = e.urlList; + const r = t.length; + return r === 0 ? null : t[r - 1].toString(); + } + function responseLocationURL(e, t) { + if (!A.has(e.status)) { + return null; + } + let r = e.headersList.get('location'); + if (r !== null && isValidHeaderValue(r)) { + r = new URL(r, responseURL(e)); + } + if (r && !r.hash) { + r.hash = t; + } + return r; + } + function requestCurrentURL(e) { + return e.urlList[e.urlList.length - 1]; + } + function requestBadPort(e) { + const t = requestCurrentURL(e); + if (urlIsHttpHttpsScheme(t) && i.has(t.port)) { + return 'blocked'; + } + return 'allowed'; + } + function isErrorLike(e) { + return ( + e instanceof Error || e?.constructor?.name === 'Error' || e?.constructor?.name === 'DOMException' + ); + } + function isValidReasonPhrase(e) { + for (let t = 0; t < e.length; ++t) { + const r = e.charCodeAt(t); + if (!(r === 9 || (r >= 32 && r <= 126) || (r >= 128 && r <= 255))) { + return false; + } + } + return true; + } + function isTokenCharCode(e) { + switch (e) { + case 34: + case 40: + case 41: + case 44: + case 47: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 91: + case 92: + case 93: + case 123: + case 125: + return false; + default: + return e >= 33 && e <= 126; + } + } + function isValidHTTPToken(e) { + if (e.length === 0) { + return false; + } + for (let t = 0; t < e.length; ++t) { + if (!isTokenCharCode(e.charCodeAt(t))) { + return false; + } + } + return true; + } + function isValidHeaderName(e) { + return isValidHTTPToken(e); + } + function isValidHeaderValue(e) { + if (e.startsWith('\t') || e.startsWith(' ') || e.endsWith('\t') || e.endsWith(' ')) { + return false; + } + if (e.includes('\0') || e.includes('\r') || e.includes('\n')) { + return false; + } + return true; + } + function setRequestReferrerPolicyOnRedirect(e, t) { + const {headersList: r} = t; + const A = (r.get('referrer-policy') ?? '').split(','); + let i = ''; + if (A.length > 0) { + for (let e = A.length; e !== 0; e--) { + const t = A[e - 1].trim(); + if (s.has(t)) { + i = t; + break; + } + } + } + if (i !== '') { + e.referrerPolicy = i; + } + } + function crossOriginResourcePolicyCheck() { + return 'allowed'; + } + function corsCheck() { + return 'success'; + } + function TAOCheck() { + return 'success'; + } + function appendFetchMetadata(e) { + let t = null; + t = e.mode; + e.headersList.set('sec-fetch-mode', t); + } + function appendRequestOriginHeader(e) { + let t = e.origin; + if (e.responseTainting === 'cors' || e.mode === 'websocket') { + if (t) { + e.headersList.append('origin', t); + } + } else if (e.method !== 'GET' && e.method !== 'HEAD') { + switch (e.referrerPolicy) { + case 'no-referrer': + t = null; + break; + case 'no-referrer-when-downgrade': + case 'strict-origin': + case 'strict-origin-when-cross-origin': + if (e.origin && urlHasHttpsScheme(e.origin) && !urlHasHttpsScheme(requestCurrentURL(e))) { + t = null; + } + break; + case 'same-origin': + if (!sameOrigin(e, requestCurrentURL(e))) { + t = null; + } + break; + default: + } + if (t) { + e.headersList.append('origin', t); + } + } + } + function coarsenedSharedCurrentTime(e) { + return o.now(); + } + function createOpaqueTimingInfo(e) { + return { + startTime: e.startTime ?? 0, + redirectStartTime: 0, + redirectEndTime: 0, + postRedirectStartTime: e.startTime ?? 0, + finalServiceWorkerStartTime: 0, + finalNetworkResponseStartTime: 0, + finalNetworkRequestStartTime: 0, + endTime: 0, + encodedBodySize: 0, + decodedBodySize: 0, + finalConnectionTimingInfo: null, + }; + } + function makePolicyContainer() { + return {referrerPolicy: 'strict-origin-when-cross-origin'}; + } + function clonePolicyContainer(e) { + return {referrerPolicy: e.referrerPolicy}; + } + function determineRequestsReferrer(e) { + const t = e.referrerPolicy; + g(t); + let r = null; + if (e.referrer === 'client') { + const e = n(); + if (!e || e.origin === 'null') { + return 'no-referrer'; + } + r = new URL(e); + } else if (e.referrer instanceof URL) { + r = e.referrer; + } + let A = stripURLForReferrer(r); + const s = stripURLForReferrer(r, true); + if (A.toString().length > 4096) { + A = s; + } + const i = sameOrigin(e, A); + const o = isURLPotentiallyTrustworthy(A) && !isURLPotentiallyTrustworthy(e.url); + switch (t) { + case 'origin': + return s != null ? s : stripURLForReferrer(r, true); + case 'unsafe-url': + return A; + case 'same-origin': + return i ? s : 'no-referrer'; + case 'origin-when-cross-origin': + return i ? A : s; + case 'strict-origin-when-cross-origin': { + const t = requestCurrentURL(e); + if (sameOrigin(A, t)) { + return A; + } + if (isURLPotentiallyTrustworthy(A) && !isURLPotentiallyTrustworthy(t)) { + return 'no-referrer'; + } + return s; + } + case 'strict-origin': + case 'no-referrer-when-downgrade': + default: + return o ? 'no-referrer' : s; + } + } + function stripURLForReferrer(e, t) { + g(e instanceof URL); + if (e.protocol === 'file:' || e.protocol === 'about:' || e.protocol === 'blank:') { + return 'no-referrer'; + } + e.username = ''; + e.password = ''; + e.hash = ''; + if (t) { + e.pathname = ''; + e.search = ''; + } + return e; + } + function isURLPotentiallyTrustworthy(e) { + if (!(e instanceof URL)) { + return false; + } + if (e.href === 'about:blank' || e.href === 'about:srcdoc') { + return true; + } + if (e.protocol === 'data:') return true; + if (e.protocol === 'file:') return true; + return isOriginPotentiallyTrustworthy(e.origin); + function isOriginPotentiallyTrustworthy(e) { + if (e == null || e === 'null') return false; + const t = new URL(e); + if (t.protocol === 'https:' || t.protocol === 'wss:') { + return true; + } + if ( + /^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(t.hostname) || + t.hostname === 'localhost' || + t.hostname.includes('localhost.') || + t.hostname.endsWith('.localhost') + ) { + return true; + } + return false; + } + } + function bytesMatch(e, t) { + if (d === undefined) { + return true; + } + const r = parseMetadata(t); + if (r === 'no metadata') { + return true; + } + if (r.length === 0) { + return true; + } + const A = getStrongestMetadata(r); + const s = filterMetadataListByAlgorithm(r, A); + for (const t of s) { + const r = t.algo; + const A = t.hash; + let s = d.createHash(r).update(e).digest('base64'); + if (s[s.length - 1] === '=') { + if (s[s.length - 2] === '=') { + s = s.slice(0, -2); + } else { + s = s.slice(0, -1); + } + } + if (compareBase64Mixed(s, A)) { + return true; + } + } + return false; + } + const h = + /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i; + function parseMetadata(e) { + const t = []; + let r = true; + for (const A of e.split(' ')) { + r = false; + const e = h.exec(A); + if (e === null || e.groups === undefined || e.groups.algo === undefined) { + continue; + } + const s = e.groups.algo.toLowerCase(); + if (p.includes(s)) { + t.push(e.groups); + } + } + if (r === true) { + return 'no metadata'; + } + return t; + } + function getStrongestMetadata(e) { + let t = e[0].algo; + if (t[3] === '5') { + return t; + } + for (let r = 1; r < e.length; ++r) { + const A = e[r]; + if (A.algo[3] === '5') { + t = 'sha512'; + break; + } else if (t[3] === '3') { + continue; + } else if (A.algo[3] === '3') { + t = 'sha384'; + } + } + return t; + } + function filterMetadataListByAlgorithm(e, t) { + if (e.length === 1) { + return e; + } + let r = 0; + for (let A = 0; A < e.length; ++A) { + if (e[A].algo === t) { + e[r++] = e[A]; + } + } + e.length = r; + return e; + } + function compareBase64Mixed(e, t) { + if (e.length !== t.length) { + return false; + } + for (let r = 0; r < e.length; ++r) { + if (e[r] !== t[r]) { + if ((e[r] === '+' && t[r] === '-') || (e[r] === '/' && t[r] === '_')) { + continue; + } + return false; + } + } + return true; + } + function tryUpgradeRequestToAPotentiallyTrustworthyURL(e) {} + function sameOrigin(e, t) { + if (e.origin === t.origin && e.origin === 'null') { + return true; + } + if (e.protocol === t.protocol && e.hostname === t.hostname && e.port === t.port) { + return true; + } + return false; + } + function createDeferredPromise() { + let e; + let t; + const r = new Promise((r, A) => { + e = r; + t = A; + }); + return {promise: r, resolve: e, reject: t}; + } + function isAborted(e) { + return e.controller.state === 'aborted'; + } + function isCancelled(e) { + return e.controller.state === 'aborted' || e.controller.state === 'terminated'; + } + const C = { + delete: 'DELETE', + DELETE: 'DELETE', + get: 'GET', + GET: 'GET', + head: 'HEAD', + HEAD: 'HEAD', + options: 'OPTIONS', + OPTIONS: 'OPTIONS', + post: 'POST', + POST: 'POST', + put: 'PUT', + PUT: 'PUT', + }; + Object.setPrototypeOf(C, null); + function normalizeMethod(e) { + return C[e.toLowerCase()] ?? e; + } + function serializeJavascriptValueToJSONString(e) { + const t = JSON.stringify(e); + if (t === undefined) { + throw new TypeError('Value is not JSON serializable'); + } + g(typeof t === 'string'); + return t; + } + const Q = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); + function makeIterator(e, t, r) { + const A = {index: 0, kind: r, target: e}; + const s = { + next() { + if (Object.getPrototypeOf(this) !== s) { + throw new TypeError( + `'next' called on an object that does not implement interface ${t} Iterator.`, + ); + } + const {index: e, kind: r, target: i} = A; + const n = i(); + const o = n.length; + if (e >= o) { + return {value: undefined, done: true}; + } + const a = n[e]; + A.index = e + 1; + return iteratorResult(a, r); + }, + [Symbol.toStringTag]: `${t} Iterator`, + }; + Object.setPrototypeOf(s, Q); + return Object.setPrototypeOf({}, s); + } + function iteratorResult(e, t) { + let r; + switch (t) { + case 'key': { + r = e[0]; + break; + } + case 'value': { + r = e[1]; + break; + } + case 'key+value': { + r = e; + break; + } + } + return {value: r, done: false}; + } + async function fullyReadBody(e, t, r) { + const A = t; + const s = r; + let i; + try { + i = e.stream.getReader(); + } catch (e) { + s(e); + return; + } + try { + const e = await readAllBytes(i); + A(e); + } catch (e) { + s(e); + } + } + let B = globalThis.ReadableStream; + function isReadableStreamLike(e) { + if (!B) { + B = r(3774).ReadableStream; + } + return e instanceof B || (e[Symbol.toStringTag] === 'ReadableStream' && typeof e.tee === 'function'); + } + const I = 65535; + function isomorphicDecode(e) { + if (e.length < I) { + return String.fromCharCode(...e); + } + return e.reduce((e, t) => e + String.fromCharCode(t), ''); + } + function readableStreamClose(e) { + try { + e.close(); + } catch (e) { + if (!e.message.includes('Controller is already closed')) { + throw e; + } + } + } + function isomorphicEncode(e) { + for (let t = 0; t < e.length; t++) { + g(e.charCodeAt(t) <= 255); + } + return e; + } + async function readAllBytes(e) { + const t = []; + let r = 0; + while (true) { + const {done: A, value: s} = await e.read(); + if (A) { + return Buffer.concat(t, r); + } + if (!l(s)) { + throw new TypeError('Received non-Uint8Array chunk'); + } + t.push(s); + r += s.length; + } + } + function urlIsLocal(e) { + g('protocol' in e); + const t = e.protocol; + return t === 'about:' || t === 'blob:' || t === 'data:'; + } + function urlHasHttpsScheme(e) { + if (typeof e === 'string') { + return e.startsWith('https:'); + } + return e.protocol === 'https:'; + } + function urlIsHttpHttpsScheme(e) { + g('protocol' in e); + const t = e.protocol; + return t === 'http:' || t === 'https:'; + } + const m = Object.hasOwn || ((e, t) => Object.prototype.hasOwnProperty.call(e, t)); + e.exports = { + isAborted: isAborted, + isCancelled: isCancelled, + createDeferredPromise: createDeferredPromise, + ReadableStreamFrom: u, + toUSVString: c, + tryUpgradeRequestToAPotentiallyTrustworthyURL: tryUpgradeRequestToAPotentiallyTrustworthyURL, + coarsenedSharedCurrentTime: coarsenedSharedCurrentTime, + determineRequestsReferrer: determineRequestsReferrer, + makePolicyContainer: makePolicyContainer, + clonePolicyContainer: clonePolicyContainer, + appendFetchMetadata: appendFetchMetadata, + appendRequestOriginHeader: appendRequestOriginHeader, + TAOCheck: TAOCheck, + corsCheck: corsCheck, + crossOriginResourcePolicyCheck: crossOriginResourcePolicyCheck, + createOpaqueTimingInfo: createOpaqueTimingInfo, + setRequestReferrerPolicyOnRedirect: setRequestReferrerPolicyOnRedirect, + isValidHTTPToken: isValidHTTPToken, + requestBadPort: requestBadPort, + requestCurrentURL: requestCurrentURL, + responseURL: responseURL, + responseLocationURL: responseLocationURL, + isBlobLike: a, + isURLPotentiallyTrustworthy: isURLPotentiallyTrustworthy, + isValidReasonPhrase: isValidReasonPhrase, + sameOrigin: sameOrigin, + normalizeMethod: normalizeMethod, + serializeJavascriptValueToJSONString: serializeJavascriptValueToJSONString, + makeIterator: makeIterator, + isValidHeaderName: isValidHeaderName, + isValidHeaderValue: isValidHeaderValue, + hasOwn: m, + isErrorLike: isErrorLike, + fullyReadBody: fullyReadBody, + bytesMatch: bytesMatch, + isReadableStreamLike: isReadableStreamLike, + readableStreamClose: readableStreamClose, + isomorphicEncode: isomorphicEncode, + isomorphicDecode: isomorphicDecode, + urlIsLocal: urlIsLocal, + urlHasHttpsScheme: urlHasHttpsScheme, + urlIsHttpHttpsScheme: urlIsHttpHttpsScheme, + readAllBytes: readAllBytes, + normalizeMethodRecord: C, + parseMetadata: parseMetadata, + }; + }, + 4222: (e, t, r) => { + 'use strict'; + const {types: A} = r(9023); + const {hasOwn: s, toUSVString: i} = r(5523); + const n = {}; + n.converters = {}; + n.util = {}; + n.errors = {}; + n.errors.exception = function (e) { + return new TypeError(`${e.header}: ${e.message}`); + }; + n.errors.conversionFailed = function (e) { + const t = e.types.length === 1 ? '' : ' one of'; + const r = `${e.argument} could not be converted to` + `${t}: ${e.types.join(', ')}.`; + return n.errors.exception({header: e.prefix, message: r}); + }; + n.errors.invalidArgument = function (e) { + return n.errors.exception({header: e.prefix, message: `"${e.value}" is an invalid ${e.type}.`}); + }; + n.brandCheck = function (e, t, r = undefined) { + if (r?.strict !== false && !(e instanceof t)) { + throw new TypeError('Illegal invocation'); + } else { + return e?.[Symbol.toStringTag] === t.prototype[Symbol.toStringTag]; + } + }; + n.argumentLengthCheck = function ({length: e}, t, r) { + if (e < t) { + throw n.errors.exception({ + message: `${t} argument${t !== 1 ? 's' : ''} required, ` + `but${e ? ' only' : ''} ${e} found.`, + ...r, + }); + } + }; + n.illegalConstructor = function () { + throw n.errors.exception({header: 'TypeError', message: 'Illegal constructor'}); + }; + n.util.Type = function (e) { + switch (typeof e) { + case 'undefined': + return 'Undefined'; + case 'boolean': + return 'Boolean'; + case 'string': + return 'String'; + case 'symbol': + return 'Symbol'; + case 'number': + return 'Number'; + case 'bigint': + return 'BigInt'; + case 'function': + case 'object': { + if (e === null) { + return 'Null'; + } + return 'Object'; + } + } + }; + n.util.ConvertToInt = function (e, t, r, A = {}) { + let s; + let i; + if (t === 64) { + s = Math.pow(2, 53) - 1; + if (r === 'unsigned') { + i = 0; + } else { + i = Math.pow(-2, 53) + 1; + } + } else if (r === 'unsigned') { + i = 0; + s = Math.pow(2, t) - 1; + } else { + i = Math.pow(-2, t) - 1; + s = Math.pow(2, t - 1) - 1; + } + let o = Number(e); + if (o === 0) { + o = 0; + } + if (A.enforceRange === true) { + if (Number.isNaN(o) || o === Number.POSITIVE_INFINITY || o === Number.NEGATIVE_INFINITY) { + throw n.errors.exception({ + header: 'Integer conversion', + message: `Could not convert ${e} to an integer.`, + }); + } + o = n.util.IntegerPart(o); + if (o < i || o > s) { + throw n.errors.exception({ + header: 'Integer conversion', + message: `Value must be between ${i}-${s}, got ${o}.`, + }); + } + return o; + } + if (!Number.isNaN(o) && A.clamp === true) { + o = Math.min(Math.max(o, i), s); + if (Math.floor(o) % 2 === 0) { + o = Math.floor(o); + } else { + o = Math.ceil(o); + } + return o; + } + if ( + Number.isNaN(o) || + (o === 0 && Object.is(0, o)) || + o === Number.POSITIVE_INFINITY || + o === Number.NEGATIVE_INFINITY + ) { + return 0; + } + o = n.util.IntegerPart(o); + o = o % Math.pow(2, t); + if (r === 'signed' && o >= Math.pow(2, t) - 1) { + return o - Math.pow(2, t); + } + return o; + }; + n.util.IntegerPart = function (e) { + const t = Math.floor(Math.abs(e)); + if (e < 0) { + return -1 * t; + } + return t; + }; + n.sequenceConverter = function (e) { + return (t) => { + if (n.util.Type(t) !== 'Object') { + throw n.errors.exception({ + header: 'Sequence', + message: `Value of type ${n.util.Type(t)} is not an Object.`, + }); + } + const r = t?.[Symbol.iterator]?.(); + const A = []; + if (r === undefined || typeof r.next !== 'function') { + throw n.errors.exception({header: 'Sequence', message: 'Object is not an iterator.'}); + } + while (true) { + const {done: t, value: s} = r.next(); + if (t) { + break; + } + A.push(e(s)); + } + return A; + }; + }; + n.recordConverter = function (e, t) { + return (r) => { + if (n.util.Type(r) !== 'Object') { + throw n.errors.exception({ + header: 'Record', + message: `Value of type ${n.util.Type(r)} is not an Object.`, + }); + } + const s = {}; + if (!A.isProxy(r)) { + const A = Object.keys(r); + for (const i of A) { + const A = e(i); + const n = t(r[i]); + s[A] = n; + } + return s; + } + const i = Reflect.ownKeys(r); + for (const A of i) { + const i = Reflect.getOwnPropertyDescriptor(r, A); + if (i?.enumerable) { + const i = e(A); + const n = t(r[A]); + s[i] = n; + } + } + return s; + }; + }; + n.interfaceConverter = function (e) { + return (t, r = {}) => { + if (r.strict !== false && !(t instanceof e)) { + throw n.errors.exception({ + header: e.name, + message: `Expected ${t} to be an instance of ${e.name}.`, + }); + } + return t; + }; + }; + n.dictionaryConverter = function (e) { + return (t) => { + const r = n.util.Type(t); + const A = {}; + if (r === 'Null' || r === 'Undefined') { + return A; + } else if (r !== 'Object') { + throw n.errors.exception({ + header: 'Dictionary', + message: `Expected ${t} to be one of: Null, Undefined, Object.`, + }); + } + for (const r of e) { + const {key: e, defaultValue: i, required: o, converter: a} = r; + if (o === true) { + if (!s(t, e)) { + throw n.errors.exception({ + header: 'Dictionary', + message: `Missing required key "${e}".`, + }); + } + } + let c = t[e]; + const u = s(r, 'defaultValue'); + if (u && c !== null) { + c = c ?? i; + } + if (o || u || c !== undefined) { + c = a(c); + if (r.allowedValues && !r.allowedValues.includes(c)) { + throw n.errors.exception({ + header: 'Dictionary', + message: `${c} is not an accepted type. Expected one of ${r.allowedValues.join( + ', ', + )}.`, + }); + } + A[e] = c; + } + } + return A; + }; + }; + n.nullableConverter = function (e) { + return (t) => { + if (t === null) { + return t; + } + return e(t); + }; + }; + n.converters.DOMString = function (e, t = {}) { + if (e === null && t.legacyNullToEmptyString) { + return ''; + } + if (typeof e === 'symbol') { + throw new TypeError('Could not convert argument of type symbol to string.'); + } + return String(e); + }; + n.converters.ByteString = function (e) { + const t = n.converters.DOMString(e); + for (let e = 0; e < t.length; e++) { + if (t.charCodeAt(e) > 255) { + throw new TypeError( + 'Cannot convert argument to a ByteString because the character at ' + + `index ${e} has a value of ${t.charCodeAt(e)} which is greater than 255.`, + ); + } + } + return t; + }; + n.converters.USVString = i; + n.converters.boolean = function (e) { + const t = Boolean(e); + return t; + }; + n.converters.any = function (e) { + return e; + }; + n.converters['long long'] = function (e) { + const t = n.util.ConvertToInt(e, 64, 'signed'); + return t; + }; + n.converters['unsigned long long'] = function (e) { + const t = n.util.ConvertToInt(e, 64, 'unsigned'); + return t; + }; + n.converters['unsigned long'] = function (e) { + const t = n.util.ConvertToInt(e, 32, 'unsigned'); + return t; + }; + n.converters['unsigned short'] = function (e, t) { + const r = n.util.ConvertToInt(e, 16, 'unsigned', t); + return r; + }; + n.converters.ArrayBuffer = function (e, t = {}) { + if (n.util.Type(e) !== 'Object' || !A.isAnyArrayBuffer(e)) { + throw n.errors.conversionFailed({prefix: `${e}`, argument: `${e}`, types: ['ArrayBuffer']}); + } + if (t.allowShared === false && A.isSharedArrayBuffer(e)) { + throw n.errors.exception({header: 'ArrayBuffer', message: 'SharedArrayBuffer is not allowed.'}); + } + return e; + }; + n.converters.TypedArray = function (e, t, r = {}) { + if (n.util.Type(e) !== 'Object' || !A.isTypedArray(e) || e.constructor.name !== t.name) { + throw n.errors.conversionFailed({prefix: `${t.name}`, argument: `${e}`, types: [t.name]}); + } + if (r.allowShared === false && A.isSharedArrayBuffer(e.buffer)) { + throw n.errors.exception({header: 'ArrayBuffer', message: 'SharedArrayBuffer is not allowed.'}); + } + return e; + }; + n.converters.DataView = function (e, t = {}) { + if (n.util.Type(e) !== 'Object' || !A.isDataView(e)) { + throw n.errors.exception({header: 'DataView', message: 'Object is not a DataView.'}); + } + if (t.allowShared === false && A.isSharedArrayBuffer(e.buffer)) { + throw n.errors.exception({header: 'ArrayBuffer', message: 'SharedArrayBuffer is not allowed.'}); + } + return e; + }; + n.converters.BufferSource = function (e, t = {}) { + if (A.isAnyArrayBuffer(e)) { + return n.converters.ArrayBuffer(e, t); + } + if (A.isTypedArray(e)) { + return n.converters.TypedArray(e, e.constructor); + } + if (A.isDataView(e)) { + return n.converters.DataView(e, t); + } + throw new TypeError(`Could not convert ${e} to a BufferSource.`); + }; + n.converters['sequence'] = n.sequenceConverter(n.converters.ByteString); + n.converters['sequence>'] = n.sequenceConverter(n.converters['sequence']); + n.converters['record'] = n.recordConverter( + n.converters.ByteString, + n.converters.ByteString, + ); + e.exports = {webidl: n}; + }, + 396: (e) => { + 'use strict'; + function getEncoding(e) { + if (!e) { + return 'failure'; + } + switch (e.trim().toLowerCase()) { + case 'unicode-1-1-utf-8': + case 'unicode11utf8': + case 'unicode20utf8': + case 'utf-8': + case 'utf8': + case 'x-unicode20utf8': + return 'UTF-8'; + case '866': + case 'cp866': + case 'csibm866': + case 'ibm866': + return 'IBM866'; + case 'csisolatin2': + case 'iso-8859-2': + case 'iso-ir-101': + case 'iso8859-2': + case 'iso88592': + case 'iso_8859-2': + case 'iso_8859-2:1987': + case 'l2': + case 'latin2': + return 'ISO-8859-2'; + case 'csisolatin3': + case 'iso-8859-3': + case 'iso-ir-109': + case 'iso8859-3': + case 'iso88593': + case 'iso_8859-3': + case 'iso_8859-3:1988': + case 'l3': + case 'latin3': + return 'ISO-8859-3'; + case 'csisolatin4': + case 'iso-8859-4': + case 'iso-ir-110': + case 'iso8859-4': + case 'iso88594': + case 'iso_8859-4': + case 'iso_8859-4:1988': + case 'l4': + case 'latin4': + return 'ISO-8859-4'; + case 'csisolatincyrillic': + case 'cyrillic': + case 'iso-8859-5': + case 'iso-ir-144': + case 'iso8859-5': + case 'iso88595': + case 'iso_8859-5': + case 'iso_8859-5:1988': + return 'ISO-8859-5'; + case 'arabic': + case 'asmo-708': + case 'csiso88596e': + case 'csiso88596i': + case 'csisolatinarabic': + case 'ecma-114': + case 'iso-8859-6': + case 'iso-8859-6-e': + case 'iso-8859-6-i': + case 'iso-ir-127': + case 'iso8859-6': + case 'iso88596': + case 'iso_8859-6': + case 'iso_8859-6:1987': + return 'ISO-8859-6'; + case 'csisolatingreek': + case 'ecma-118': + case 'elot_928': + case 'greek': + case 'greek8': + case 'iso-8859-7': + case 'iso-ir-126': + case 'iso8859-7': + case 'iso88597': + case 'iso_8859-7': + case 'iso_8859-7:1987': + case 'sun_eu_greek': + return 'ISO-8859-7'; + case 'csiso88598e': + case 'csisolatinhebrew': + case 'hebrew': + case 'iso-8859-8': + case 'iso-8859-8-e': + case 'iso-ir-138': + case 'iso8859-8': + case 'iso88598': + case 'iso_8859-8': + case 'iso_8859-8:1988': + case 'visual': + return 'ISO-8859-8'; + case 'csiso88598i': + case 'iso-8859-8-i': + case 'logical': + return 'ISO-8859-8-I'; + case 'csisolatin6': + case 'iso-8859-10': + case 'iso-ir-157': + case 'iso8859-10': + case 'iso885910': + case 'l6': + case 'latin6': + return 'ISO-8859-10'; + case 'iso-8859-13': + case 'iso8859-13': + case 'iso885913': + return 'ISO-8859-13'; + case 'iso-8859-14': + case 'iso8859-14': + case 'iso885914': + return 'ISO-8859-14'; + case 'csisolatin9': + case 'iso-8859-15': + case 'iso8859-15': + case 'iso885915': + case 'iso_8859-15': + case 'l9': + return 'ISO-8859-15'; + case 'iso-8859-16': + return 'ISO-8859-16'; + case 'cskoi8r': + case 'koi': + case 'koi8': + case 'koi8-r': + case 'koi8_r': + return 'KOI8-R'; + case 'koi8-ru': + case 'koi8-u': + return 'KOI8-U'; + case 'csmacintosh': + case 'mac': + case 'macintosh': + case 'x-mac-roman': + return 'macintosh'; + case 'iso-8859-11': + case 'iso8859-11': + case 'iso885911': + case 'tis-620': + case 'windows-874': + return 'windows-874'; + case 'cp1250': + case 'windows-1250': + case 'x-cp1250': + return 'windows-1250'; + case 'cp1251': + case 'windows-1251': + case 'x-cp1251': + return 'windows-1251'; + case 'ansi_x3.4-1968': + case 'ascii': + case 'cp1252': + case 'cp819': + case 'csisolatin1': + case 'ibm819': + case 'iso-8859-1': + case 'iso-ir-100': + case 'iso8859-1': + case 'iso88591': + case 'iso_8859-1': + case 'iso_8859-1:1987': + case 'l1': + case 'latin1': + case 'us-ascii': + case 'windows-1252': + case 'x-cp1252': + return 'windows-1252'; + case 'cp1253': + case 'windows-1253': + case 'x-cp1253': + return 'windows-1253'; + case 'cp1254': + case 'csisolatin5': + case 'iso-8859-9': + case 'iso-ir-148': + case 'iso8859-9': + case 'iso88599': + case 'iso_8859-9': + case 'iso_8859-9:1989': + case 'l5': + case 'latin5': + case 'windows-1254': + case 'x-cp1254': + return 'windows-1254'; + case 'cp1255': + case 'windows-1255': + case 'x-cp1255': + return 'windows-1255'; + case 'cp1256': + case 'windows-1256': + case 'x-cp1256': + return 'windows-1256'; + case 'cp1257': + case 'windows-1257': + case 'x-cp1257': + return 'windows-1257'; + case 'cp1258': + case 'windows-1258': + case 'x-cp1258': + return 'windows-1258'; + case 'x-mac-cyrillic': + case 'x-mac-ukrainian': + return 'x-mac-cyrillic'; + case 'chinese': + case 'csgb2312': + case 'csiso58gb231280': + case 'gb2312': + case 'gb_2312': + case 'gb_2312-80': + case 'gbk': + case 'iso-ir-58': + case 'x-gbk': + return 'GBK'; + case 'gb18030': + return 'gb18030'; + case 'big5': + case 'big5-hkscs': + case 'cn-big5': + case 'csbig5': + case 'x-x-big5': + return 'Big5'; + case 'cseucpkdfmtjapanese': + case 'euc-jp': + case 'x-euc-jp': + return 'EUC-JP'; + case 'csiso2022jp': + case 'iso-2022-jp': + return 'ISO-2022-JP'; + case 'csshiftjis': + case 'ms932': + case 'ms_kanji': + case 'shift-jis': + case 'shift_jis': + case 'sjis': + case 'windows-31j': + case 'x-sjis': + return 'Shift_JIS'; + case 'cseuckr': + case 'csksc56011987': + case 'euc-kr': + case 'iso-ir-149': + case 'korean': + case 'ks_c_5601-1987': + case 'ks_c_5601-1989': + case 'ksc5601': + case 'ksc_5601': + case 'windows-949': + return 'EUC-KR'; + case 'csiso2022kr': + case 'hz-gb-2312': + case 'iso-2022-cn': + case 'iso-2022-cn-ext': + case 'iso-2022-kr': + case 'replacement': + return 'replacement'; + case 'unicodefffe': + case 'utf-16be': + return 'UTF-16BE'; + case 'csunicode': + case 'iso-10646-ucs-2': + case 'ucs-2': + case 'unicode': + case 'unicodefeff': + case 'utf-16': + case 'utf-16le': + return 'UTF-16LE'; + case 'x-user-defined': + return 'x-user-defined'; + default: + return 'failure'; + } + } + e.exports = {getEncoding: getEncoding}; + }, + 2160: (e, t, r) => { + 'use strict'; + const {staticPropertyDescriptors: A, readOperation: s, fireAProgressEvent: i} = r(165); + const {kState: n, kError: o, kResult: a, kEvents: c, kAborted: u} = r(6812); + const {webidl: g} = r(4222); + const {kEnumerableProperty: l} = r(3440); + class FileReader extends EventTarget { + constructor() { + super(); + this[n] = 'empty'; + this[a] = null; + this[o] = null; + this[c] = {loadend: null, error: null, abort: null, load: null, progress: null, loadstart: null}; + } + readAsArrayBuffer(e) { + g.brandCheck(this, FileReader); + g.argumentLengthCheck(arguments, 1, {header: 'FileReader.readAsArrayBuffer'}); + e = g.converters.Blob(e, {strict: false}); + s(this, e, 'ArrayBuffer'); + } + readAsBinaryString(e) { + g.brandCheck(this, FileReader); + g.argumentLengthCheck(arguments, 1, {header: 'FileReader.readAsBinaryString'}); + e = g.converters.Blob(e, {strict: false}); + s(this, e, 'BinaryString'); + } + readAsText(e, t = undefined) { + g.brandCheck(this, FileReader); + g.argumentLengthCheck(arguments, 1, {header: 'FileReader.readAsText'}); + e = g.converters.Blob(e, {strict: false}); + if (t !== undefined) { + t = g.converters.DOMString(t); + } + s(this, e, 'Text', t); + } + readAsDataURL(e) { + g.brandCheck(this, FileReader); + g.argumentLengthCheck(arguments, 1, {header: 'FileReader.readAsDataURL'}); + e = g.converters.Blob(e, {strict: false}); + s(this, e, 'DataURL'); + } + abort() { + if (this[n] === 'empty' || this[n] === 'done') { + this[a] = null; + return; + } + if (this[n] === 'loading') { + this[n] = 'done'; + this[a] = null; + } + this[u] = true; + i('abort', this); + if (this[n] !== 'loading') { + i('loadend', this); + } + } + get readyState() { + g.brandCheck(this, FileReader); + switch (this[n]) { + case 'empty': + return this.EMPTY; + case 'loading': + return this.LOADING; + case 'done': + return this.DONE; + } + } + get result() { + g.brandCheck(this, FileReader); + return this[a]; + } + get error() { + g.brandCheck(this, FileReader); + return this[o]; + } + get onloadend() { + g.brandCheck(this, FileReader); + return this[c].loadend; + } + set onloadend(e) { + g.brandCheck(this, FileReader); + if (this[c].loadend) { + this.removeEventListener('loadend', this[c].loadend); + } + if (typeof e === 'function') { + this[c].loadend = e; + this.addEventListener('loadend', e); + } else { + this[c].loadend = null; + } + } + get onerror() { + g.brandCheck(this, FileReader); + return this[c].error; + } + set onerror(e) { + g.brandCheck(this, FileReader); + if (this[c].error) { + this.removeEventListener('error', this[c].error); + } + if (typeof e === 'function') { + this[c].error = e; + this.addEventListener('error', e); + } else { + this[c].error = null; + } + } + get onloadstart() { + g.brandCheck(this, FileReader); + return this[c].loadstart; + } + set onloadstart(e) { + g.brandCheck(this, FileReader); + if (this[c].loadstart) { + this.removeEventListener('loadstart', this[c].loadstart); + } + if (typeof e === 'function') { + this[c].loadstart = e; + this.addEventListener('loadstart', e); + } else { + this[c].loadstart = null; + } + } + get onprogress() { + g.brandCheck(this, FileReader); + return this[c].progress; + } + set onprogress(e) { + g.brandCheck(this, FileReader); + if (this[c].progress) { + this.removeEventListener('progress', this[c].progress); + } + if (typeof e === 'function') { + this[c].progress = e; + this.addEventListener('progress', e); + } else { + this[c].progress = null; + } + } + get onload() { + g.brandCheck(this, FileReader); + return this[c].load; + } + set onload(e) { + g.brandCheck(this, FileReader); + if (this[c].load) { + this.removeEventListener('load', this[c].load); + } + if (typeof e === 'function') { + this[c].load = e; + this.addEventListener('load', e); + } else { + this[c].load = null; + } + } + get onabort() { + g.brandCheck(this, FileReader); + return this[c].abort; + } + set onabort(e) { + g.brandCheck(this, FileReader); + if (this[c].abort) { + this.removeEventListener('abort', this[c].abort); + } + if (typeof e === 'function') { + this[c].abort = e; + this.addEventListener('abort', e); + } else { + this[c].abort = null; + } + } + } + FileReader.EMPTY = FileReader.prototype.EMPTY = 0; + FileReader.LOADING = FileReader.prototype.LOADING = 1; + FileReader.DONE = FileReader.prototype.DONE = 2; + Object.defineProperties(FileReader.prototype, { + EMPTY: A, + LOADING: A, + DONE: A, + readAsArrayBuffer: l, + readAsBinaryString: l, + readAsText: l, + readAsDataURL: l, + abort: l, + readyState: l, + result: l, + error: l, + onloadstart: l, + onprogress: l, + onload: l, + onabort: l, + onerror: l, + onloadend: l, + [Symbol.toStringTag]: {value: 'FileReader', writable: false, enumerable: false, configurable: true}, + }); + Object.defineProperties(FileReader, {EMPTY: A, LOADING: A, DONE: A}); + e.exports = {FileReader: FileReader}; + }, + 5976: (e, t, r) => { + 'use strict'; + const {webidl: A} = r(4222); + const s = Symbol('ProgressEvent state'); + class ProgressEvent extends Event { + constructor(e, t = {}) { + e = A.converters.DOMString(e); + t = A.converters.ProgressEventInit(t ?? {}); + super(e, t); + this[s] = {lengthComputable: t.lengthComputable, loaded: t.loaded, total: t.total}; + } + get lengthComputable() { + A.brandCheck(this, ProgressEvent); + return this[s].lengthComputable; + } + get loaded() { + A.brandCheck(this, ProgressEvent); + return this[s].loaded; + } + get total() { + A.brandCheck(this, ProgressEvent); + return this[s].total; + } + } + A.converters.ProgressEventInit = A.dictionaryConverter([ + {key: 'lengthComputable', converter: A.converters.boolean, defaultValue: false}, + {key: 'loaded', converter: A.converters['unsigned long long'], defaultValue: 0}, + {key: 'total', converter: A.converters['unsigned long long'], defaultValue: 0}, + {key: 'bubbles', converter: A.converters.boolean, defaultValue: false}, + {key: 'cancelable', converter: A.converters.boolean, defaultValue: false}, + {key: 'composed', converter: A.converters.boolean, defaultValue: false}, + ]); + e.exports = {ProgressEvent: ProgressEvent}; + }, + 6812: (e) => { + 'use strict'; + e.exports = { + kState: Symbol('FileReader state'), + kResult: Symbol('FileReader result'), + kError: Symbol('FileReader error'), + kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'), + kEvents: Symbol('FileReader events'), + kAborted: Symbol('FileReader aborted'), + }; + }, + 165: (e, t, r) => { + 'use strict'; + const {kState: A, kError: s, kResult: i, kAborted: n, kLastProgressEventFired: o} = r(6812); + const {ProgressEvent: a} = r(5976); + const {getEncoding: c} = r(396); + const {DOMException: u} = r(7326); + const {serializeAMimeType: g, parseMIMEType: l} = r(4322); + const {types: p} = r(9023); + const {StringDecoder: d} = r(3193); + const {btoa: h} = r(181); + const C = {enumerable: true, writable: false, configurable: false}; + function readOperation(e, t, r, a) { + if (e[A] === 'loading') { + throw new u('Invalid state', 'InvalidStateError'); + } + e[A] = 'loading'; + e[i] = null; + e[s] = null; + const c = t.stream(); + const g = c.getReader(); + const l = []; + let d = g.read(); + let h = true; + (async () => { + while (!e[n]) { + try { + const {done: c, value: u} = await d; + if (h && !e[n]) { + queueMicrotask(() => { + fireAProgressEvent('loadstart', e); + }); + } + h = false; + if (!c && p.isUint8Array(u)) { + l.push(u); + if ((e[o] === undefined || Date.now() - e[o] >= 50) && !e[n]) { + e[o] = Date.now(); + queueMicrotask(() => { + fireAProgressEvent('progress', e); + }); + } + d = g.read(); + } else if (c) { + queueMicrotask(() => { + e[A] = 'done'; + try { + const A = packageData(l, r, t.type, a); + if (e[n]) { + return; + } + e[i] = A; + fireAProgressEvent('load', e); + } catch (t) { + e[s] = t; + fireAProgressEvent('error', e); + } + if (e[A] !== 'loading') { + fireAProgressEvent('loadend', e); + } + }); + break; + } + } catch (t) { + if (e[n]) { + return; + } + queueMicrotask(() => { + e[A] = 'done'; + e[s] = t; + fireAProgressEvent('error', e); + if (e[A] !== 'loading') { + fireAProgressEvent('loadend', e); + } + }); + break; + } + } + })(); + } + function fireAProgressEvent(e, t) { + const r = new a(e, {bubbles: false, cancelable: false}); + t.dispatchEvent(r); + } + function packageData(e, t, r, A) { + switch (t) { + case 'DataURL': { + let t = 'data:'; + const A = l(r || 'application/octet-stream'); + if (A !== 'failure') { + t += g(A); + } + t += ';base64,'; + const s = new d('latin1'); + for (const r of e) { + t += h(s.write(r)); + } + t += h(s.end()); + return t; + } + case 'Text': { + let t = 'failure'; + if (A) { + t = c(A); + } + if (t === 'failure' && r) { + const e = l(r); + if (e !== 'failure') { + t = c(e.parameters.get('charset')); + } + } + if (t === 'failure') { + t = 'UTF-8'; + } + return decode(e, t); + } + case 'ArrayBuffer': { + const t = combineByteSequences(e); + return t.buffer; + } + case 'BinaryString': { + let t = ''; + const r = new d('latin1'); + for (const A of e) { + t += r.write(A); + } + t += r.end(); + return t; + } + } + } + function decode(e, t) { + const r = combineByteSequences(e); + const A = BOMSniffing(r); + let s = 0; + if (A !== null) { + t = A; + s = A === 'UTF-8' ? 3 : 2; + } + const i = r.slice(s); + return new TextDecoder(t).decode(i); + } + function BOMSniffing(e) { + const [t, r, A] = e; + if (t === 239 && r === 187 && A === 191) { + return 'UTF-8'; + } else if (t === 254 && r === 255) { + return 'UTF-16BE'; + } else if (t === 255 && r === 254) { + return 'UTF-16LE'; + } + return null; + } + function combineByteSequences(e) { + const t = e.reduce((e, t) => e + t.byteLength, 0); + let r = 0; + return e.reduce((e, t) => { + e.set(t, r); + r += t.byteLength; + return e; + }, new Uint8Array(t)); + } + e.exports = { + staticPropertyDescriptors: C, + readOperation: readOperation, + fireAProgressEvent: fireAProgressEvent, + }; + }, + 2581: (e, t, r) => { + 'use strict'; + const A = Symbol.for('undici.globalDispatcher.1'); + const {InvalidArgumentError: s} = r(8707); + const i = r(9965); + if (getGlobalDispatcher() === undefined) { + setGlobalDispatcher(new i()); + } + function setGlobalDispatcher(e) { + if (!e || typeof e.dispatch !== 'function') { + throw new s('Argument agent must implement Agent'); + } + Object.defineProperty(globalThis, A, { + value: e, + writable: true, + enumerable: false, + configurable: false, + }); + } + function getGlobalDispatcher() { + return globalThis[A]; + } + e.exports = {setGlobalDispatcher: setGlobalDispatcher, getGlobalDispatcher: getGlobalDispatcher}; + }, + 8840: (e) => { + 'use strict'; + e.exports = class DecoratorHandler { + constructor(e) { + this.handler = e; + } + onConnect(...e) { + return this.handler.onConnect(...e); + } + onError(...e) { + return this.handler.onError(...e); + } + onUpgrade(...e) { + return this.handler.onUpgrade(...e); + } + onHeaders(...e) { + return this.handler.onHeaders(...e); + } + onData(...e) { + return this.handler.onData(...e); + } + onComplete(...e) { + return this.handler.onComplete(...e); + } + onBodySent(...e) { + return this.handler.onBodySent(...e); + } + }; + }, + 8299: (e, t, r) => { + 'use strict'; + const A = r(3440); + const {kBodyUsed: s} = r(6443); + const i = r(2613); + const {InvalidArgumentError: n} = r(8707); + const o = r(4434); + const a = [300, 301, 302, 303, 307, 308]; + const c = Symbol('body'); + class BodyAsyncIterable { + constructor(e) { + this[c] = e; + this[s] = false; + } + async *[Symbol.asyncIterator]() { + i(!this[s], 'disturbed'); + this[s] = true; + yield* this[c]; + } + } + class RedirectHandler { + constructor(e, t, r, a) { + if (t != null && (!Number.isInteger(t) || t < 0)) { + throw new n('maxRedirections must be a positive number'); + } + A.validateHandler(a, r.method, r.upgrade); + this.dispatch = e; + this.location = null; + this.abort = null; + this.opts = {...r, maxRedirections: 0}; + this.maxRedirections = t; + this.handler = a; + this.history = []; + if (A.isStream(this.opts.body)) { + if (A.bodyLength(this.opts.body) === 0) { + this.opts.body.on('data', function () { + i(false); + }); + } + if (typeof this.opts.body.readableDidRead !== 'boolean') { + this.opts.body[s] = false; + o.prototype.on.call(this.opts.body, 'data', function () { + this[s] = true; + }); + } + } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') { + this.opts.body = new BodyAsyncIterable(this.opts.body); + } else if ( + this.opts.body && + typeof this.opts.body !== 'string' && + !ArrayBuffer.isView(this.opts.body) && + A.isIterable(this.opts.body) + ) { + this.opts.body = new BodyAsyncIterable(this.opts.body); + } + } + onConnect(e) { + this.abort = e; + this.handler.onConnect(e, {history: this.history}); + } + onUpgrade(e, t, r) { + this.handler.onUpgrade(e, t, r); + } + onError(e) { + this.handler.onError(e); + } + onHeaders(e, t, r, s) { + this.location = + this.history.length >= this.maxRedirections || A.isDisturbed(this.opts.body) + ? null + : parseLocation(e, t); + if (this.opts.origin) { + this.history.push(new URL(this.opts.path, this.opts.origin)); + } + if (!this.location) { + return this.handler.onHeaders(e, t, r, s); + } + const { + origin: i, + pathname: n, + search: o, + } = A.parseURL( + new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)), + ); + const a = o ? `${n}${o}` : n; + this.opts.headers = cleanRequestHeaders(this.opts.headers, e === 303, this.opts.origin !== i); + this.opts.path = a; + this.opts.origin = i; + this.opts.maxRedirections = 0; + this.opts.query = null; + if (e === 303 && this.opts.method !== 'HEAD') { + this.opts.method = 'GET'; + this.opts.body = null; + } + } + onData(e) { + if (this.location) { + } else { + return this.handler.onData(e); + } + } + onComplete(e) { + if (this.location) { + this.location = null; + this.abort = null; + this.dispatch(this.opts, this); + } else { + this.handler.onComplete(e); + } + } + onBodySent(e) { + if (this.handler.onBodySent) { + this.handler.onBodySent(e); + } + } + } + function parseLocation(e, t) { + if (a.indexOf(e) === -1) { + return null; + } + for (let e = 0; e < t.length; e += 2) { + if (t[e].toString().toLowerCase() === 'location') { + return t[e + 1]; + } + } + } + function shouldRemoveHeader(e, t, r) { + if (e.length === 4) { + return A.headerNameToString(e) === 'host'; + } + if (t && A.headerNameToString(e).startsWith('content-')) { + return true; + } + if (r && (e.length === 13 || e.length === 6 || e.length === 19)) { + const t = A.headerNameToString(e); + return t === 'authorization' || t === 'cookie' || t === 'proxy-authorization'; + } + return false; + } + function cleanRequestHeaders(e, t, r) { + const A = []; + if (Array.isArray(e)) { + for (let s = 0; s < e.length; s += 2) { + if (!shouldRemoveHeader(e[s], t, r)) { + A.push(e[s], e[s + 1]); + } + } + } else if (e && typeof e === 'object') { + for (const s of Object.keys(e)) { + if (!shouldRemoveHeader(s, t, r)) { + A.push(s, e[s]); + } + } + } else { + i(e == null, 'headers must be an object or an array'); + } + return A; + } + e.exports = RedirectHandler; + }, + 3573: (e, t, r) => { + const A = r(2613); + const {kRetryHandlerDefaultRetry: s} = r(6443); + const {RequestRetryError: i} = r(8707); + const {isDisturbed: n, parseHeaders: o, parseRangeHeader: a} = r(3440); + function calculateRetryAfterHeader(e) { + const t = Date.now(); + const r = new Date(e).getTime() - t; + return r; + } + class RetryHandler { + constructor(e, t) { + const {retryOptions: r, ...A} = e; + const { + retry: i, + maxRetries: n, + maxTimeout: o, + minTimeout: a, + timeoutFactor: c, + methods: u, + errorCodes: g, + retryAfter: l, + statusCodes: p, + } = r ?? {}; + this.dispatch = t.dispatch; + this.handler = t.handler; + this.opts = A; + this.abort = null; + this.aborted = false; + this.retryOpts = { + retry: i ?? RetryHandler[s], + retryAfter: l ?? true, + maxTimeout: o ?? 30 * 1e3, + timeout: a ?? 500, + timeoutFactor: c ?? 2, + maxRetries: n ?? 5, + methods: u ?? ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'], + statusCodes: p ?? [500, 502, 503, 504, 429], + errorCodes: g ?? [ + 'ECONNRESET', + 'ECONNREFUSED', + 'ENOTFOUND', + 'ENETDOWN', + 'ENETUNREACH', + 'EHOSTDOWN', + 'EHOSTUNREACH', + 'EPIPE', + ], + }; + this.retryCount = 0; + this.start = 0; + this.end = null; + this.etag = null; + this.resume = null; + this.handler.onConnect((e) => { + this.aborted = true; + if (this.abort) { + this.abort(e); + } else { + this.reason = e; + } + }); + } + onRequestSent() { + if (this.handler.onRequestSent) { + this.handler.onRequestSent(); + } + } + onUpgrade(e, t, r) { + if (this.handler.onUpgrade) { + this.handler.onUpgrade(e, t, r); + } + } + onConnect(e) { + if (this.aborted) { + e(this.reason); + } else { + this.abort = e; + } + } + onBodySent(e) { + if (this.handler.onBodySent) return this.handler.onBodySent(e); + } + static [s](e, {state: t, opts: r}, A) { + const {statusCode: s, code: i, headers: n} = e; + const {method: o, retryOptions: a} = r; + const { + maxRetries: c, + timeout: u, + maxTimeout: g, + timeoutFactor: l, + statusCodes: p, + errorCodes: d, + methods: h, + } = a; + let {counter: C, currentTimeout: Q} = t; + Q = Q != null && Q > 0 ? Q : u; + if (i && i !== 'UND_ERR_REQ_RETRY' && i !== 'UND_ERR_SOCKET' && !d.includes(i)) { + A(e); + return; + } + if (Array.isArray(h) && !h.includes(o)) { + A(e); + return; + } + if (s != null && Array.isArray(p) && !p.includes(s)) { + A(e); + return; + } + if (C > c) { + A(e); + return; + } + let B = n != null && n['retry-after']; + if (B) { + B = Number(B); + B = isNaN(B) ? calculateRetryAfterHeader(B) : B * 1e3; + } + const I = B > 0 ? Math.min(B, g) : Math.min(Q * l ** C, g); + t.currentTimeout = I; + setTimeout(() => A(null), I); + } + onHeaders(e, t, r, s) { + const n = o(t); + this.retryCount += 1; + if (e >= 300) { + this.abort(new i('Request failed', e, {headers: n, count: this.retryCount})); + return false; + } + if (this.resume != null) { + this.resume = null; + if (e !== 206) { + return true; + } + const t = a(n['content-range']); + if (!t) { + this.abort(new i('Content-Range mismatch', e, {headers: n, count: this.retryCount})); + return false; + } + if (this.etag != null && this.etag !== n.etag) { + this.abort(new i('ETag mismatch', e, {headers: n, count: this.retryCount})); + return false; + } + const {start: s, size: o, end: c = o} = t; + A(this.start === s, 'content-range mismatch'); + A(this.end == null || this.end === c, 'content-range mismatch'); + this.resume = r; + return true; + } + if (this.end == null) { + if (e === 206) { + const i = a(n['content-range']); + if (i == null) { + return this.handler.onHeaders(e, t, r, s); + } + const {start: o, size: c, end: u = c} = i; + A(o != null && Number.isFinite(o) && this.start !== o, 'content-range mismatch'); + A(Number.isFinite(o)); + A(u != null && Number.isFinite(u) && this.end !== u, 'invalid content-length'); + this.start = o; + this.end = u; + } + if (this.end == null) { + const e = n['content-length']; + this.end = e != null ? Number(e) : null; + } + A(Number.isFinite(this.start)); + A(this.end == null || Number.isFinite(this.end), 'invalid content-length'); + this.resume = r; + this.etag = n.etag != null ? n.etag : null; + return this.handler.onHeaders(e, t, r, s); + } + const c = new i('Request failed', e, {headers: n, count: this.retryCount}); + this.abort(c); + return false; + } + onData(e) { + this.start += e.length; + return this.handler.onData(e); + } + onComplete(e) { + this.retryCount = 0; + return this.handler.onComplete(e); + } + onError(e) { + if (this.aborted || n(this.opts.body)) { + return this.handler.onError(e); + } + this.retryOpts.retry( + e, + { + state: {counter: this.retryCount++, currentTimeout: this.retryAfter}, + opts: {retryOptions: this.retryOpts, ...this.opts}, + }, + onRetry.bind(this), + ); + function onRetry(e) { + if (e != null || this.aborted || n(this.opts.body)) { + return this.handler.onError(e); + } + if (this.start !== 0) { + this.opts = { + ...this.opts, + headers: {...this.opts.headers, range: `bytes=${this.start}-${this.end ?? ''}`}, + }; + } + try { + this.dispatch(this.opts, this); + } catch (e) { + this.handler.onError(e); + } + } + } + } + e.exports = RetryHandler; + }, + 4415: (e, t, r) => { + 'use strict'; + const A = r(8299); + function createRedirectInterceptor({maxRedirections: e}) { + return (t) => + function Intercept(r, s) { + const {maxRedirections: i = e} = r; + if (!i) { + return t(r, s); + } + const n = new A(t, i, r, s); + r = {...r, maxRedirections: 0}; + return t(r, n); + }; + } + e.exports = createRedirectInterceptor; + }, + 2824: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + t.SPECIAL_HEADERS = + t.HEADER_STATE = + t.MINOR = + t.MAJOR = + t.CONNECTION_TOKEN_CHARS = + t.HEADER_CHARS = + t.TOKEN = + t.STRICT_TOKEN = + t.HEX = + t.URL_CHAR = + t.STRICT_URL_CHAR = + t.USERINFO_CHARS = + t.MARK = + t.ALPHANUM = + t.NUM = + t.HEX_MAP = + t.NUM_MAP = + t.ALPHA = + t.FINISH = + t.H_METHOD_MAP = + t.METHOD_MAP = + t.METHODS_RTSP = + t.METHODS_ICE = + t.METHODS_HTTP = + t.METHODS = + t.LENIENT_FLAGS = + t.FLAGS = + t.TYPE = + t.ERROR = + void 0; + const A = r(172); + var s; + (function (e) { + e[(e['OK'] = 0)] = 'OK'; + e[(e['INTERNAL'] = 1)] = 'INTERNAL'; + e[(e['STRICT'] = 2)] = 'STRICT'; + e[(e['LF_EXPECTED'] = 3)] = 'LF_EXPECTED'; + e[(e['UNEXPECTED_CONTENT_LENGTH'] = 4)] = 'UNEXPECTED_CONTENT_LENGTH'; + e[(e['CLOSED_CONNECTION'] = 5)] = 'CLOSED_CONNECTION'; + e[(e['INVALID_METHOD'] = 6)] = 'INVALID_METHOD'; + e[(e['INVALID_URL'] = 7)] = 'INVALID_URL'; + e[(e['INVALID_CONSTANT'] = 8)] = 'INVALID_CONSTANT'; + e[(e['INVALID_VERSION'] = 9)] = 'INVALID_VERSION'; + e[(e['INVALID_HEADER_TOKEN'] = 10)] = 'INVALID_HEADER_TOKEN'; + e[(e['INVALID_CONTENT_LENGTH'] = 11)] = 'INVALID_CONTENT_LENGTH'; + e[(e['INVALID_CHUNK_SIZE'] = 12)] = 'INVALID_CHUNK_SIZE'; + e[(e['INVALID_STATUS'] = 13)] = 'INVALID_STATUS'; + e[(e['INVALID_EOF_STATE'] = 14)] = 'INVALID_EOF_STATE'; + e[(e['INVALID_TRANSFER_ENCODING'] = 15)] = 'INVALID_TRANSFER_ENCODING'; + e[(e['CB_MESSAGE_BEGIN'] = 16)] = 'CB_MESSAGE_BEGIN'; + e[(e['CB_HEADERS_COMPLETE'] = 17)] = 'CB_HEADERS_COMPLETE'; + e[(e['CB_MESSAGE_COMPLETE'] = 18)] = 'CB_MESSAGE_COMPLETE'; + e[(e['CB_CHUNK_HEADER'] = 19)] = 'CB_CHUNK_HEADER'; + e[(e['CB_CHUNK_COMPLETE'] = 20)] = 'CB_CHUNK_COMPLETE'; + e[(e['PAUSED'] = 21)] = 'PAUSED'; + e[(e['PAUSED_UPGRADE'] = 22)] = 'PAUSED_UPGRADE'; + e[(e['PAUSED_H2_UPGRADE'] = 23)] = 'PAUSED_H2_UPGRADE'; + e[(e['USER'] = 24)] = 'USER'; + })((s = t.ERROR || (t.ERROR = {}))); + var i; + (function (e) { + e[(e['BOTH'] = 0)] = 'BOTH'; + e[(e['REQUEST'] = 1)] = 'REQUEST'; + e[(e['RESPONSE'] = 2)] = 'RESPONSE'; + })((i = t.TYPE || (t.TYPE = {}))); + var n; + (function (e) { + e[(e['CONNECTION_KEEP_ALIVE'] = 1)] = 'CONNECTION_KEEP_ALIVE'; + e[(e['CONNECTION_CLOSE'] = 2)] = 'CONNECTION_CLOSE'; + e[(e['CONNECTION_UPGRADE'] = 4)] = 'CONNECTION_UPGRADE'; + e[(e['CHUNKED'] = 8)] = 'CHUNKED'; + e[(e['UPGRADE'] = 16)] = 'UPGRADE'; + e[(e['CONTENT_LENGTH'] = 32)] = 'CONTENT_LENGTH'; + e[(e['SKIPBODY'] = 64)] = 'SKIPBODY'; + e[(e['TRAILING'] = 128)] = 'TRAILING'; + e[(e['TRANSFER_ENCODING'] = 512)] = 'TRANSFER_ENCODING'; + })((n = t.FLAGS || (t.FLAGS = {}))); + var o; + (function (e) { + e[(e['HEADERS'] = 1)] = 'HEADERS'; + e[(e['CHUNKED_LENGTH'] = 2)] = 'CHUNKED_LENGTH'; + e[(e['KEEP_ALIVE'] = 4)] = 'KEEP_ALIVE'; + })((o = t.LENIENT_FLAGS || (t.LENIENT_FLAGS = {}))); + var a; + (function (e) { + e[(e['DELETE'] = 0)] = 'DELETE'; + e[(e['GET'] = 1)] = 'GET'; + e[(e['HEAD'] = 2)] = 'HEAD'; + e[(e['POST'] = 3)] = 'POST'; + e[(e['PUT'] = 4)] = 'PUT'; + e[(e['CONNECT'] = 5)] = 'CONNECT'; + e[(e['OPTIONS'] = 6)] = 'OPTIONS'; + e[(e['TRACE'] = 7)] = 'TRACE'; + e[(e['COPY'] = 8)] = 'COPY'; + e[(e['LOCK'] = 9)] = 'LOCK'; + e[(e['MKCOL'] = 10)] = 'MKCOL'; + e[(e['MOVE'] = 11)] = 'MOVE'; + e[(e['PROPFIND'] = 12)] = 'PROPFIND'; + e[(e['PROPPATCH'] = 13)] = 'PROPPATCH'; + e[(e['SEARCH'] = 14)] = 'SEARCH'; + e[(e['UNLOCK'] = 15)] = 'UNLOCK'; + e[(e['BIND'] = 16)] = 'BIND'; + e[(e['REBIND'] = 17)] = 'REBIND'; + e[(e['UNBIND'] = 18)] = 'UNBIND'; + e[(e['ACL'] = 19)] = 'ACL'; + e[(e['REPORT'] = 20)] = 'REPORT'; + e[(e['MKACTIVITY'] = 21)] = 'MKACTIVITY'; + e[(e['CHECKOUT'] = 22)] = 'CHECKOUT'; + e[(e['MERGE'] = 23)] = 'MERGE'; + e[(e['M-SEARCH'] = 24)] = 'M-SEARCH'; + e[(e['NOTIFY'] = 25)] = 'NOTIFY'; + e[(e['SUBSCRIBE'] = 26)] = 'SUBSCRIBE'; + e[(e['UNSUBSCRIBE'] = 27)] = 'UNSUBSCRIBE'; + e[(e['PATCH'] = 28)] = 'PATCH'; + e[(e['PURGE'] = 29)] = 'PURGE'; + e[(e['MKCALENDAR'] = 30)] = 'MKCALENDAR'; + e[(e['LINK'] = 31)] = 'LINK'; + e[(e['UNLINK'] = 32)] = 'UNLINK'; + e[(e['SOURCE'] = 33)] = 'SOURCE'; + e[(e['PRI'] = 34)] = 'PRI'; + e[(e['DESCRIBE'] = 35)] = 'DESCRIBE'; + e[(e['ANNOUNCE'] = 36)] = 'ANNOUNCE'; + e[(e['SETUP'] = 37)] = 'SETUP'; + e[(e['PLAY'] = 38)] = 'PLAY'; + e[(e['PAUSE'] = 39)] = 'PAUSE'; + e[(e['TEARDOWN'] = 40)] = 'TEARDOWN'; + e[(e['GET_PARAMETER'] = 41)] = 'GET_PARAMETER'; + e[(e['SET_PARAMETER'] = 42)] = 'SET_PARAMETER'; + e[(e['REDIRECT'] = 43)] = 'REDIRECT'; + e[(e['RECORD'] = 44)] = 'RECORD'; + e[(e['FLUSH'] = 45)] = 'FLUSH'; + })((a = t.METHODS || (t.METHODS = {}))); + t.METHODS_HTTP = [ + a.DELETE, + a.GET, + a.HEAD, + a.POST, + a.PUT, + a.CONNECT, + a.OPTIONS, + a.TRACE, + a.COPY, + a.LOCK, + a.MKCOL, + a.MOVE, + a.PROPFIND, + a.PROPPATCH, + a.SEARCH, + a.UNLOCK, + a.BIND, + a.REBIND, + a.UNBIND, + a.ACL, + a.REPORT, + a.MKACTIVITY, + a.CHECKOUT, + a.MERGE, + a['M-SEARCH'], + a.NOTIFY, + a.SUBSCRIBE, + a.UNSUBSCRIBE, + a.PATCH, + a.PURGE, + a.MKCALENDAR, + a.LINK, + a.UNLINK, + a.PRI, + a.SOURCE, + ]; + t.METHODS_ICE = [a.SOURCE]; + t.METHODS_RTSP = [ + a.OPTIONS, + a.DESCRIBE, + a.ANNOUNCE, + a.SETUP, + a.PLAY, + a.PAUSE, + a.TEARDOWN, + a.GET_PARAMETER, + a.SET_PARAMETER, + a.REDIRECT, + a.RECORD, + a.FLUSH, + a.GET, + a.POST, + ]; + t.METHOD_MAP = A.enumToMap(a); + t.H_METHOD_MAP = {}; + Object.keys(t.METHOD_MAP).forEach((e) => { + if (/^H/.test(e)) { + t.H_METHOD_MAP[e] = t.METHOD_MAP[e]; + } + }); + var c; + (function (e) { + e[(e['SAFE'] = 0)] = 'SAFE'; + e[(e['SAFE_WITH_CB'] = 1)] = 'SAFE_WITH_CB'; + e[(e['UNSAFE'] = 2)] = 'UNSAFE'; + })((c = t.FINISH || (t.FINISH = {}))); + t.ALPHA = []; + for (let e = 'A'.charCodeAt(0); e <= 'Z'.charCodeAt(0); e++) { + t.ALPHA.push(String.fromCharCode(e)); + t.ALPHA.push(String.fromCharCode(e + 32)); + } + t.NUM_MAP = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}; + t.HEX_MAP = { + 0: 0, + 1: 1, + 2: 2, + 3: 3, + 4: 4, + 5: 5, + 6: 6, + 7: 7, + 8: 8, + 9: 9, + A: 10, + B: 11, + C: 12, + D: 13, + E: 14, + F: 15, + a: 10, + b: 11, + c: 12, + d: 13, + e: 14, + f: 15, + }; + t.NUM = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; + t.ALPHANUM = t.ALPHA.concat(t.NUM); + t.MARK = ['-', '_', '.', '!', '~', '*', "'", '(', ')']; + t.USERINFO_CHARS = t.ALPHANUM.concat(t.MARK).concat(['%', ';', ':', '&', '=', '+', '$', ',']); + t.STRICT_URL_CHAR = [ + '!', + '"', + '$', + '%', + '&', + "'", + '(', + ')', + '*', + '+', + ',', + '-', + '.', + '/', + ':', + ';', + '<', + '=', + '>', + '@', + '[', + '\\', + ']', + '^', + '_', + '`', + '{', + '|', + '}', + '~', + ].concat(t.ALPHANUM); + t.URL_CHAR = t.STRICT_URL_CHAR.concat(['\t', '\f']); + for (let e = 128; e <= 255; e++) { + t.URL_CHAR.push(e); + } + t.HEX = t.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']); + t.STRICT_TOKEN = ['!', '#', '$', '%', '&', "'", '*', '+', '-', '.', '^', '_', '`', '|', '~'].concat( + t.ALPHANUM, + ); + t.TOKEN = t.STRICT_TOKEN.concat([' ']); + t.HEADER_CHARS = ['\t']; + for (let e = 32; e <= 255; e++) { + if (e !== 127) { + t.HEADER_CHARS.push(e); + } + } + t.CONNECTION_TOKEN_CHARS = t.HEADER_CHARS.filter((e) => e !== 44); + t.MAJOR = t.NUM_MAP; + t.MINOR = t.MAJOR; + var u; + (function (e) { + e[(e['GENERAL'] = 0)] = 'GENERAL'; + e[(e['CONNECTION'] = 1)] = 'CONNECTION'; + e[(e['CONTENT_LENGTH'] = 2)] = 'CONTENT_LENGTH'; + e[(e['TRANSFER_ENCODING'] = 3)] = 'TRANSFER_ENCODING'; + e[(e['UPGRADE'] = 4)] = 'UPGRADE'; + e[(e['CONNECTION_KEEP_ALIVE'] = 5)] = 'CONNECTION_KEEP_ALIVE'; + e[(e['CONNECTION_CLOSE'] = 6)] = 'CONNECTION_CLOSE'; + e[(e['CONNECTION_UPGRADE'] = 7)] = 'CONNECTION_UPGRADE'; + e[(e['TRANSFER_ENCODING_CHUNKED'] = 8)] = 'TRANSFER_ENCODING_CHUNKED'; + })((u = t.HEADER_STATE || (t.HEADER_STATE = {}))); + t.SPECIAL_HEADERS = { + connection: u.CONNECTION, + 'content-length': u.CONTENT_LENGTH, + 'proxy-connection': u.CONNECTION, + 'transfer-encoding': u.TRANSFER_ENCODING, + upgrade: u.UPGRADE, + }; + }, + 3870: (e) => { + e.exports = + 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='; + }, + 3434: (e) => { + e.exports = + 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='; + }, + 172: (e, t) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + t.enumToMap = void 0; + function enumToMap(e) { + const t = {}; + Object.keys(e).forEach((r) => { + const A = e[r]; + if (typeof A === 'number') { + t[r] = A; + } + }); + return t; + } + t.enumToMap = enumToMap; + }, + 7501: (e, t, r) => { + 'use strict'; + const {kClients: A} = r(6443); + const s = r(9965); + const { + kAgent: i, + kMockAgentSet: n, + kMockAgentGet: o, + kDispatches: a, + kIsMockActive: c, + kNetConnect: u, + kGetNetConnect: g, + kOptions: l, + kFactory: p, + } = r(1117); + const d = r(7365); + const h = r(4004); + const {matchValue: C, buildMockOptions: Q} = r(3397); + const {InvalidArgumentError: B, UndiciError: I} = r(8707); + const m = r(992); + const y = r(1529); + const b = r(6142); + class FakeWeakRef { + constructor(e) { + this.value = e; + } + deref() { + return this.value; + } + } + class MockAgent extends m { + constructor(e) { + super(e); + this[u] = true; + this[c] = true; + if (e && e.agent && typeof e.agent.dispatch !== 'function') { + throw new B('Argument opts.agent must implement Agent'); + } + const t = e && e.agent ? e.agent : new s(e); + this[i] = t; + this[A] = t[A]; + this[l] = Q(e); + } + get(e) { + let t = this[o](e); + if (!t) { + t = this[p](e); + this[n](e, t); + } + return t; + } + dispatch(e, t) { + this.get(e.origin); + return this[i].dispatch(e, t); + } + async close() { + await this[i].close(); + this[A].clear(); + } + deactivate() { + this[c] = false; + } + activate() { + this[c] = true; + } + enableNetConnect(e) { + if (typeof e === 'string' || typeof e === 'function' || e instanceof RegExp) { + if (Array.isArray(this[u])) { + this[u].push(e); + } else { + this[u] = [e]; + } + } else if (typeof e === 'undefined') { + this[u] = true; + } else { + throw new B('Unsupported matcher. Must be one of String|Function|RegExp.'); + } + } + disableNetConnect() { + this[u] = false; + } + get isMockActive() { + return this[c]; + } + [n](e, t) { + this[A].set(e, new FakeWeakRef(t)); + } + [p](e) { + const t = Object.assign({agent: this}, this[l]); + return this[l] && this[l].connections === 1 ? new d(e, t) : new h(e, t); + } + [o](e) { + const t = this[A].get(e); + if (t) { + return t.deref(); + } + if (typeof e !== 'string') { + const t = this[p]('http://localhost:9999'); + this[n](e, t); + return t; + } + for (const [t, r] of Array.from(this[A])) { + const A = r.deref(); + if (A && typeof t !== 'string' && C(t, e)) { + const t = this[p](e); + this[n](e, t); + t[a] = A[a]; + return t; + } + } + } + [g]() { + return this[u]; + } + pendingInterceptors() { + const e = this[A]; + return Array.from(e.entries()) + .flatMap(([e, t]) => t.deref()[a].map((t) => ({...t, origin: e}))) + .filter(({pending: e}) => e); + } + assertNoPendingInterceptors({pendingInterceptorsFormatter: e = new b()} = {}) { + const t = this.pendingInterceptors(); + if (t.length === 0) { + return; + } + const r = new y('interceptor', 'interceptors').pluralize(t.length); + throw new I(`\n${r.count} ${r.noun} ${r.is} pending:\n\n${e.format(t)}\n`.trim()); + } + } + e.exports = MockAgent; + }, + 7365: (e, t, r) => { + 'use strict'; + const {promisify: A} = r(9023); + const s = r(6197); + const {buildMockDispatch: i} = r(3397); + const { + kDispatches: n, + kMockAgent: o, + kClose: a, + kOriginalClose: c, + kOrigin: u, + kOriginalDispatch: g, + kConnected: l, + } = r(1117); + const {MockInterceptor: p} = r(1511); + const d = r(6443); + const {InvalidArgumentError: h} = r(8707); + class MockClient extends s { + constructor(e, t) { + super(e, t); + if (!t || !t.agent || typeof t.agent.dispatch !== 'function') { + throw new h('Argument opts.agent must implement Agent'); + } + this[o] = t.agent; + this[u] = e; + this[n] = []; + this[l] = 1; + this[g] = this.dispatch; + this[c] = this.close.bind(this); + this.dispatch = i.call(this); + this.close = this[a]; + } + get [d.kConnected]() { + return this[l]; + } + intercept(e) { + return new p(e, this[n]); + } + async [a]() { + await A(this[c])(); + this[l] = 0; + this[o][d.kClients].delete(this[u]); + } + } + e.exports = MockClient; + }, + 2429: (e, t, r) => { + 'use strict'; + const {UndiciError: A} = r(8707); + class MockNotMatchedError extends A { + constructor(e) { + super(e); + Error.captureStackTrace(this, MockNotMatchedError); + this.name = 'MockNotMatchedError'; + this.message = e || 'The request does not match any registered mock dispatches'; + this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'; + } + } + e.exports = {MockNotMatchedError: MockNotMatchedError}; + }, + 1511: (e, t, r) => { + 'use strict'; + const {getResponseData: A, buildKey: s, addMockDispatch: i} = r(3397); + const { + kDispatches: n, + kDispatchKey: o, + kDefaultHeaders: a, + kDefaultTrailers: c, + kContentLength: u, + kMockDispatch: g, + } = r(1117); + const {InvalidArgumentError: l} = r(8707); + const {buildURL: p} = r(3440); + class MockScope { + constructor(e) { + this[g] = e; + } + delay(e) { + if (typeof e !== 'number' || !Number.isInteger(e) || e <= 0) { + throw new l('waitInMs must be a valid integer > 0'); + } + this[g].delay = e; + return this; + } + persist() { + this[g].persist = true; + return this; + } + times(e) { + if (typeof e !== 'number' || !Number.isInteger(e) || e <= 0) { + throw new l('repeatTimes must be a valid integer > 0'); + } + this[g].times = e; + return this; + } + } + class MockInterceptor { + constructor(e, t) { + if (typeof e !== 'object') { + throw new l('opts must be an object'); + } + if (typeof e.path === 'undefined') { + throw new l('opts.path must be defined'); + } + if (typeof e.method === 'undefined') { + e.method = 'GET'; + } + if (typeof e.path === 'string') { + if (e.query) { + e.path = p(e.path, e.query); + } else { + const t = new URL(e.path, 'data://'); + e.path = t.pathname + t.search; + } + } + if (typeof e.method === 'string') { + e.method = e.method.toUpperCase(); + } + this[o] = s(e); + this[n] = t; + this[a] = {}; + this[c] = {}; + this[u] = false; + } + createMockScopeDispatchData(e, t, r = {}) { + const s = A(t); + const i = this[u] ? {'content-length': s.length} : {}; + const n = {...this[a], ...i, ...r.headers}; + const o = {...this[c], ...r.trailers}; + return {statusCode: e, data: t, headers: n, trailers: o}; + } + validateReplyParameters(e, t, r) { + if (typeof e === 'undefined') { + throw new l('statusCode must be defined'); + } + if (typeof t === 'undefined') { + throw new l('data must be defined'); + } + if (typeof r !== 'object') { + throw new l('responseOptions must be an object'); + } + } + reply(e) { + if (typeof e === 'function') { + const wrappedDefaultsCallback = (t) => { + const r = e(t); + if (typeof r !== 'object') { + throw new l('reply options callback must return an object'); + } + const {statusCode: A, data: s = '', responseOptions: i = {}} = r; + this.validateReplyParameters(A, s, i); + return {...this.createMockScopeDispatchData(A, s, i)}; + }; + const t = i(this[n], this[o], wrappedDefaultsCallback); + return new MockScope(t); + } + const [t, r = '', A = {}] = [...arguments]; + this.validateReplyParameters(t, r, A); + const s = this.createMockScopeDispatchData(t, r, A); + const a = i(this[n], this[o], s); + return new MockScope(a); + } + replyWithError(e) { + if (typeof e === 'undefined') { + throw new l('error must be defined'); + } + const t = i(this[n], this[o], {error: e}); + return new MockScope(t); + } + defaultReplyHeaders(e) { + if (typeof e === 'undefined') { + throw new l('headers must be defined'); + } + this[a] = e; + return this; + } + defaultReplyTrailers(e) { + if (typeof e === 'undefined') { + throw new l('trailers must be defined'); + } + this[c] = e; + return this; + } + replyContentLength() { + this[u] = true; + return this; + } + } + e.exports.MockInterceptor = MockInterceptor; + e.exports.MockScope = MockScope; + }, + 4004: (e, t, r) => { + 'use strict'; + const {promisify: A} = r(9023); + const s = r(5076); + const {buildMockDispatch: i} = r(3397); + const { + kDispatches: n, + kMockAgent: o, + kClose: a, + kOriginalClose: c, + kOrigin: u, + kOriginalDispatch: g, + kConnected: l, + } = r(1117); + const {MockInterceptor: p} = r(1511); + const d = r(6443); + const {InvalidArgumentError: h} = r(8707); + class MockPool extends s { + constructor(e, t) { + super(e, t); + if (!t || !t.agent || typeof t.agent.dispatch !== 'function') { + throw new h('Argument opts.agent must implement Agent'); + } + this[o] = t.agent; + this[u] = e; + this[n] = []; + this[l] = 1; + this[g] = this.dispatch; + this[c] = this.close.bind(this); + this.dispatch = i.call(this); + this.close = this[a]; + } + get [d.kConnected]() { + return this[l]; + } + intercept(e) { + return new p(e, this[n]); + } + async [a]() { + await A(this[c])(); + this[l] = 0; + this[o][d.kClients].delete(this[u]); + } + } + e.exports = MockPool; + }, + 1117: (e) => { + 'use strict'; + e.exports = { + kAgent: Symbol('agent'), + kOptions: Symbol('options'), + kFactory: Symbol('factory'), + kDispatches: Symbol('dispatches'), + kDispatchKey: Symbol('dispatch key'), + kDefaultHeaders: Symbol('default headers'), + kDefaultTrailers: Symbol('default trailers'), + kContentLength: Symbol('content length'), + kMockAgent: Symbol('mock agent'), + kMockAgentSet: Symbol('mock agent set'), + kMockAgentGet: Symbol('mock agent get'), + kMockDispatch: Symbol('mock dispatch'), + kClose: Symbol('close'), + kOriginalClose: Symbol('original agent close'), + kOrigin: Symbol('origin'), + kIsMockActive: Symbol('is mock active'), + kNetConnect: Symbol('net connect'), + kGetNetConnect: Symbol('get net connect'), + kConnected: Symbol('connected'), + }; + }, + 3397: (e, t, r) => { + 'use strict'; + const {MockNotMatchedError: A} = r(2429); + const {kDispatches: s, kMockAgent: i, kOriginalDispatch: n, kOrigin: o, kGetNetConnect: a} = r(1117); + const {buildURL: c, nop: u} = r(3440); + const {STATUS_CODES: g} = r(8611); + const { + types: {isPromise: l}, + } = r(9023); + function matchValue(e, t) { + if (typeof e === 'string') { + return e === t; + } + if (e instanceof RegExp) { + return e.test(t); + } + if (typeof e === 'function') { + return e(t) === true; + } + return false; + } + function lowerCaseEntries(e) { + return Object.fromEntries(Object.entries(e).map(([e, t]) => [e.toLocaleLowerCase(), t])); + } + function getHeaderByName(e, t) { + if (Array.isArray(e)) { + for (let r = 0; r < e.length; r += 2) { + if (e[r].toLocaleLowerCase() === t.toLocaleLowerCase()) { + return e[r + 1]; + } + } + return undefined; + } else if (typeof e.get === 'function') { + return e.get(t); + } else { + return lowerCaseEntries(e)[t.toLocaleLowerCase()]; + } + } + function buildHeadersFromArray(e) { + const t = e.slice(); + const r = []; + for (let e = 0; e < t.length; e += 2) { + r.push([t[e], t[e + 1]]); + } + return Object.fromEntries(r); + } + function matchHeaders(e, t) { + if (typeof e.headers === 'function') { + if (Array.isArray(t)) { + t = buildHeadersFromArray(t); + } + return e.headers(t ? lowerCaseEntries(t) : {}); + } + if (typeof e.headers === 'undefined') { + return true; + } + if (typeof t !== 'object' || typeof e.headers !== 'object') { + return false; + } + for (const [r, A] of Object.entries(e.headers)) { + const e = getHeaderByName(t, r); + if (!matchValue(A, e)) { + return false; + } + } + return true; + } + function safeUrl(e) { + if (typeof e !== 'string') { + return e; + } + const t = e.split('?'); + if (t.length !== 2) { + return e; + } + const r = new URLSearchParams(t.pop()); + r.sort(); + return [...t, r.toString()].join('?'); + } + function matchKey(e, {path: t, method: r, body: A, headers: s}) { + const i = matchValue(e.path, t); + const n = matchValue(e.method, r); + const o = typeof e.body !== 'undefined' ? matchValue(e.body, A) : true; + const a = matchHeaders(e, s); + return i && n && o && a; + } + function getResponseData(e) { + if (Buffer.isBuffer(e)) { + return e; + } else if (typeof e === 'object') { + return JSON.stringify(e); + } else { + return e.toString(); + } + } + function getMockDispatch(e, t) { + const r = t.query ? c(t.path, t.query) : t.path; + const s = typeof r === 'string' ? safeUrl(r) : r; + let i = e.filter(({consumed: e}) => !e).filter(({path: e}) => matchValue(safeUrl(e), s)); + if (i.length === 0) { + throw new A(`Mock dispatch not matched for path '${s}'`); + } + i = i.filter(({method: e}) => matchValue(e, t.method)); + if (i.length === 0) { + throw new A(`Mock dispatch not matched for method '${t.method}'`); + } + i = i.filter(({body: e}) => (typeof e !== 'undefined' ? matchValue(e, t.body) : true)); + if (i.length === 0) { + throw new A(`Mock dispatch not matched for body '${t.body}'`); + } + i = i.filter((e) => matchHeaders(e, t.headers)); + if (i.length === 0) { + throw new A( + `Mock dispatch not matched for headers '${ + typeof t.headers === 'object' ? JSON.stringify(t.headers) : t.headers + }'`, + ); + } + return i[0]; + } + function addMockDispatch(e, t, r) { + const A = {timesInvoked: 0, times: 1, persist: false, consumed: false}; + const s = typeof r === 'function' ? {callback: r} : {...r}; + const i = {...A, ...t, pending: true, data: {error: null, ...s}}; + e.push(i); + return i; + } + function deleteMockDispatch(e, t) { + const r = e.findIndex((e) => { + if (!e.consumed) { + return false; + } + return matchKey(e, t); + }); + if (r !== -1) { + e.splice(r, 1); + } + } + function buildKey(e) { + const {path: t, method: r, body: A, headers: s, query: i} = e; + return {path: t, method: r, body: A, headers: s, query: i}; + } + function generateKeyValues(e) { + return Object.entries(e).reduce( + (e, [t, r]) => [ + ...e, + Buffer.from(`${t}`), + Array.isArray(r) ? r.map((e) => Buffer.from(`${e}`)) : Buffer.from(`${r}`), + ], + [], + ); + } + function getStatusText(e) { + return g[e] || 'unknown'; + } + async function getResponse(e) { + const t = []; + for await (const r of e) { + t.push(r); + } + return Buffer.concat(t).toString('utf8'); + } + function mockDispatch(e, t) { + const r = buildKey(e); + const A = getMockDispatch(this[s], r); + A.timesInvoked++; + if (A.data.callback) { + A.data = {...A.data, ...A.data.callback(e)}; + } + const { + data: {statusCode: i, data: n, headers: o, trailers: a, error: c}, + delay: g, + persist: p, + } = A; + const {timesInvoked: d, times: h} = A; + A.consumed = !p && d >= h; + A.pending = d < h; + if (c !== null) { + deleteMockDispatch(this[s], r); + t.onError(c); + return true; + } + if (typeof g === 'number' && g > 0) { + setTimeout(() => { + handleReply(this[s]); + }, g); + } else { + handleReply(this[s]); + } + function handleReply(A, s = n) { + const c = Array.isArray(e.headers) ? buildHeadersFromArray(e.headers) : e.headers; + const g = typeof s === 'function' ? s({...e, headers: c}) : s; + if (l(g)) { + g.then((e) => handleReply(A, e)); + return; + } + const p = getResponseData(g); + const d = generateKeyValues(o); + const h = generateKeyValues(a); + t.abort = u; + t.onHeaders(i, d, resume, getStatusText(i)); + t.onData(Buffer.from(p)); + t.onComplete(h); + deleteMockDispatch(A, r); + } + function resume() {} + return true; + } + function buildMockDispatch() { + const e = this[i]; + const t = this[o]; + const r = this[n]; + return function dispatch(s, i) { + if (e.isMockActive) { + try { + mockDispatch.call(this, s, i); + } catch (n) { + if (n instanceof A) { + const o = e[a](); + if (o === false) { + throw new A( + `${n.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`, + ); + } + if (checkNetConnect(o, t)) { + r.call(this, s, i); + } else { + throw new A( + `${n.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`, + ); + } + } else { + throw n; + } + } + } else { + r.call(this, s, i); + } + }; + } + function checkNetConnect(e, t) { + const r = new URL(t); + if (e === true) { + return true; + } else if (Array.isArray(e) && e.some((e) => matchValue(e, r.host))) { + return true; + } + return false; + } + function buildMockOptions(e) { + if (e) { + const {agent: t, ...r} = e; + return r; + } + } + e.exports = { + getResponseData: getResponseData, + getMockDispatch: getMockDispatch, + addMockDispatch: addMockDispatch, + deleteMockDispatch: deleteMockDispatch, + buildKey: buildKey, + generateKeyValues: generateKeyValues, + matchValue: matchValue, + getResponse: getResponse, + getStatusText: getStatusText, + mockDispatch: mockDispatch, + buildMockDispatch: buildMockDispatch, + checkNetConnect: checkNetConnect, + buildMockOptions: buildMockOptions, + getHeaderByName: getHeaderByName, + }; + }, + 6142: (e, t, r) => { + 'use strict'; + const {Transform: A} = r(2203); + const {Console: s} = r(4236); + e.exports = class PendingInterceptorsFormatter { + constructor({disableColors: e} = {}) { + this.transform = new A({ + transform(e, t, r) { + r(null, e); + }, + }); + this.logger = new s({stdout: this.transform, inspectOptions: {colors: !e && !process.env.CI}}); + } + format(e) { + const t = e.map( + ({ + method: e, + path: t, + data: {statusCode: r}, + persist: A, + times: s, + timesInvoked: i, + origin: n, + }) => ({ + Method: e, + Origin: n, + Path: t, + 'Status code': r, + Persistent: A ? '✅' : '❌', + Invocations: i, + Remaining: A ? Infinity : s - i, + }), + ); + this.logger.table(t); + return this.transform.read().toString(); + } + }; + }, + 1529: (e) => { + 'use strict'; + const t = {pronoun: 'it', is: 'is', was: 'was', this: 'this'}; + const r = {pronoun: 'they', is: 'are', was: 'were', this: 'these'}; + e.exports = class Pluralizer { + constructor(e, t) { + this.singular = e; + this.plural = t; + } + pluralize(e) { + const A = e === 1; + const s = A ? t : r; + const i = A ? this.singular : this.plural; + return {...s, count: e, noun: i}; + } + }; + }, + 4869: (e) => { + 'use strict'; + const t = 2048; + const r = t - 1; + class FixedCircularBuffer { + constructor() { + this.bottom = 0; + this.top = 0; + this.list = new Array(t); + this.next = null; + } + isEmpty() { + return this.top === this.bottom; + } + isFull() { + return ((this.top + 1) & r) === this.bottom; + } + push(e) { + this.list[this.top] = e; + this.top = (this.top + 1) & r; + } + shift() { + const e = this.list[this.bottom]; + if (e === undefined) return null; + this.list[this.bottom] = undefined; + this.bottom = (this.bottom + 1) & r; + return e; + } + } + e.exports = class FixedQueue { + constructor() { + this.head = this.tail = new FixedCircularBuffer(); + } + isEmpty() { + return this.head.isEmpty(); + } + push(e) { + if (this.head.isFull()) { + this.head = this.head.next = new FixedCircularBuffer(); + } + this.head.push(e); + } + shift() { + const e = this.tail; + const t = e.shift(); + if (e.isEmpty() && e.next !== null) { + this.tail = e.next; + } + return t; + } + }; + }, + 8640: (e, t, r) => { + 'use strict'; + const A = r(1); + const s = r(4869); + const { + kConnected: i, + kSize: n, + kRunning: o, + kPending: a, + kQueued: c, + kBusy: u, + kFree: g, + kUrl: l, + kClose: p, + kDestroy: d, + kDispatch: h, + } = r(6443); + const C = r(4622); + const Q = Symbol('clients'); + const B = Symbol('needDrain'); + const I = Symbol('queue'); + const m = Symbol('closed resolve'); + const y = Symbol('onDrain'); + const b = Symbol('onConnect'); + const w = Symbol('onDisconnect'); + const R = Symbol('onConnectionError'); + const k = Symbol('get dispatcher'); + const D = Symbol('add client'); + const S = Symbol('remove client'); + const v = Symbol('stats'); + class PoolBase extends A { + constructor() { + super(); + this[I] = new s(); + this[Q] = []; + this[c] = 0; + const e = this; + this[y] = function onDrain(t, r) { + const A = e[I]; + let s = false; + while (!s) { + const t = A.shift(); + if (!t) { + break; + } + e[c]--; + s = !this.dispatch(t.opts, t.handler); + } + this[B] = s; + if (!this[B] && e[B]) { + e[B] = false; + e.emit('drain', t, [e, ...r]); + } + if (e[m] && A.isEmpty()) { + Promise.all(e[Q].map((e) => e.close())).then(e[m]); + } + }; + this[b] = (t, r) => { + e.emit('connect', t, [e, ...r]); + }; + this[w] = (t, r, A) => { + e.emit('disconnect', t, [e, ...r], A); + }; + this[R] = (t, r, A) => { + e.emit('connectionError', t, [e, ...r], A); + }; + this[v] = new C(this); + } + get [u]() { + return this[B]; + } + get [i]() { + return this[Q].filter((e) => e[i]).length; + } + get [g]() { + return this[Q].filter((e) => e[i] && !e[B]).length; + } + get [a]() { + let e = this[c]; + for (const {[a]: t} of this[Q]) { + e += t; + } + return e; + } + get [o]() { + let e = 0; + for (const {[o]: t} of this[Q]) { + e += t; + } + return e; + } + get [n]() { + let e = this[c]; + for (const {[n]: t} of this[Q]) { + e += t; + } + return e; + } + get stats() { + return this[v]; + } + async [p]() { + if (this[I].isEmpty()) { + return Promise.all(this[Q].map((e) => e.close())); + } else { + return new Promise((e) => { + this[m] = e; + }); + } + } + async [d](e) { + while (true) { + const t = this[I].shift(); + if (!t) { + break; + } + t.handler.onError(e); + } + return Promise.all(this[Q].map((t) => t.destroy(e))); + } + [h](e, t) { + const r = this[k](); + if (!r) { + this[B] = true; + this[I].push({opts: e, handler: t}); + this[c]++; + } else if (!r.dispatch(e, t)) { + r[B] = true; + this[B] = !this[k](); + } + return !this[B]; + } + [D](e) { + e.on('drain', this[y]) + .on('connect', this[b]) + .on('disconnect', this[w]) + .on('connectionError', this[R]); + this[Q].push(e); + if (this[B]) { + process.nextTick(() => { + if (this[B]) { + this[y](e[l], [this, e]); + } + }); + } + return this; + } + [S](e) { + e.close(() => { + const t = this[Q].indexOf(e); + if (t !== -1) { + this[Q].splice(t, 1); + } + }); + this[B] = this[Q].some((e) => !e[B] && e.closed !== true && e.destroyed !== true); + } + } + e.exports = { + PoolBase: PoolBase, + kClients: Q, + kNeedDrain: B, + kAddClient: D, + kRemoveClient: S, + kGetDispatcher: k, + }; + }, + 4622: (e, t, r) => { + const {kFree: A, kConnected: s, kPending: i, kQueued: n, kRunning: o, kSize: a} = r(6443); + const c = Symbol('pool'); + class PoolStats { + constructor(e) { + this[c] = e; + } + get connected() { + return this[c][s]; + } + get free() { + return this[c][A]; + } + get pending() { + return this[c][i]; + } + get queued() { + return this[c][n]; + } + get running() { + return this[c][o]; + } + get size() { + return this[c][a]; + } + } + e.exports = PoolStats; + }, + 5076: (e, t, r) => { + 'use strict'; + const {PoolBase: A, kClients: s, kNeedDrain: i, kAddClient: n, kGetDispatcher: o} = r(8640); + const a = r(6197); + const {InvalidArgumentError: c} = r(8707); + const u = r(3440); + const {kUrl: g, kInterceptors: l} = r(6443); + const p = r(9136); + const d = Symbol('options'); + const h = Symbol('connections'); + const C = Symbol('factory'); + function defaultFactory(e, t) { + return new a(e, t); + } + class Pool extends A { + constructor( + e, + { + connections: t, + factory: r = defaultFactory, + connect: A, + connectTimeout: i, + tls: n, + maxCachedSessions: o, + socketPath: a, + autoSelectFamily: Q, + autoSelectFamilyAttemptTimeout: B, + allowH2: I, + ...m + } = {}, + ) { + super(); + if (t != null && (!Number.isFinite(t) || t < 0)) { + throw new c('invalid connections'); + } + if (typeof r !== 'function') { + throw new c('factory must be a function.'); + } + if (A != null && typeof A !== 'function' && typeof A !== 'object') { + throw new c('connect must be a function or an object'); + } + if (typeof A !== 'function') { + A = p({ + ...n, + maxCachedSessions: o, + allowH2: I, + socketPath: a, + timeout: i, + ...(u.nodeHasAutoSelectFamily && Q + ? {autoSelectFamily: Q, autoSelectFamilyAttemptTimeout: B} + : undefined), + ...A, + }); + } + this[l] = + m.interceptors && m.interceptors.Pool && Array.isArray(m.interceptors.Pool) + ? m.interceptors.Pool + : []; + this[h] = t || null; + this[g] = u.parseOrigin(e); + this[d] = {...u.deepClone(m), connect: A, allowH2: I}; + this[d].interceptors = m.interceptors ? {...m.interceptors} : undefined; + this[C] = r; + this.on('connectionError', (e, t, r) => { + for (const e of t) { + const t = this[s].indexOf(e); + if (t !== -1) { + this[s].splice(t, 1); + } + } + }); + } + [o]() { + let e = this[s].find((e) => !e[i]); + if (e) { + return e; + } + if (!this[h] || this[s].length < this[h]) { + e = this[C](this[g], this[d]); + this[n](e); + } + return e; + } + } + e.exports = Pool; + }, + 2720: (e, t, r) => { + 'use strict'; + const {kProxy: A, kClose: s, kDestroy: i, kInterceptors: n} = r(6443); + const {URL: o} = r(7016); + const a = r(9965); + const c = r(5076); + const u = r(1); + const {InvalidArgumentError: g, RequestAbortedError: l} = r(8707); + const p = r(9136); + const d = Symbol('proxy agent'); + const h = Symbol('proxy client'); + const C = Symbol('proxy headers'); + const Q = Symbol('request tls settings'); + const B = Symbol('proxy tls settings'); + const I = Symbol('connect endpoint function'); + function defaultProtocolPort(e) { + return e === 'https:' ? 443 : 80; + } + function buildProxyOptions(e) { + if (typeof e === 'string') { + e = {uri: e}; + } + if (!e || !e.uri) { + throw new g('Proxy opts.uri is mandatory'); + } + return {uri: e.uri, protocol: e.protocol || 'https'}; + } + function defaultFactory(e, t) { + return new c(e, t); + } + class ProxyAgent extends u { + constructor(e) { + super(e); + this[A] = buildProxyOptions(e); + this[d] = new a(e); + this[n] = + e.interceptors && e.interceptors.ProxyAgent && Array.isArray(e.interceptors.ProxyAgent) + ? e.interceptors.ProxyAgent + : []; + if (typeof e === 'string') { + e = {uri: e}; + } + if (!e || !e.uri) { + throw new g('Proxy opts.uri is mandatory'); + } + const {clientFactory: t = defaultFactory} = e; + if (typeof t !== 'function') { + throw new g('Proxy opts.clientFactory must be a function.'); + } + this[Q] = e.requestTls; + this[B] = e.proxyTls; + this[C] = e.headers || {}; + const r = new o(e.uri); + const {origin: s, port: i, host: c, username: u, password: m} = r; + if (e.auth && e.token) { + throw new g('opts.auth cannot be used in combination with opts.token'); + } else if (e.auth) { + this[C]['proxy-authorization'] = `Basic ${e.auth}`; + } else if (e.token) { + this[C]['proxy-authorization'] = e.token; + } else if (u && m) { + this[C]['proxy-authorization'] = `Basic ${Buffer.from( + `${decodeURIComponent(u)}:${decodeURIComponent(m)}`, + ).toString('base64')}`; + } + const y = p({...e.proxyTls}); + this[I] = p({...e.requestTls}); + this[h] = t(r, {connect: y}); + this[d] = new a({ + ...e, + connect: async (e, t) => { + let r = e.host; + if (!e.port) { + r += `:${defaultProtocolPort(e.protocol)}`; + } + try { + const {socket: A, statusCode: n} = await this[h].connect({ + origin: s, + port: i, + path: r, + signal: e.signal, + headers: {...this[C], host: c}, + }); + if (n !== 200) { + A.on('error', () => {}).destroy(); + t(new l(`Proxy response (${n}) !== 200 when HTTP Tunneling`)); + } + if (e.protocol !== 'https:') { + t(null, A); + return; + } + let o; + if (this[Q]) { + o = this[Q].servername; + } else { + o = e.servername; + } + this[I]({...e, servername: o, httpSocket: A}, t); + } catch (e) { + t(e); + } + }, + }); + } + dispatch(e, t) { + const {host: r} = new o(e.origin); + const A = buildHeaders(e.headers); + throwIfProxyAuthIsSent(A); + return this[d].dispatch({...e, headers: {...A, host: r}}, t); + } + async [s]() { + await this[d].close(); + await this[h].close(); + } + async [i]() { + await this[d].destroy(); + await this[h].destroy(); + } + } + function buildHeaders(e) { + if (Array.isArray(e)) { + const t = {}; + for (let r = 0; r < e.length; r += 2) { + t[e[r]] = e[r + 1]; + } + return t; + } + return e; + } + function throwIfProxyAuthIsSent(e) { + const t = e && Object.keys(e).find((e) => e.toLowerCase() === 'proxy-authorization'); + if (t) { + throw new g('Proxy-Authorization should be sent in ProxyAgent constructor'); + } + } + e.exports = ProxyAgent; + }, + 8804: (e) => { + 'use strict'; + let t = Date.now(); + let r; + const A = []; + function onTimeout() { + t = Date.now(); + let e = A.length; + let r = 0; + while (r < e) { + const s = A[r]; + if (s.state === 0) { + s.state = t + s.delay; + } else if (s.state > 0 && t >= s.state) { + s.state = -1; + s.callback(s.opaque); + } + if (s.state === -1) { + s.state = -2; + if (r !== e - 1) { + A[r] = A.pop(); + } else { + A.pop(); + } + e -= 1; + } else { + r += 1; + } + } + if (A.length > 0) { + refreshTimeout(); + } + } + function refreshTimeout() { + if (r && r.refresh) { + r.refresh(); + } else { + clearTimeout(r); + r = setTimeout(onTimeout, 1e3); + if (r.unref) { + r.unref(); + } + } + } + class Timeout { + constructor(e, t, r) { + this.callback = e; + this.delay = t; + this.opaque = r; + this.state = -2; + this.refresh(); + } + refresh() { + if (this.state === -2) { + A.push(this); + if (!r || A.length === 1) { + refreshTimeout(); + } + } + this.state = 0; + } + clear() { + this.state = -1; + } + } + e.exports = { + setTimeout(e, t, r) { + return t < 1e3 ? setTimeout(e, t, r) : new Timeout(e, t, r); + }, + clearTimeout(e) { + if (e instanceof Timeout) { + e.clear(); + } else { + clearTimeout(e); + } + }, + }; + }, + 8550: (e, t, r) => { + 'use strict'; + const A = r(1637); + const {uid: s, states: i} = r(5913); + const {kReadyState: n, kSentClose: o, kByteParser: a, kReceivedClose: c} = r(2933); + const {fireEvent: u, failWebsocketConnection: g} = r(3574); + const {CloseEvent: l} = r(6255); + const {makeRequest: p} = r(5194); + const {fetching: d} = r(2315); + const {Headers: h} = r(6349); + const {getGlobalDispatcher: C} = r(2581); + const {kHeadersList: Q} = r(6443); + const B = {}; + B.open = A.channel('undici:websocket:open'); + B.close = A.channel('undici:websocket:close'); + B.socketError = A.channel('undici:websocket:socket_error'); + let I; + try { + I = r(6982); + } catch {} + function establishWebSocketConnection(e, t, r, A, i) { + const n = e; + n.protocol = e.protocol === 'ws:' ? 'http:' : 'https:'; + const o = p({ + urlList: [n], + serviceWorkers: 'none', + referrer: 'no-referrer', + mode: 'websocket', + credentials: 'include', + cache: 'no-store', + redirect: 'error', + }); + if (i.headers) { + const e = new h(i.headers)[Q]; + o.headersList = e; + } + const a = I.randomBytes(16).toString('base64'); + o.headersList.append('sec-websocket-key', a); + o.headersList.append('sec-websocket-version', '13'); + for (const e of t) { + o.headersList.append('sec-websocket-protocol', e); + } + const c = ''; + const u = d({ + request: o, + useParallelQueue: true, + dispatcher: i.dispatcher ?? C(), + processResponse(e) { + if (e.type === 'error' || e.status !== 101) { + g(r, 'Received network error or non-101 status code.'); + return; + } + if (t.length !== 0 && !e.headersList.get('Sec-WebSocket-Protocol')) { + g(r, 'Server did not respond with sent protocols.'); + return; + } + if (e.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') { + g(r, 'Server did not set Upgrade header to "websocket".'); + return; + } + if (e.headersList.get('Connection')?.toLowerCase() !== 'upgrade') { + g(r, 'Server did not set Connection header to "upgrade".'); + return; + } + const i = e.headersList.get('Sec-WebSocket-Accept'); + const n = I.createHash('sha1') + .update(a + s) + .digest('base64'); + if (i !== n) { + g(r, 'Incorrect hash received in Sec-WebSocket-Accept header.'); + return; + } + const u = e.headersList.get('Sec-WebSocket-Extensions'); + if (u !== null && u !== c) { + g(r, 'Received different permessage-deflate than the one set.'); + return; + } + const l = e.headersList.get('Sec-WebSocket-Protocol'); + if (l !== null && l !== o.headersList.get('Sec-WebSocket-Protocol')) { + g(r, 'Protocol was not set in the opening handshake.'); + return; + } + e.socket.on('data', onSocketData); + e.socket.on('close', onSocketClose); + e.socket.on('error', onSocketError); + if (B.open.hasSubscribers) { + B.open.publish({address: e.socket.address(), protocol: l, extensions: u}); + } + A(e); + }, + }); + return u; + } + function onSocketData(e) { + if (!this.ws[a].write(e)) { + this.pause(); + } + } + function onSocketClose() { + const {ws: e} = this; + const t = e[o] && e[c]; + let r = 1005; + let A = ''; + const s = e[a].closingInfo; + if (s) { + r = s.code ?? 1005; + A = s.reason; + } else if (!e[o]) { + r = 1006; + } + e[n] = i.CLOSED; + u('close', e, l, {wasClean: t, code: r, reason: A}); + if (B.close.hasSubscribers) { + B.close.publish({websocket: e, code: r, reason: A}); + } + } + function onSocketError(e) { + const {ws: t} = this; + t[n] = i.CLOSING; + if (B.socketError.hasSubscribers) { + B.socketError.publish(e); + } + this.destroy(); + } + e.exports = {establishWebSocketConnection: establishWebSocketConnection}; + }, + 5913: (e) => { + 'use strict'; + const t = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'; + const r = {enumerable: true, writable: false, configurable: false}; + const A = {CONNECTING: 0, OPEN: 1, CLOSING: 2, CLOSED: 3}; + const s = {CONTINUATION: 0, TEXT: 1, BINARY: 2, CLOSE: 8, PING: 9, PONG: 10}; + const i = 2 ** 16 - 1; + const n = {INFO: 0, PAYLOADLENGTH_16: 2, PAYLOADLENGTH_64: 3, READ_DATA: 4}; + const o = Buffer.allocUnsafe(0); + e.exports = { + uid: t, + staticPropertyDescriptors: r, + states: A, + opcodes: s, + maxUnsigned16Bit: i, + parserStates: n, + emptyBuffer: o, + }; + }, + 6255: (e, t, r) => { + 'use strict'; + const {webidl: A} = r(4222); + const {kEnumerableProperty: s} = r(3440); + const {MessagePort: i} = r(8167); + class MessageEvent extends Event { + #i; + constructor(e, t = {}) { + A.argumentLengthCheck(arguments, 1, {header: 'MessageEvent constructor'}); + e = A.converters.DOMString(e); + t = A.converters.MessageEventInit(t); + super(e, t); + this.#i = t; + } + get data() { + A.brandCheck(this, MessageEvent); + return this.#i.data; + } + get origin() { + A.brandCheck(this, MessageEvent); + return this.#i.origin; + } + get lastEventId() { + A.brandCheck(this, MessageEvent); + return this.#i.lastEventId; + } + get source() { + A.brandCheck(this, MessageEvent); + return this.#i.source; + } + get ports() { + A.brandCheck(this, MessageEvent); + if (!Object.isFrozen(this.#i.ports)) { + Object.freeze(this.#i.ports); + } + return this.#i.ports; + } + initMessageEvent(e, t = false, r = false, s = null, i = '', n = '', o = null, a = []) { + A.brandCheck(this, MessageEvent); + A.argumentLengthCheck(arguments, 1, {header: 'MessageEvent.initMessageEvent'}); + return new MessageEvent(e, { + bubbles: t, + cancelable: r, + data: s, + origin: i, + lastEventId: n, + source: o, + ports: a, + }); + } + } + class CloseEvent extends Event { + #i; + constructor(e, t = {}) { + A.argumentLengthCheck(arguments, 1, {header: 'CloseEvent constructor'}); + e = A.converters.DOMString(e); + t = A.converters.CloseEventInit(t); + super(e, t); + this.#i = t; + } + get wasClean() { + A.brandCheck(this, CloseEvent); + return this.#i.wasClean; + } + get code() { + A.brandCheck(this, CloseEvent); + return this.#i.code; + } + get reason() { + A.brandCheck(this, CloseEvent); + return this.#i.reason; + } + } + class ErrorEvent extends Event { + #i; + constructor(e, t) { + A.argumentLengthCheck(arguments, 1, {header: 'ErrorEvent constructor'}); + super(e, t); + e = A.converters.DOMString(e); + t = A.converters.ErrorEventInit(t ?? {}); + this.#i = t; + } + get message() { + A.brandCheck(this, ErrorEvent); + return this.#i.message; + } + get filename() { + A.brandCheck(this, ErrorEvent); + return this.#i.filename; + } + get lineno() { + A.brandCheck(this, ErrorEvent); + return this.#i.lineno; + } + get colno() { + A.brandCheck(this, ErrorEvent); + return this.#i.colno; + } + get error() { + A.brandCheck(this, ErrorEvent); + return this.#i.error; + } + } + Object.defineProperties(MessageEvent.prototype, { + [Symbol.toStringTag]: {value: 'MessageEvent', configurable: true}, + data: s, + origin: s, + lastEventId: s, + source: s, + ports: s, + initMessageEvent: s, + }); + Object.defineProperties(CloseEvent.prototype, { + [Symbol.toStringTag]: {value: 'CloseEvent', configurable: true}, + reason: s, + code: s, + wasClean: s, + }); + Object.defineProperties(ErrorEvent.prototype, { + [Symbol.toStringTag]: {value: 'ErrorEvent', configurable: true}, + message: s, + filename: s, + lineno: s, + colno: s, + error: s, + }); + A.converters.MessagePort = A.interfaceConverter(i); + A.converters['sequence'] = A.sequenceConverter(A.converters.MessagePort); + const n = [ + {key: 'bubbles', converter: A.converters.boolean, defaultValue: false}, + {key: 'cancelable', converter: A.converters.boolean, defaultValue: false}, + {key: 'composed', converter: A.converters.boolean, defaultValue: false}, + ]; + A.converters.MessageEventInit = A.dictionaryConverter([ + ...n, + {key: 'data', converter: A.converters.any, defaultValue: null}, + {key: 'origin', converter: A.converters.USVString, defaultValue: ''}, + {key: 'lastEventId', converter: A.converters.DOMString, defaultValue: ''}, + {key: 'source', converter: A.nullableConverter(A.converters.MessagePort), defaultValue: null}, + { + key: 'ports', + converter: A.converters['sequence'], + get defaultValue() { + return []; + }, + }, + ]); + A.converters.CloseEventInit = A.dictionaryConverter([ + ...n, + {key: 'wasClean', converter: A.converters.boolean, defaultValue: false}, + {key: 'code', converter: A.converters['unsigned short'], defaultValue: 0}, + {key: 'reason', converter: A.converters.USVString, defaultValue: ''}, + ]); + A.converters.ErrorEventInit = A.dictionaryConverter([ + ...n, + {key: 'message', converter: A.converters.DOMString, defaultValue: ''}, + {key: 'filename', converter: A.converters.USVString, defaultValue: ''}, + {key: 'lineno', converter: A.converters['unsigned long'], defaultValue: 0}, + {key: 'colno', converter: A.converters['unsigned long'], defaultValue: 0}, + {key: 'error', converter: A.converters.any}, + ]); + e.exports = {MessageEvent: MessageEvent, CloseEvent: CloseEvent, ErrorEvent: ErrorEvent}; + }, + 1237: (e, t, r) => { + 'use strict'; + const {maxUnsigned16Bit: A} = r(5913); + let s; + try { + s = r(6982); + } catch {} + class WebsocketFrameSend { + constructor(e) { + this.frameData = e; + this.maskKey = s.randomBytes(4); + } + createFrame(e) { + const t = this.frameData?.byteLength ?? 0; + let r = t; + let s = 6; + if (t > A) { + s += 8; + r = 127; + } else if (t > 125) { + s += 2; + r = 126; + } + const i = Buffer.allocUnsafe(t + s); + i[0] = i[1] = 0; + i[0] |= 128; + i[0] = (i[0] & 240) + e; + /*! ws. MIT License. Einar Otto Stangvik */ i[s - 4] = this.maskKey[0]; + i[s - 3] = this.maskKey[1]; + i[s - 2] = this.maskKey[2]; + i[s - 1] = this.maskKey[3]; + i[1] = r; + if (r === 126) { + i.writeUInt16BE(t, 2); + } else if (r === 127) { + i[2] = i[3] = 0; + i.writeUIntBE(t, 4, 6); + } + i[1] |= 128; + for (let e = 0; e < t; e++) { + i[s + e] = this.frameData[e] ^ this.maskKey[e % 4]; + } + return i; + } + } + e.exports = {WebsocketFrameSend: WebsocketFrameSend}; + }, + 3171: (e, t, r) => { + 'use strict'; + const {Writable: A} = r(2203); + const s = r(1637); + const {parserStates: i, opcodes: n, states: o, emptyBuffer: a} = r(5913); + const {kReadyState: c, kSentClose: u, kResponse: g, kReceivedClose: l} = r(2933); + const {isValidStatusCode: p, failWebsocketConnection: d, websocketMessageReceived: h} = r(3574); + const {WebsocketFrameSend: C} = r(1237); + const Q = {}; + Q.ping = s.channel('undici:websocket:ping'); + Q.pong = s.channel('undici:websocket:pong'); + class ByteParser extends A { + #n = []; + #o = 0; + #a = i.INFO; + #c = {}; + #u = []; + constructor(e) { + super(); + this.ws = e; + } + _write(e, t, r) { + this.#n.push(e); + this.#o += e.length; + this.run(r); + } + run(e) { + while (true) { + if (this.#a === i.INFO) { + if (this.#o < 2) { + return e(); + } + const t = this.consume(2); + this.#c.fin = (t[0] & 128) !== 0; + this.#c.opcode = t[0] & 15; + this.#c.originalOpcode ??= this.#c.opcode; + this.#c.fragmented = !this.#c.fin && this.#c.opcode !== n.CONTINUATION; + if (this.#c.fragmented && this.#c.opcode !== n.BINARY && this.#c.opcode !== n.TEXT) { + d(this.ws, 'Invalid frame type was fragmented.'); + return; + } + const r = t[1] & 127; + if (r <= 125) { + this.#c.payloadLength = r; + this.#a = i.READ_DATA; + } else if (r === 126) { + this.#a = i.PAYLOADLENGTH_16; + } else if (r === 127) { + this.#a = i.PAYLOADLENGTH_64; + } + if (this.#c.fragmented && r > 125) { + d(this.ws, 'Fragmented frame exceeded 125 bytes.'); + return; + } else if ( + (this.#c.opcode === n.PING || + this.#c.opcode === n.PONG || + this.#c.opcode === n.CLOSE) && + r > 125 + ) { + d(this.ws, 'Payload length for control frame exceeded 125 bytes.'); + return; + } else if (this.#c.opcode === n.CLOSE) { + if (r === 1) { + d(this.ws, 'Received close frame with a 1-byte body.'); + return; + } + const e = this.consume(r); + this.#c.closeInfo = this.parseCloseBody(false, e); + if (!this.ws[u]) { + const e = Buffer.allocUnsafe(2); + e.writeUInt16BE(this.#c.closeInfo.code, 0); + const t = new C(e); + this.ws[g].socket.write(t.createFrame(n.CLOSE), (e) => { + if (!e) { + this.ws[u] = true; + } + }); + } + this.ws[c] = o.CLOSING; + this.ws[l] = true; + this.end(); + return; + } else if (this.#c.opcode === n.PING) { + const t = this.consume(r); + if (!this.ws[l]) { + const e = new C(t); + this.ws[g].socket.write(e.createFrame(n.PONG)); + if (Q.ping.hasSubscribers) { + Q.ping.publish({payload: t}); + } + } + this.#a = i.INFO; + if (this.#o > 0) { + continue; + } else { + e(); + return; + } + } else if (this.#c.opcode === n.PONG) { + const t = this.consume(r); + if (Q.pong.hasSubscribers) { + Q.pong.publish({payload: t}); + } + if (this.#o > 0) { + continue; + } else { + e(); + return; + } + } + } else if (this.#a === i.PAYLOADLENGTH_16) { + if (this.#o < 2) { + return e(); + } + const t = this.consume(2); + this.#c.payloadLength = t.readUInt16BE(0); + this.#a = i.READ_DATA; + } else if (this.#a === i.PAYLOADLENGTH_64) { + if (this.#o < 8) { + return e(); + } + const t = this.consume(8); + const r = t.readUInt32BE(0); + if (r > 2 ** 31 - 1) { + d(this.ws, 'Received payload length > 2^31 bytes.'); + return; + } + const A = t.readUInt32BE(4); + this.#c.payloadLength = (r << 8) + A; + this.#a = i.READ_DATA; + } else if (this.#a === i.READ_DATA) { + if (this.#o < this.#c.payloadLength) { + return e(); + } else if (this.#o >= this.#c.payloadLength) { + const e = this.consume(this.#c.payloadLength); + this.#u.push(e); + if (!this.#c.fragmented || (this.#c.fin && this.#c.opcode === n.CONTINUATION)) { + const e = Buffer.concat(this.#u); + h(this.ws, this.#c.originalOpcode, e); + this.#c = {}; + this.#u.length = 0; + } + this.#a = i.INFO; + } + } + if (this.#o > 0) { + continue; + } else { + e(); + break; + } + } + } + consume(e) { + if (e > this.#o) { + return null; + } else if (e === 0) { + return a; + } + if (this.#n[0].length === e) { + this.#o -= this.#n[0].length; + return this.#n.shift(); + } + const t = Buffer.allocUnsafe(e); + let r = 0; + while (r !== e) { + const A = this.#n[0]; + const {length: s} = A; + if (s + r === e) { + t.set(this.#n.shift(), r); + break; + } else if (s + r > e) { + t.set(A.subarray(0, e - r), r); + this.#n[0] = A.subarray(e - r); + break; + } else { + t.set(this.#n.shift(), r); + r += A.length; + } + } + this.#o -= e; + return t; + } + parseCloseBody(e, t) { + let r; + if (t.length >= 2) { + r = t.readUInt16BE(0); + } + if (e) { + if (!p(r)) { + return null; + } + return {code: r}; + } + let A = t.subarray(2); + if (A[0] === 239 && A[1] === 187 && A[2] === 191) { + A = A.subarray(3); + } + if (r !== undefined && !p(r)) { + return null; + } + try { + A = new TextDecoder('utf-8', {fatal: true}).decode(A); + } catch { + return null; + } + return {code: r, reason: A}; + } + get closingInfo() { + return this.#c.closeInfo; + } + } + e.exports = {ByteParser: ByteParser}; + }, + 2933: (e) => { + 'use strict'; + e.exports = { + kWebSocketURL: Symbol('url'), + kReadyState: Symbol('ready state'), + kController: Symbol('controller'), + kResponse: Symbol('response'), + kBinaryType: Symbol('binary type'), + kSentClose: Symbol('sent close'), + kReceivedClose: Symbol('received close'), + kByteParser: Symbol('byte parser'), + }; + }, + 3574: (e, t, r) => { + 'use strict'; + const {kReadyState: A, kController: s, kResponse: i, kBinaryType: n, kWebSocketURL: o} = r(2933); + const {states: a, opcodes: c} = r(5913); + const {MessageEvent: u, ErrorEvent: g} = r(6255); + function isEstablished(e) { + return e[A] === a.OPEN; + } + function isClosing(e) { + return e[A] === a.CLOSING; + } + function isClosed(e) { + return e[A] === a.CLOSED; + } + function fireEvent(e, t, r = Event, A) { + const s = new r(e, A); + t.dispatchEvent(s); + } + function websocketMessageReceived(e, t, r) { + if (e[A] !== a.OPEN) { + return; + } + let s; + if (t === c.TEXT) { + try { + s = new TextDecoder('utf-8', {fatal: true}).decode(r); + } catch { + failWebsocketConnection(e, 'Received invalid UTF-8 in text frame.'); + return; + } + } else if (t === c.BINARY) { + if (e[n] === 'blob') { + s = new Blob([r]); + } else { + s = new Uint8Array(r).buffer; + } + } + fireEvent('message', e, u, {origin: e[o].origin, data: s}); + } + function isValidSubprotocol(e) { + if (e.length === 0) { + return false; + } + for (const t of e) { + const e = t.charCodeAt(0); + if ( + e < 33 || + e > 126 || + t === '(' || + t === ')' || + t === '<' || + t === '>' || + t === '@' || + t === ',' || + t === ';' || + t === ':' || + t === '\\' || + t === '"' || + t === '/' || + t === '[' || + t === ']' || + t === '?' || + t === '=' || + t === '{' || + t === '}' || + e === 32 || + e === 9 + ) { + return false; + } + } + return true; + } + function isValidStatusCode(e) { + if (e >= 1e3 && e < 1015) { + return e !== 1004 && e !== 1005 && e !== 1006; + } + return e >= 3e3 && e <= 4999; + } + function failWebsocketConnection(e, t) { + const {[s]: r, [i]: A} = e; + r.abort(); + if (A?.socket && !A.socket.destroyed) { + A.socket.destroy(); + } + if (t) { + fireEvent('error', e, g, {error: new Error(t)}); + } + } + e.exports = { + isEstablished: isEstablished, + isClosing: isClosing, + isClosed: isClosed, + fireEvent: fireEvent, + isValidSubprotocol: isValidSubprotocol, + isValidStatusCode: isValidStatusCode, + failWebsocketConnection: failWebsocketConnection, + websocketMessageReceived: websocketMessageReceived, + }; + }, + 5171: (e, t, r) => { + 'use strict'; + const {webidl: A} = r(4222); + const {DOMException: s} = r(7326); + const {URLSerializer: i} = r(4322); + const {getGlobalOrigin: n} = r(5628); + const {staticPropertyDescriptors: o, states: a, opcodes: c, emptyBuffer: u} = r(5913); + const { + kWebSocketURL: g, + kReadyState: l, + kController: p, + kBinaryType: d, + kResponse: h, + kSentClose: C, + kByteParser: Q, + } = r(2933); + const { + isEstablished: B, + isClosing: I, + isValidSubprotocol: m, + failWebsocketConnection: y, + fireEvent: b, + } = r(3574); + const {establishWebSocketConnection: w} = r(8550); + const {WebsocketFrameSend: R} = r(1237); + const {ByteParser: k} = r(3171); + const {kEnumerableProperty: D, isBlobLike: S} = r(3440); + const {getGlobalDispatcher: v} = r(2581); + const {types: N} = r(9023); + let q = false; + class WebSocket extends EventTarget { + #g = {open: null, error: null, close: null, message: null}; + #l = 0; + #p = ''; + #d = ''; + constructor(e, t = []) { + super(); + A.argumentLengthCheck(arguments, 1, {header: 'WebSocket constructor'}); + if (!q) { + q = true; + process.emitWarning('WebSockets are experimental, expect them to change at any time.', { + code: 'UNDICI-WS', + }); + } + const r = A.converters['DOMString or sequence or WebSocketInit'](t); + e = A.converters.USVString(e); + t = r.protocols; + const i = n(); + let o; + try { + o = new URL(e, i); + } catch (e) { + throw new s(e, 'SyntaxError'); + } + if (o.protocol === 'http:') { + o.protocol = 'ws:'; + } else if (o.protocol === 'https:') { + o.protocol = 'wss:'; + } + if (o.protocol !== 'ws:' && o.protocol !== 'wss:') { + throw new s(`Expected a ws: or wss: protocol, got ${o.protocol}`, 'SyntaxError'); + } + if (o.hash || o.href.endsWith('#')) { + throw new s('Got fragment', 'SyntaxError'); + } + if (typeof t === 'string') { + t = [t]; + } + if (t.length !== new Set(t.map((e) => e.toLowerCase())).size) { + throw new s('Invalid Sec-WebSocket-Protocol value', 'SyntaxError'); + } + if (t.length > 0 && !t.every((e) => m(e))) { + throw new s('Invalid Sec-WebSocket-Protocol value', 'SyntaxError'); + } + this[g] = new URL(o.href); + this[p] = w(o, t, this, (e) => this.#h(e), r); + this[l] = WebSocket.CONNECTING; + this[d] = 'blob'; + } + close(e = undefined, t = undefined) { + A.brandCheck(this, WebSocket); + if (e !== undefined) { + e = A.converters['unsigned short'](e, {clamp: true}); + } + if (t !== undefined) { + t = A.converters.USVString(t); + } + if (e !== undefined) { + if (e !== 1e3 && (e < 3e3 || e > 4999)) { + throw new s('invalid code', 'InvalidAccessError'); + } + } + let r = 0; + if (t !== undefined) { + r = Buffer.byteLength(t); + if (r > 123) { + throw new s(`Reason must be less than 123 bytes; received ${r}`, 'SyntaxError'); + } + } + if (this[l] === WebSocket.CLOSING || this[l] === WebSocket.CLOSED) { + } else if (!B(this)) { + y(this, 'Connection was closed before it was established.'); + this[l] = WebSocket.CLOSING; + } else if (!I(this)) { + const A = new R(); + if (e !== undefined && t === undefined) { + A.frameData = Buffer.allocUnsafe(2); + A.frameData.writeUInt16BE(e, 0); + } else if (e !== undefined && t !== undefined) { + A.frameData = Buffer.allocUnsafe(2 + r); + A.frameData.writeUInt16BE(e, 0); + A.frameData.write(t, 2, 'utf-8'); + } else { + A.frameData = u; + } + const s = this[h].socket; + s.write(A.createFrame(c.CLOSE), (e) => { + if (!e) { + this[C] = true; + } + }); + this[l] = a.CLOSING; + } else { + this[l] = WebSocket.CLOSING; + } + } + send(e) { + A.brandCheck(this, WebSocket); + A.argumentLengthCheck(arguments, 1, {header: 'WebSocket.send'}); + e = A.converters.WebSocketSendData(e); + if (this[l] === WebSocket.CONNECTING) { + throw new s('Sent before connected.', 'InvalidStateError'); + } + if (!B(this) || I(this)) { + return; + } + const t = this[h].socket; + if (typeof e === 'string') { + const r = Buffer.from(e); + const A = new R(r); + const s = A.createFrame(c.TEXT); + this.#l += r.byteLength; + t.write(s, () => { + this.#l -= r.byteLength; + }); + } else if (N.isArrayBuffer(e)) { + const r = Buffer.from(e); + const A = new R(r); + const s = A.createFrame(c.BINARY); + this.#l += r.byteLength; + t.write(s, () => { + this.#l -= r.byteLength; + }); + } else if (ArrayBuffer.isView(e)) { + const r = Buffer.from(e, e.byteOffset, e.byteLength); + const A = new R(r); + const s = A.createFrame(c.BINARY); + this.#l += r.byteLength; + t.write(s, () => { + this.#l -= r.byteLength; + }); + } else if (S(e)) { + const r = new R(); + e.arrayBuffer().then((e) => { + const A = Buffer.from(e); + r.frameData = A; + const s = r.createFrame(c.BINARY); + this.#l += A.byteLength; + t.write(s, () => { + this.#l -= A.byteLength; + }); + }); + } + } + get readyState() { + A.brandCheck(this, WebSocket); + return this[l]; + } + get bufferedAmount() { + A.brandCheck(this, WebSocket); + return this.#l; + } + get url() { + A.brandCheck(this, WebSocket); + return i(this[g]); + } + get extensions() { + A.brandCheck(this, WebSocket); + return this.#d; + } + get protocol() { + A.brandCheck(this, WebSocket); + return this.#p; + } + get onopen() { + A.brandCheck(this, WebSocket); + return this.#g.open; + } + set onopen(e) { + A.brandCheck(this, WebSocket); + if (this.#g.open) { + this.removeEventListener('open', this.#g.open); + } + if (typeof e === 'function') { + this.#g.open = e; + this.addEventListener('open', e); + } else { + this.#g.open = null; + } + } + get onerror() { + A.brandCheck(this, WebSocket); + return this.#g.error; + } + set onerror(e) { + A.brandCheck(this, WebSocket); + if (this.#g.error) { + this.removeEventListener('error', this.#g.error); + } + if (typeof e === 'function') { + this.#g.error = e; + this.addEventListener('error', e); + } else { + this.#g.error = null; + } + } + get onclose() { + A.brandCheck(this, WebSocket); + return this.#g.close; + } + set onclose(e) { + A.brandCheck(this, WebSocket); + if (this.#g.close) { + this.removeEventListener('close', this.#g.close); + } + if (typeof e === 'function') { + this.#g.close = e; + this.addEventListener('close', e); + } else { + this.#g.close = null; + } + } + get onmessage() { + A.brandCheck(this, WebSocket); + return this.#g.message; + } + set onmessage(e) { + A.brandCheck(this, WebSocket); + if (this.#g.message) { + this.removeEventListener('message', this.#g.message); + } + if (typeof e === 'function') { + this.#g.message = e; + this.addEventListener('message', e); + } else { + this.#g.message = null; + } + } + get binaryType() { + A.brandCheck(this, WebSocket); + return this[d]; + } + set binaryType(e) { + A.brandCheck(this, WebSocket); + if (e !== 'blob' && e !== 'arraybuffer') { + this[d] = 'blob'; + } else { + this[d] = e; + } + } + #h(e) { + this[h] = e; + const t = new k(this); + t.on('drain', function onParserDrain() { + this.ws[h].socket.resume(); + }); + e.socket.ws = this; + this[Q] = t; + this[l] = a.OPEN; + const r = e.headersList.get('sec-websocket-extensions'); + if (r !== null) { + this.#d = r; + } + const A = e.headersList.get('sec-websocket-protocol'); + if (A !== null) { + this.#p = A; + } + b('open', this); + } + } + WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = a.CONNECTING; + WebSocket.OPEN = WebSocket.prototype.OPEN = a.OPEN; + WebSocket.CLOSING = WebSocket.prototype.CLOSING = a.CLOSING; + WebSocket.CLOSED = WebSocket.prototype.CLOSED = a.CLOSED; + Object.defineProperties(WebSocket.prototype, { + CONNECTING: o, + OPEN: o, + CLOSING: o, + CLOSED: o, + url: D, + readyState: D, + bufferedAmount: D, + onopen: D, + onerror: D, + onclose: D, + close: D, + onmessage: D, + binaryType: D, + send: D, + extensions: D, + protocol: D, + [Symbol.toStringTag]: {value: 'WebSocket', writable: false, enumerable: false, configurable: true}, + }); + Object.defineProperties(WebSocket, {CONNECTING: o, OPEN: o, CLOSING: o, CLOSED: o}); + A.converters['sequence'] = A.sequenceConverter(A.converters.DOMString); + A.converters['DOMString or sequence'] = function (e) { + if (A.util.Type(e) === 'Object' && Symbol.iterator in e) { + return A.converters['sequence'](e); + } + return A.converters.DOMString(e); + }; + A.converters.WebSocketInit = A.dictionaryConverter([ + { + key: 'protocols', + converter: A.converters['DOMString or sequence'], + get defaultValue() { + return []; + }, + }, + { + key: 'dispatcher', + converter: (e) => e, + get defaultValue() { + return v(); + }, + }, + {key: 'headers', converter: A.nullableConverter(A.converters.HeadersInit)}, + ]); + A.converters['DOMString or sequence or WebSocketInit'] = function (e) { + if (A.util.Type(e) === 'Object' && !(Symbol.iterator in e)) { + return A.converters.WebSocketInit(e); + } + return {protocols: A.converters['DOMString or sequence'](e)}; + }; + A.converters.WebSocketSendData = function (e) { + if (A.util.Type(e) === 'Object') { + if (S(e)) { + return A.converters.Blob(e, {strict: false}); + } + if (ArrayBuffer.isView(e) || N.isAnyArrayBuffer(e)) { + return A.converters.BufferSource(e); + } + } + return A.converters.USVString(e); + }; + e.exports = {WebSocket: WebSocket}; + }, + 3843: (e, t, r) => { + 'use strict'; + Object.defineProperty(t, '__esModule', {value: true}); + function _interopDefault(e) { + return e && typeof e === 'object' && 'default' in e ? e['default'] : e; + } + var A = _interopDefault(r(5254)); + function getUserAgent() { + try { + return `Node.js/${process.version.substr(1)} (${A()}; ${process.arch})`; + } catch (e) { + if (/wmic os get Caption/.test(e.message)) { + return 'Windows '; + } + return ''; + } + } + t.getUserAgent = getUserAgent; + }, + 8682: (e) => { + var t = []; + for (var r = 0; r < 256; ++r) { + t[r] = (r + 256).toString(16).substr(1); + } + function bytesToUuid(e, r) { + var A = r || 0; + var s = t; + return [ + s[e[A++]], + s[e[A++]], + s[e[A++]], + s[e[A++]], + '-', + s[e[A++]], + s[e[A++]], + '-', + s[e[A++]], + s[e[A++]], + '-', + s[e[A++]], + s[e[A++]], + '-', + s[e[A++]], + s[e[A++]], + s[e[A++]], + s[e[A++]], + s[e[A++]], + s[e[A++]], + ].join(''); + } + e.exports = bytesToUuid; + }, + 1694: (e, t, r) => { + var A = r(6982); + e.exports = function nodeRNG() { + return A.randomBytes(16); + }; + }, + 9021: (e, t, r) => { + var A = r(1694); + var s = r(8682); + function v4(e, t, r) { + var i = (t && r) || 0; + if (typeof e == 'string') { + t = e === 'binary' ? new Array(16) : null; + e = null; + } + e = e || {}; + var n = e.random || (e.rng || A)(); + n[6] = (n[6] & 15) | 64; + n[8] = (n[8] & 63) | 128; + if (t) { + for (var o = 0; o < 16; ++o) { + t[i + o] = n[o]; + } + } + return t || s(n); + } + e.exports = v4; + }, + 1497: (e, t, r) => { + 'use strict'; + const A = r(857); + const s = r(8204); + const i = new Map([ + ['10.0', '10'], + ['6.3', '8.1'], + ['6.2', '8'], + ['6.1', '7'], + ['6.0', 'Vista'], + ['5.2', 'Server 2003'], + ['5.1', 'XP'], + ['5.0', '2000'], + ['4.9', 'ME'], + ['4.1', '98'], + ['4.0', '95'], + ]); + const windowsRelease = (e) => { + const t = /\d+\.\d/.exec(e || A.release()); + if (e && !t) { + throw new Error("`release` argument doesn't match `n.n`"); + } + const r = (t || [])[0]; + if ((!e || e === A.release()) && ['6.1', '6.2', '6.3', '10.0'].includes(r)) { + let e; + try { + e = + s.sync('powershell', ['(Get-CimInstance -ClassName Win32_OperatingSystem).caption']) + .stdout || ''; + } catch (t) { + e = s.sync('wmic', ['os', 'get', 'Caption']).stdout || ''; + } + const t = (e.match(/2008|2012|2016|2019/) || [])[0]; + if (t) { + return `Server ${t}`; + } + } + return i.get(r); + }; + e.exports = windowsRelease; + }, + 8264: (e) => { + e.exports = wrappy; + function wrappy(e, t) { + if (e && t) return wrappy(e)(t); + if (typeof e !== 'function') throw new TypeError('need wrapper function'); + Object.keys(e).forEach(function (t) { + wrapper[t] = e[t]; + }); + return wrapper; + function wrapper() { + var t = new Array(arguments.length); + for (var r = 0; r < t.length; r++) { + t[r] = arguments[r]; + } + var A = e.apply(this, t); + var s = t[t.length - 1]; + if (typeof A === 'function' && A !== s) { + Object.keys(s).forEach(function (e) { + A[e] = s[e]; + }); + } + return A; + } + } + }, + 2078: (module) => { + module.exports = eval('require')('encoding'); + }, + 2613: (e) => { + 'use strict'; + e.exports = require('assert'); + }, + 290: (e) => { + 'use strict'; + e.exports = require('async_hooks'); + }, + 181: (e) => { + 'use strict'; + e.exports = require('buffer'); + }, + 5317: (e) => { + 'use strict'; + e.exports = require('child_process'); + }, + 4236: (e) => { + 'use strict'; + e.exports = require('console'); + }, + 6982: (e) => { + 'use strict'; + e.exports = require('crypto'); + }, + 1637: (e) => { + 'use strict'; + e.exports = require('diagnostics_channel'); + }, + 4434: (e) => { + 'use strict'; + e.exports = require('events'); + }, + 9896: (e) => { + 'use strict'; + e.exports = require('fs'); + }, + 8611: (e) => { + 'use strict'; + e.exports = require('http'); + }, + 5675: (e) => { + 'use strict'; + e.exports = require('http2'); + }, + 5692: (e) => { + 'use strict'; + e.exports = require('https'); + }, + 9278: (e) => { + 'use strict'; + e.exports = require('net'); + }, + 7598: (e) => { + 'use strict'; + e.exports = require('node:crypto'); + }, + 8474: (e) => { + 'use strict'; + e.exports = require('node:events'); + }, + 7075: (e) => { + 'use strict'; + e.exports = require('node:stream'); + }, + 7975: (e) => { + 'use strict'; + e.exports = require('node:util'); + }, + 857: (e) => { + 'use strict'; + e.exports = require('os'); + }, + 6928: (e) => { + 'use strict'; + e.exports = require('path'); + }, + 2987: (e) => { + 'use strict'; + e.exports = require('perf_hooks'); + }, + 3480: (e) => { + 'use strict'; + e.exports = require('querystring'); + }, + 2203: (e) => { + 'use strict'; + e.exports = require('stream'); + }, + 3774: (e) => { + 'use strict'; + e.exports = require('stream/web'); + }, + 3193: (e) => { + 'use strict'; + e.exports = require('string_decoder'); + }, + 3557: (e) => { + 'use strict'; + e.exports = require('timers'); + }, + 4756: (e) => { + 'use strict'; + e.exports = require('tls'); + }, + 2018: (e) => { + 'use strict'; + e.exports = require('tty'); + }, + 7016: (e) => { + 'use strict'; + e.exports = require('url'); + }, + 9023: (e) => { + 'use strict'; + e.exports = require('util'); + }, + 8253: (e) => { + 'use strict'; + e.exports = require('util/types'); + }, + 8167: (e) => { + 'use strict'; + e.exports = require('worker_threads'); + }, + 3106: (e) => { + 'use strict'; + e.exports = require('zlib'); + }, + 7182: (e, t, r) => { + 'use strict'; + const A = r(7075).Writable; + const s = r(7975).inherits; + const i = r(4136); + const n = r(612); + const o = r(2271); + const a = 45; + const c = Buffer.from('-'); + const u = Buffer.from('\r\n'); + const EMPTY_FN = function () {}; + function Dicer(e) { + if (!(this instanceof Dicer)) { + return new Dicer(e); + } + A.call(this, e); + if (!e || (!e.headerFirst && typeof e.boundary !== 'string')) { + throw new TypeError('Boundary required'); + } + if (typeof e.boundary === 'string') { + this.setBoundary(e.boundary); + } else { + this._bparser = undefined; + } + this._headerFirst = e.headerFirst; + this._dashes = 0; + this._parts = 0; + this._finished = false; + this._realFinish = false; + this._isPreamble = true; + this._justMatched = false; + this._firstWrite = true; + this._inHeader = true; + this._part = undefined; + this._cb = undefined; + this._ignoreData = false; + this._partOpts = {highWaterMark: e.partHwm}; + this._pause = false; + const t = this; + this._hparser = new o(e); + this._hparser.on('header', function (e) { + t._inHeader = false; + t._part.emit('header', e); + }); + } + s(Dicer, A); + Dicer.prototype.emit = function (e) { + if (e === 'finish' && !this._realFinish) { + if (!this._finished) { + const e = this; + process.nextTick(function () { + e.emit('error', new Error('Unexpected end of multipart data')); + if (e._part && !e._ignoreData) { + const t = e._isPreamble ? 'Preamble' : 'Part'; + e._part.emit( + 'error', + new Error(t + ' terminated early due to unexpected end of multipart data'), + ); + e._part.push(null); + process.nextTick(function () { + e._realFinish = true; + e.emit('finish'); + e._realFinish = false; + }); + return; + } + e._realFinish = true; + e.emit('finish'); + e._realFinish = false; + }); + } + } else { + A.prototype.emit.apply(this, arguments); + } + }; + Dicer.prototype._write = function (e, t, r) { + if (!this._hparser && !this._bparser) { + return r(); + } + if (this._headerFirst && this._isPreamble) { + if (!this._part) { + this._part = new n(this._partOpts); + if (this.listenerCount('preamble') !== 0) { + this.emit('preamble', this._part); + } else { + this._ignore(); + } + } + const t = this._hparser.push(e); + if (!this._inHeader && t !== undefined && t < e.length) { + e = e.slice(t); + } else { + return r(); + } + } + if (this._firstWrite) { + this._bparser.push(u); + this._firstWrite = false; + } + this._bparser.push(e); + if (this._pause) { + this._cb = r; + } else { + r(); + } + }; + Dicer.prototype.reset = function () { + this._part = undefined; + this._bparser = undefined; + this._hparser = undefined; + }; + Dicer.prototype.setBoundary = function (e) { + const t = this; + this._bparser = new i('\r\n--' + e); + this._bparser.on('info', function (e, r, A, s) { + t._oninfo(e, r, A, s); + }); + }; + Dicer.prototype._ignore = function () { + if (this._part && !this._ignoreData) { + this._ignoreData = true; + this._part.on('error', EMPTY_FN); + this._part.resume(); + } + }; + Dicer.prototype._oninfo = function (e, t, r, A) { + let s; + const i = this; + let o = 0; + let u; + let g = true; + if (!this._part && this._justMatched && t) { + while (this._dashes < 2 && r + o < A) { + if (t[r + o] === a) { + ++o; + ++this._dashes; + } else { + if (this._dashes) { + s = c; + } + this._dashes = 0; + break; + } + } + if (this._dashes === 2) { + if (r + o < A && this.listenerCount('trailer') !== 0) { + this.emit('trailer', t.slice(r + o, A)); + } + this.reset(); + this._finished = true; + if (i._parts === 0) { + i._realFinish = true; + i.emit('finish'); + i._realFinish = false; + } + } + if (this._dashes) { + return; + } + } + if (this._justMatched) { + this._justMatched = false; + } + if (!this._part) { + this._part = new n(this._partOpts); + this._part._read = function (e) { + i._unpause(); + }; + if (this._isPreamble && this.listenerCount('preamble') !== 0) { + this.emit('preamble', this._part); + } else if (this._isPreamble !== true && this.listenerCount('part') !== 0) { + this.emit('part', this._part); + } else { + this._ignore(); + } + if (!this._isPreamble) { + this._inHeader = true; + } + } + if (t && r < A && !this._ignoreData) { + if (this._isPreamble || !this._inHeader) { + if (s) { + g = this._part.push(s); + } + g = this._part.push(t.slice(r, A)); + if (!g) { + this._pause = true; + } + } else if (!this._isPreamble && this._inHeader) { + if (s) { + this._hparser.push(s); + } + u = this._hparser.push(t.slice(r, A)); + if (!this._inHeader && u !== undefined && u < A) { + this._oninfo(false, t, r + u, A); + } + } + } + if (e) { + this._hparser.reset(); + if (this._isPreamble) { + this._isPreamble = false; + } else { + if (r !== A) { + ++this._parts; + this._part.on('end', function () { + if (--i._parts === 0) { + if (i._finished) { + i._realFinish = true; + i.emit('finish'); + i._realFinish = false; + } else { + i._unpause(); + } + } + }); + } + } + this._part.push(null); + this._part = undefined; + this._ignoreData = false; + this._justMatched = true; + this._dashes = 0; + } + }; + Dicer.prototype._unpause = function () { + if (!this._pause) { + return; + } + this._pause = false; + if (this._cb) { + const e = this._cb; + this._cb = undefined; + e(); + } + }; + e.exports = Dicer; + }, + 2271: (e, t, r) => { + 'use strict'; + const A = r(8474).EventEmitter; + const s = r(7975).inherits; + const i = r(2393); + const n = r(4136); + const o = Buffer.from('\r\n\r\n'); + const a = /\r\n/g; + const c = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/; + function HeaderParser(e) { + A.call(this); + e = e || {}; + const t = this; + this.nread = 0; + this.maxed = false; + this.npairs = 0; + this.maxHeaderPairs = i(e, 'maxHeaderPairs', 2e3); + this.maxHeaderSize = i(e, 'maxHeaderSize', 80 * 1024); + this.buffer = ''; + this.header = {}; + this.finished = false; + this.ss = new n(o); + this.ss.on('info', function (e, r, A, s) { + if (r && !t.maxed) { + if (t.nread + s - A >= t.maxHeaderSize) { + s = t.maxHeaderSize - t.nread + A; + t.nread = t.maxHeaderSize; + t.maxed = true; + } else { + t.nread += s - A; + } + t.buffer += r.toString('binary', A, s); + } + if (e) { + t._finish(); + } + }); + } + s(HeaderParser, A); + HeaderParser.prototype.push = function (e) { + const t = this.ss.push(e); + if (this.finished) { + return t; + } + }; + HeaderParser.prototype.reset = function () { + this.finished = false; + this.buffer = ''; + this.header = {}; + this.ss.reset(); + }; + HeaderParser.prototype._finish = function () { + if (this.buffer) { + this._parseHeader(); + } + this.ss.matches = this.ss.maxMatches; + const e = this.header; + this.header = {}; + this.buffer = ''; + this.finished = true; + this.nread = this.npairs = 0; + this.maxed = false; + this.emit('header', e); + }; + HeaderParser.prototype._parseHeader = function () { + if (this.npairs === this.maxHeaderPairs) { + return; + } + const e = this.buffer.split(a); + const t = e.length; + let r, A; + for (var s = 0; s < t; ++s) { + if (e[s].length === 0) { + continue; + } + if (e[s][0] === '\t' || e[s][0] === ' ') { + if (A) { + this.header[A][this.header[A].length - 1] += e[s]; + continue; + } + } + const t = e[s].indexOf(':'); + if (t === -1 || t === 0) { + return; + } + r = c.exec(e[s]); + A = r[1].toLowerCase(); + this.header[A] = this.header[A] || []; + this.header[A].push(r[2] || ''); + if (++this.npairs === this.maxHeaderPairs) { + break; + } + } + }; + e.exports = HeaderParser; + }, + 612: (e, t, r) => { + 'use strict'; + const A = r(7975).inherits; + const s = r(7075).Readable; + function PartStream(e) { + s.call(this, e); + } + A(PartStream, s); + PartStream.prototype._read = function (e) {}; + e.exports = PartStream; + }, + 4136: (e, t, r) => { + 'use strict'; + const A = r(8474).EventEmitter; + const s = r(7975).inherits; + function SBMH(e) { + if (typeof e === 'string') { + e = Buffer.from(e); + } + if (!Buffer.isBuffer(e)) { + throw new TypeError('The needle has to be a String or a Buffer.'); + } + const t = e.length; + if (t === 0) { + throw new Error('The needle cannot be an empty String/Buffer.'); + } + if (t > 256) { + throw new Error('The needle cannot have a length bigger than 256.'); + } + this.maxMatches = Infinity; + this.matches = 0; + this._occ = new Array(256).fill(t); + this._lookbehind_size = 0; + this._needle = e; + this._bufpos = 0; + this._lookbehind = Buffer.alloc(t); + for (var r = 0; r < t - 1; ++r) { + this._occ[e[r]] = t - 1 - r; + } + } + s(SBMH, A); + SBMH.prototype.reset = function () { + this._lookbehind_size = 0; + this.matches = 0; + this._bufpos = 0; + }; + SBMH.prototype.push = function (e, t) { + if (!Buffer.isBuffer(e)) { + e = Buffer.from(e, 'binary'); + } + const r = e.length; + this._bufpos = t || 0; + let A; + while (A !== r && this.matches < this.maxMatches) { + A = this._sbmh_feed(e); + } + return A; + }; + SBMH.prototype._sbmh_feed = function (e) { + const t = e.length; + const r = this._needle; + const A = r.length; + const s = r[A - 1]; + let i = -this._lookbehind_size; + let n; + if (i < 0) { + while (i < 0 && i <= t - A) { + n = this._sbmh_lookup_char(e, i + A - 1); + if (n === s && this._sbmh_memcmp(e, i, A - 1)) { + this._lookbehind_size = 0; + ++this.matches; + this.emit('info', true); + return (this._bufpos = i + A); + } + i += this._occ[n]; + } + if (i < 0) { + while (i < 0 && !this._sbmh_memcmp(e, i, t - i)) { + ++i; + } + } + if (i >= 0) { + this.emit('info', false, this._lookbehind, 0, this._lookbehind_size); + this._lookbehind_size = 0; + } else { + const r = this._lookbehind_size + i; + if (r > 0) { + this.emit('info', false, this._lookbehind, 0, r); + } + this._lookbehind.copy(this._lookbehind, 0, r, this._lookbehind_size - r); + this._lookbehind_size -= r; + e.copy(this._lookbehind, this._lookbehind_size); + this._lookbehind_size += t; + this._bufpos = t; + return t; + } + } + i += (i >= 0) * this._bufpos; + if (e.indexOf(r, i) !== -1) { + i = e.indexOf(r, i); + ++this.matches; + if (i > 0) { + this.emit('info', true, e, this._bufpos, i); + } else { + this.emit('info', true); + } + return (this._bufpos = i + A); + } else { + i = t - A; + } + while ( + i < t && + (e[i] !== r[0] || Buffer.compare(e.subarray(i, i + t - i), r.subarray(0, t - i)) !== 0) + ) { + ++i; + } + if (i < t) { + e.copy(this._lookbehind, 0, i, i + (t - i)); + this._lookbehind_size = t - i; + } + if (i > 0) { + this.emit('info', false, e, this._bufpos, i < t ? i : t); + } + this._bufpos = t; + return t; + }; + SBMH.prototype._sbmh_lookup_char = function (e, t) { + return t < 0 ? this._lookbehind[this._lookbehind_size + t] : e[t]; + }; + SBMH.prototype._sbmh_memcmp = function (e, t, r) { + for (var A = 0; A < r; ++A) { + if (this._sbmh_lookup_char(e, t + A) !== this._needle[A]) { + return false; + } + } + return true; + }; + e.exports = SBMH; + }, + 9581: (e, t, r) => { + 'use strict'; + const A = r(7075).Writable; + const {inherits: s} = r(7975); + const i = r(7182); + const n = r(1192); + const o = r(855); + const a = r(8929); + function Busboy(e) { + if (!(this instanceof Busboy)) { + return new Busboy(e); + } + if (typeof e !== 'object') { + throw new TypeError('Busboy expected an options-Object.'); + } + if (typeof e.headers !== 'object') { + throw new TypeError('Busboy expected an options-Object with headers-attribute.'); + } + if (typeof e.headers['content-type'] !== 'string') { + throw new TypeError('Missing Content-Type-header.'); + } + const {headers: t, ...r} = e; + this.opts = {autoDestroy: false, ...r}; + A.call(this, this.opts); + this._done = false; + this._parser = this.getParserByHeaders(t); + this._finished = false; + } + s(Busboy, A); + Busboy.prototype.emit = function (e) { + if (e === 'finish') { + if (!this._done) { + this._parser?.end(); + return; + } else if (this._finished) { + return; + } + this._finished = true; + } + A.prototype.emit.apply(this, arguments); + }; + Busboy.prototype.getParserByHeaders = function (e) { + const t = a(e['content-type']); + const r = { + defCharset: this.opts.defCharset, + fileHwm: this.opts.fileHwm, + headers: e, + highWaterMark: this.opts.highWaterMark, + isPartAFile: this.opts.isPartAFile, + limits: this.opts.limits, + parsedConType: t, + preservePath: this.opts.preservePath, + }; + if (n.detect.test(t[0])) { + return new n(this, r); + } + if (o.detect.test(t[0])) { + return new o(this, r); + } + throw new Error('Unsupported Content-Type.'); + }; + Busboy.prototype._write = function (e, t, r) { + this._parser.write(e, r); + }; + e.exports = Busboy; + e.exports['default'] = Busboy; + e.exports.Busboy = Busboy; + e.exports.Dicer = i; + }, + 1192: (e, t, r) => { + 'use strict'; + const {Readable: A} = r(7075); + const {inherits: s} = r(7975); + const i = r(7182); + const n = r(8929); + const o = r(2747); + const a = r(692); + const c = r(2393); + const u = /^boundary$/i; + const g = /^form-data$/i; + const l = /^charset$/i; + const p = /^filename$/i; + const d = /^name$/i; + Multipart.detect = /^multipart\/form-data/i; + function Multipart(e, t) { + let r; + let A; + const s = this; + let h; + const C = t.limits; + const Q = t.isPartAFile || ((e, t, r) => t === 'application/octet-stream' || r !== undefined); + const B = t.parsedConType || []; + const I = t.defCharset || 'utf8'; + const m = t.preservePath; + const y = {highWaterMark: t.fileHwm}; + for (r = 0, A = B.length; r < A; ++r) { + if (Array.isArray(B[r]) && u.test(B[r][0])) { + h = B[r][1]; + break; + } + } + function checkFinished() { + if (T === 0 && L && !e._done) { + L = false; + s.end(); + } + } + if (typeof h !== 'string') { + throw new Error('Multipart: Boundary not found'); + } + const b = c(C, 'fieldSize', 1 * 1024 * 1024); + const w = c(C, 'fileSize', Infinity); + const R = c(C, 'files', Infinity); + const k = c(C, 'fields', Infinity); + const D = c(C, 'parts', Infinity); + const S = c(C, 'headerPairs', 2e3); + const v = c(C, 'headerSize', 80 * 1024); + let N = 0; + let q = 0; + let T = 0; + let _; + let U; + let L = false; + this._needDrain = false; + this._pause = false; + this._cb = undefined; + this._nparts = 0; + this._boy = e; + const M = { + boundary: h, + maxHeaderPairs: S, + maxHeaderSize: v, + partHwm: y.highWaterMark, + highWaterMark: t.highWaterMark, + }; + this.parser = new i(M); + this.parser + .on('drain', function () { + s._needDrain = false; + if (s._cb && !s._pause) { + const e = s._cb; + s._cb = undefined; + e(); + } + }) + .on('part', function onPart(t) { + if (++s._nparts > D) { + s.parser.removeListener('part', onPart); + s.parser.on('part', skipPart); + e.hitPartsLimit = true; + e.emit('partsLimit'); + return skipPart(t); + } + if (U) { + const e = U; + e.emit('end'); + e.removeAllListeners('end'); + } + t.on('header', function (i) { + let c; + let u; + let h; + let C; + let B; + let D; + let S = 0; + if (i['content-type']) { + h = n(i['content-type'][0]); + if (h[0]) { + c = h[0].toLowerCase(); + for (r = 0, A = h.length; r < A; ++r) { + if (l.test(h[r][0])) { + C = h[r][1].toLowerCase(); + break; + } + } + } + } + if (c === undefined) { + c = 'text/plain'; + } + if (C === undefined) { + C = I; + } + if (i['content-disposition']) { + h = n(i['content-disposition'][0]); + if (!g.test(h[0])) { + return skipPart(t); + } + for (r = 0, A = h.length; r < A; ++r) { + if (d.test(h[r][0])) { + u = h[r][1]; + } else if (p.test(h[r][0])) { + D = h[r][1]; + if (!m) { + D = a(D); + } + } + } + } else { + return skipPart(t); + } + if (i['content-transfer-encoding']) { + B = i['content-transfer-encoding'][0].toLowerCase(); + } else { + B = '7bit'; + } + let v, L; + if (Q(u, c, D)) { + if (N === R) { + if (!e.hitFilesLimit) { + e.hitFilesLimit = true; + e.emit('filesLimit'); + } + return skipPart(t); + } + ++N; + if (e.listenerCount('file') === 0) { + s.parser._ignore(); + return; + } + ++T; + const r = new FileStream(y); + _ = r; + r.on('end', function () { + --T; + s._pause = false; + checkFinished(); + if (s._cb && !s._needDrain) { + const e = s._cb; + s._cb = undefined; + e(); + } + }); + r._read = function (e) { + if (!s._pause) { + return; + } + s._pause = false; + if (s._cb && !s._needDrain) { + const e = s._cb; + s._cb = undefined; + e(); + } + }; + e.emit('file', u, r, D, B, c); + v = function (e) { + if ((S += e.length) > w) { + const A = w - S + e.length; + if (A > 0) { + r.push(e.slice(0, A)); + } + r.truncated = true; + r.bytesRead = w; + t.removeAllListeners('data'); + r.emit('limit'); + return; + } else if (!r.push(e)) { + s._pause = true; + } + r.bytesRead = S; + }; + L = function () { + _ = undefined; + r.push(null); + }; + } else { + if (q === k) { + if (!e.hitFieldsLimit) { + e.hitFieldsLimit = true; + e.emit('fieldsLimit'); + } + return skipPart(t); + } + ++q; + ++T; + let r = ''; + let A = false; + U = t; + v = function (e) { + if ((S += e.length) > b) { + const s = b - (S - e.length); + r += e.toString('binary', 0, s); + A = true; + t.removeAllListeners('data'); + } else { + r += e.toString('binary'); + } + }; + L = function () { + U = undefined; + if (r.length) { + r = o(r, 'binary', C); + } + e.emit('field', u, r, false, A, B, c); + --T; + checkFinished(); + }; + } + t._readableState.sync = false; + t.on('data', v); + t.on('end', L); + }).on('error', function (e) { + if (_) { + _.emit('error', e); + } + }); + }) + .on('error', function (t) { + e.emit('error', t); + }) + .on('finish', function () { + L = true; + checkFinished(); + }); + } + Multipart.prototype.write = function (e, t) { + const r = this.parser.write(e); + if (r && !this._pause) { + t(); + } else { + this._needDrain = !r; + this._cb = t; + } + }; + Multipart.prototype.end = function () { + const e = this; + if (e.parser.writable) { + e.parser.end(); + } else if (!e._boy._done) { + process.nextTick(function () { + e._boy._done = true; + e._boy.emit('finish'); + }); + } + }; + function skipPart(e) { + e.resume(); + } + function FileStream(e) { + A.call(this, e); + this.bytesRead = 0; + this.truncated = false; + } + s(FileStream, A); + FileStream.prototype._read = function (e) {}; + e.exports = Multipart; + }, + 855: (e, t, r) => { + 'use strict'; + const A = r(1496); + const s = r(2747); + const i = r(2393); + const n = /^charset$/i; + UrlEncoded.detect = /^application\/x-www-form-urlencoded/i; + function UrlEncoded(e, t) { + const r = t.limits; + const s = t.parsedConType; + this.boy = e; + this.fieldSizeLimit = i(r, 'fieldSize', 1 * 1024 * 1024); + this.fieldNameSizeLimit = i(r, 'fieldNameSize', 100); + this.fieldsLimit = i(r, 'fields', Infinity); + let o; + for (var a = 0, c = s.length; a < c; ++a) { + if (Array.isArray(s[a]) && n.test(s[a][0])) { + o = s[a][1].toLowerCase(); + break; + } + } + if (o === undefined) { + o = t.defCharset || 'utf8'; + } + this.decoder = new A(); + this.charset = o; + this._fields = 0; + this._state = 'key'; + this._checkingBytes = true; + this._bytesKey = 0; + this._bytesVal = 0; + this._key = ''; + this._val = ''; + this._keyTrunc = false; + this._valTrunc = false; + this._hitLimit = false; + } + UrlEncoded.prototype.write = function (e, t) { + if (this._fields === this.fieldsLimit) { + if (!this.boy.hitFieldsLimit) { + this.boy.hitFieldsLimit = true; + this.boy.emit('fieldsLimit'); + } + return t(); + } + let r; + let A; + let i; + let n = 0; + const o = e.length; + while (n < o) { + if (this._state === 'key') { + r = A = undefined; + for (i = n; i < o; ++i) { + if (!this._checkingBytes) { + ++n; + } + if (e[i] === 61) { + r = i; + break; + } else if (e[i] === 38) { + A = i; + break; + } + if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) { + this._hitLimit = true; + break; + } else if (this._checkingBytes) { + ++this._bytesKey; + } + } + if (r !== undefined) { + if (r > n) { + this._key += this.decoder.write(e.toString('binary', n, r)); + } + this._state = 'val'; + this._hitLimit = false; + this._checkingBytes = true; + this._val = ''; + this._bytesVal = 0; + this._valTrunc = false; + this.decoder.reset(); + n = r + 1; + } else if (A !== undefined) { + ++this._fields; + let r; + const i = this._keyTrunc; + if (A > n) { + r = this._key += this.decoder.write(e.toString('binary', n, A)); + } else { + r = this._key; + } + this._hitLimit = false; + this._checkingBytes = true; + this._key = ''; + this._bytesKey = 0; + this._keyTrunc = false; + this.decoder.reset(); + if (r.length) { + this.boy.emit('field', s(r, 'binary', this.charset), '', i, false); + } + n = A + 1; + if (this._fields === this.fieldsLimit) { + return t(); + } + } else if (this._hitLimit) { + if (i > n) { + this._key += this.decoder.write(e.toString('binary', n, i)); + } + n = i; + if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) { + this._checkingBytes = false; + this._keyTrunc = true; + } + } else { + if (n < o) { + this._key += this.decoder.write(e.toString('binary', n)); + } + n = o; + } + } else { + A = undefined; + for (i = n; i < o; ++i) { + if (!this._checkingBytes) { + ++n; + } + if (e[i] === 38) { + A = i; + break; + } + if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) { + this._hitLimit = true; + break; + } else if (this._checkingBytes) { + ++this._bytesVal; + } + } + if (A !== undefined) { + ++this._fields; + if (A > n) { + this._val += this.decoder.write(e.toString('binary', n, A)); + } + this.boy.emit( + 'field', + s(this._key, 'binary', this.charset), + s(this._val, 'binary', this.charset), + this._keyTrunc, + this._valTrunc, + ); + this._state = 'key'; + this._hitLimit = false; + this._checkingBytes = true; + this._key = ''; + this._bytesKey = 0; + this._keyTrunc = false; + this.decoder.reset(); + n = A + 1; + if (this._fields === this.fieldsLimit) { + return t(); + } + } else if (this._hitLimit) { + if (i > n) { + this._val += this.decoder.write(e.toString('binary', n, i)); + } + n = i; + if ( + (this._val === '' && this.fieldSizeLimit === 0) || + (this._bytesVal = this._val.length) === this.fieldSizeLimit + ) { + this._checkingBytes = false; + this._valTrunc = true; + } + } else { + if (n < o) { + this._val += this.decoder.write(e.toString('binary', n)); + } + n = o; + } + } + } + t(); + }; + UrlEncoded.prototype.end = function () { + if (this.boy._done) { + return; + } + if (this._state === 'key' && this._key.length > 0) { + this.boy.emit('field', s(this._key, 'binary', this.charset), '', this._keyTrunc, false); + } else if (this._state === 'val') { + this.boy.emit( + 'field', + s(this._key, 'binary', this.charset), + s(this._val, 'binary', this.charset), + this._keyTrunc, + this._valTrunc, + ); + } + this.boy._done = true; + this.boy.emit('finish'); + }; + e.exports = UrlEncoded; + }, + 1496: (e) => { + 'use strict'; + const t = /\+/g; + const r = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ]; + function Decoder() { + this.buffer = undefined; + } + Decoder.prototype.write = function (e) { + e = e.replace(t, ' '); + let A = ''; + let s = 0; + let i = 0; + const n = e.length; + for (; s < n; ++s) { + if (this.buffer !== undefined) { + if (!r[e.charCodeAt(s)]) { + A += '%' + this.buffer; + this.buffer = undefined; + --s; + } else { + this.buffer += e[s]; + ++i; + if (this.buffer.length === 2) { + A += String.fromCharCode(parseInt(this.buffer, 16)); + this.buffer = undefined; + } + } + } else if (e[s] === '%') { + if (s > i) { + A += e.substring(i, s); + i = s; + } + this.buffer = ''; + ++i; + } + } + if (i < n && this.buffer === undefined) { + A += e.substring(i); + } + return A; + }; + Decoder.prototype.reset = function () { + this.buffer = undefined; + }; + e.exports = Decoder; + }, + 692: (e) => { + 'use strict'; + e.exports = function basename(e) { + if (typeof e !== 'string') { + return ''; + } + for (var t = e.length - 1; t >= 0; --t) { + switch (e.charCodeAt(t)) { + case 47: + case 92: + e = e.slice(t + 1); + return e === '..' || e === '.' ? '' : e; + } + } + return e === '..' || e === '.' ? '' : e; + }; + }, + 2747: function (e) { + 'use strict'; + const t = new TextDecoder('utf-8'); + const r = new Map([ + ['utf-8', t], + ['utf8', t], + ]); + function getDecoder(e) { + let t; + while (true) { + switch (e) { + case 'utf-8': + case 'utf8': + return A.utf8; + case 'latin1': + case 'ascii': + case 'us-ascii': + case 'iso-8859-1': + case 'iso8859-1': + case 'iso88591': + case 'iso_8859-1': + case 'windows-1252': + case 'iso_8859-1:1987': + case 'cp1252': + case 'x-cp1252': + return A.latin1; + case 'utf16le': + case 'utf-16le': + case 'ucs2': + case 'ucs-2': + return A.utf16le; + case 'base64': + return A.base64; + default: + if (t === undefined) { + t = true; + e = e.toLowerCase(); + continue; + } + return A.other.bind(e); + } + } + } + const A = { + utf8: (e, t) => { + if (e.length === 0) { + return ''; + } + if (typeof e === 'string') { + e = Buffer.from(e, t); + } + return e.utf8Slice(0, e.length); + }, + latin1: (e, t) => { + if (e.length === 0) { + return ''; + } + if (typeof e === 'string') { + return e; + } + return e.latin1Slice(0, e.length); + }, + utf16le: (e, t) => { + if (e.length === 0) { + return ''; + } + if (typeof e === 'string') { + e = Buffer.from(e, t); + } + return e.ucs2Slice(0, e.length); + }, + base64: (e, t) => { + if (e.length === 0) { + return ''; + } + if (typeof e === 'string') { + e = Buffer.from(e, t); + } + return e.base64Slice(0, e.length); + }, + other: (e, t) => { + if (e.length === 0) { + return ''; + } + if (typeof e === 'string') { + e = Buffer.from(e, t); + } + if (r.has(this.toString())) { + try { + return r.get(this).decode(e); + } catch {} + } + return typeof e === 'string' ? e : e.toString(); + }, + }; + function decodeText(e, t, r) { + if (e) { + return getDecoder(r)(e, t); + } + return e; + } + e.exports = decodeText; + }, + 2393: (e) => { + 'use strict'; + e.exports = function getLimit(e, t, r) { + if (!e || e[t] === undefined || e[t] === null) { + return r; + } + if (typeof e[t] !== 'number' || isNaN(e[t])) { + throw new TypeError('Limit ' + t + ' is not a valid number'); + } + return e[t]; + }; + }, + 8929: (e, t, r) => { + 'use strict'; + const A = r(2747); + const s = /%[a-fA-F0-9][a-fA-F0-9]/g; + const i = { + '%00': '\0', + '%01': '', + '%02': '', + '%03': '', + '%04': '', + '%05': '', + '%06': '', + '%07': '', + '%08': '\b', + '%09': '\t', + '%0a': '\n', + '%0A': '\n', + '%0b': '\v', + '%0B': '\v', + '%0c': '\f', + '%0C': '\f', + '%0d': '\r', + '%0D': '\r', + '%0e': '', + '%0E': '', + '%0f': '', + '%0F': '', + '%10': '', + '%11': '', + '%12': '', + '%13': '', + '%14': '', + '%15': '', + '%16': '', + '%17': '', + '%18': '', + '%19': '', + '%1a': '', + '%1A': '', + '%1b': '', + '%1B': '', + '%1c': '', + '%1C': '', + '%1d': '', + '%1D': '', + '%1e': '', + '%1E': '', + '%1f': '', + '%1F': '', + '%20': ' ', + '%21': '!', + '%22': '"', + '%23': '#', + '%24': '$', + '%25': '%', + '%26': '&', + '%27': "'", + '%28': '(', + '%29': ')', + '%2a': '*', + '%2A': '*', + '%2b': '+', + '%2B': '+', + '%2c': ',', + '%2C': ',', + '%2d': '-', + '%2D': '-', + '%2e': '.', + '%2E': '.', + '%2f': '/', + '%2F': '/', + '%30': '0', + '%31': '1', + '%32': '2', + '%33': '3', + '%34': '4', + '%35': '5', + '%36': '6', + '%37': '7', + '%38': '8', + '%39': '9', + '%3a': ':', + '%3A': ':', + '%3b': ';', + '%3B': ';', + '%3c': '<', + '%3C': '<', + '%3d': '=', + '%3D': '=', + '%3e': '>', + '%3E': '>', + '%3f': '?', + '%3F': '?', + '%40': '@', + '%41': 'A', + '%42': 'B', + '%43': 'C', + '%44': 'D', + '%45': 'E', + '%46': 'F', + '%47': 'G', + '%48': 'H', + '%49': 'I', + '%4a': 'J', + '%4A': 'J', + '%4b': 'K', + '%4B': 'K', + '%4c': 'L', + '%4C': 'L', + '%4d': 'M', + '%4D': 'M', + '%4e': 'N', + '%4E': 'N', + '%4f': 'O', + '%4F': 'O', + '%50': 'P', + '%51': 'Q', + '%52': 'R', + '%53': 'S', + '%54': 'T', + '%55': 'U', + '%56': 'V', + '%57': 'W', + '%58': 'X', + '%59': 'Y', + '%5a': 'Z', + '%5A': 'Z', + '%5b': '[', + '%5B': '[', + '%5c': '\\', + '%5C': '\\', + '%5d': ']', + '%5D': ']', + '%5e': '^', + '%5E': '^', + '%5f': '_', + '%5F': '_', + '%60': '`', + '%61': 'a', + '%62': 'b', + '%63': 'c', + '%64': 'd', + '%65': 'e', + '%66': 'f', + '%67': 'g', + '%68': 'h', + '%69': 'i', + '%6a': 'j', + '%6A': 'j', + '%6b': 'k', + '%6B': 'k', + '%6c': 'l', + '%6C': 'l', + '%6d': 'm', + '%6D': 'm', + '%6e': 'n', + '%6E': 'n', + '%6f': 'o', + '%6F': 'o', + '%70': 'p', + '%71': 'q', + '%72': 'r', + '%73': 's', + '%74': 't', + '%75': 'u', + '%76': 'v', + '%77': 'w', + '%78': 'x', + '%79': 'y', + '%7a': 'z', + '%7A': 'z', + '%7b': '{', + '%7B': '{', + '%7c': '|', + '%7C': '|', + '%7d': '}', + '%7D': '}', + '%7e': '~', + '%7E': '~', + '%7f': '', + '%7F': '', + '%80': '€', + '%81': '', + '%82': '‚', + '%83': 'ƒ', + '%84': '„', + '%85': '…', + '%86': '†', + '%87': '‡', + '%88': 'ˆ', + '%89': '‰', + '%8a': 'Š', + '%8A': 'Š', + '%8b': '‹', + '%8B': '‹', + '%8c': 'Œ', + '%8C': 'Œ', + '%8d': '', + '%8D': '', + '%8e': 'Ž', + '%8E': 'Ž', + '%8f': '', + '%8F': '', + '%90': '', + '%91': '‘', + '%92': '’', + '%93': '“', + '%94': '”', + '%95': '•', + '%96': '–', + '%97': '—', + '%98': '˜', + '%99': '™', + '%9a': 'š', + '%9A': 'š', + '%9b': '›', + '%9B': '›', + '%9c': 'œ', + '%9C': 'œ', + '%9d': '', + '%9D': '', + '%9e': 'ž', + '%9E': 'ž', + '%9f': 'Ÿ', + '%9F': 'Ÿ', + '%a0': ' ', + '%A0': ' ', + '%a1': '¡', + '%A1': '¡', + '%a2': '¢', + '%A2': '¢', + '%a3': '£', + '%A3': '£', + '%a4': '¤', + '%A4': '¤', + '%a5': '¥', + '%A5': '¥', + '%a6': '¦', + '%A6': '¦', + '%a7': '§', + '%A7': '§', + '%a8': '¨', + '%A8': '¨', + '%a9': '©', + '%A9': '©', + '%aa': 'ª', + '%Aa': 'ª', + '%aA': 'ª', + '%AA': 'ª', + '%ab': '«', + '%Ab': '«', + '%aB': '«', + '%AB': '«', + '%ac': '¬', + '%Ac': '¬', + '%aC': '¬', + '%AC': '¬', + '%ad': '­', + '%Ad': '­', + '%aD': '­', + '%AD': '­', + '%ae': '®', + '%Ae': '®', + '%aE': '®', + '%AE': '®', + '%af': '¯', + '%Af': '¯', + '%aF': '¯', + '%AF': '¯', + '%b0': '°', + '%B0': '°', + '%b1': '±', + '%B1': '±', + '%b2': '²', + '%B2': '²', + '%b3': '³', + '%B3': '³', + '%b4': '´', + '%B4': '´', + '%b5': 'µ', + '%B5': 'µ', + '%b6': '¶', + '%B6': '¶', + '%b7': '·', + '%B7': '·', + '%b8': '¸', + '%B8': '¸', + '%b9': '¹', + '%B9': '¹', + '%ba': 'º', + '%Ba': 'º', + '%bA': 'º', + '%BA': 'º', + '%bb': '»', + '%Bb': '»', + '%bB': '»', + '%BB': '»', + '%bc': '¼', + '%Bc': '¼', + '%bC': '¼', + '%BC': '¼', + '%bd': '½', + '%Bd': '½', + '%bD': '½', + '%BD': '½', + '%be': '¾', + '%Be': '¾', + '%bE': '¾', + '%BE': '¾', + '%bf': '¿', + '%Bf': '¿', + '%bF': '¿', + '%BF': '¿', + '%c0': 'À', + '%C0': 'À', + '%c1': 'Á', + '%C1': 'Á', + '%c2': 'Â', + '%C2': 'Â', + '%c3': 'Ã', + '%C3': 'Ã', + '%c4': 'Ä', + '%C4': 'Ä', + '%c5': 'Å', + '%C5': 'Å', + '%c6': 'Æ', + '%C6': 'Æ', + '%c7': 'Ç', + '%C7': 'Ç', + '%c8': 'È', + '%C8': 'È', + '%c9': 'É', + '%C9': 'É', + '%ca': 'Ê', + '%Ca': 'Ê', + '%cA': 'Ê', + '%CA': 'Ê', + '%cb': 'Ë', + '%Cb': 'Ë', + '%cB': 'Ë', + '%CB': 'Ë', + '%cc': 'Ì', + '%Cc': 'Ì', + '%cC': 'Ì', + '%CC': 'Ì', + '%cd': 'Í', + '%Cd': 'Í', + '%cD': 'Í', + '%CD': 'Í', + '%ce': 'Î', + '%Ce': 'Î', + '%cE': 'Î', + '%CE': 'Î', + '%cf': 'Ï', + '%Cf': 'Ï', + '%cF': 'Ï', + '%CF': 'Ï', + '%d0': 'Ð', + '%D0': 'Ð', + '%d1': 'Ñ', + '%D1': 'Ñ', + '%d2': 'Ò', + '%D2': 'Ò', + '%d3': 'Ó', + '%D3': 'Ó', + '%d4': 'Ô', + '%D4': 'Ô', + '%d5': 'Õ', + '%D5': 'Õ', + '%d6': 'Ö', + '%D6': 'Ö', + '%d7': '×', + '%D7': '×', + '%d8': 'Ø', + '%D8': 'Ø', + '%d9': 'Ù', + '%D9': 'Ù', + '%da': 'Ú', + '%Da': 'Ú', + '%dA': 'Ú', + '%DA': 'Ú', + '%db': 'Û', + '%Db': 'Û', + '%dB': 'Û', + '%DB': 'Û', + '%dc': 'Ü', + '%Dc': 'Ü', + '%dC': 'Ü', + '%DC': 'Ü', + '%dd': 'Ý', + '%Dd': 'Ý', + '%dD': 'Ý', + '%DD': 'Ý', + '%de': 'Þ', + '%De': 'Þ', + '%dE': 'Þ', + '%DE': 'Þ', + '%df': 'ß', + '%Df': 'ß', + '%dF': 'ß', + '%DF': 'ß', + '%e0': 'à', + '%E0': 'à', + '%e1': 'á', + '%E1': 'á', + '%e2': 'â', + '%E2': 'â', + '%e3': 'ã', + '%E3': 'ã', + '%e4': 'ä', + '%E4': 'ä', + '%e5': 'å', + '%E5': 'å', + '%e6': 'æ', + '%E6': 'æ', + '%e7': 'ç', + '%E7': 'ç', + '%e8': 'è', + '%E8': 'è', + '%e9': 'é', + '%E9': 'é', + '%ea': 'ê', + '%Ea': 'ê', + '%eA': 'ê', + '%EA': 'ê', + '%eb': 'ë', + '%Eb': 'ë', + '%eB': 'ë', + '%EB': 'ë', + '%ec': 'ì', + '%Ec': 'ì', + '%eC': 'ì', + '%EC': 'ì', + '%ed': 'í', + '%Ed': 'í', + '%eD': 'í', + '%ED': 'í', + '%ee': 'î', + '%Ee': 'î', + '%eE': 'î', + '%EE': 'î', + '%ef': 'ï', + '%Ef': 'ï', + '%eF': 'ï', + '%EF': 'ï', + '%f0': 'ð', + '%F0': 'ð', + '%f1': 'ñ', + '%F1': 'ñ', + '%f2': 'ò', + '%F2': 'ò', + '%f3': 'ó', + '%F3': 'ó', + '%f4': 'ô', + '%F4': 'ô', + '%f5': 'õ', + '%F5': 'õ', + '%f6': 'ö', + '%F6': 'ö', + '%f7': '÷', + '%F7': '÷', + '%f8': 'ø', + '%F8': 'ø', + '%f9': 'ù', + '%F9': 'ù', + '%fa': 'ú', + '%Fa': 'ú', + '%fA': 'ú', + '%FA': 'ú', + '%fb': 'û', + '%Fb': 'û', + '%fB': 'û', + '%FB': 'û', + '%fc': 'ü', + '%Fc': 'ü', + '%fC': 'ü', + '%FC': 'ü', + '%fd': 'ý', + '%Fd': 'ý', + '%fD': 'ý', + '%FD': 'ý', + '%fe': 'þ', + '%Fe': 'þ', + '%fE': 'þ', + '%FE': 'þ', + '%ff': 'ÿ', + '%Ff': 'ÿ', + '%fF': 'ÿ', + '%FF': 'ÿ', + }; + function encodedReplacer(e) { + return i[e]; + } + const n = 0; + const o = 1; + const a = 2; + const c = 3; + function parseParams(e) { + const t = []; + let r = n; + let i = ''; + let u = false; + let g = false; + let l = 0; + let p = ''; + const d = e.length; + for (var h = 0; h < d; ++h) { + const d = e[h]; + if (d === '\\' && u) { + if (g) { + g = false; + } else { + g = true; + continue; + } + } else if (d === '"') { + if (!g) { + if (u) { + u = false; + r = n; + } else { + u = true; + } + continue; + } else { + g = false; + } + } else { + if (g && u) { + p += '\\'; + } + g = false; + if ((r === a || r === c) && d === "'") { + if (r === a) { + r = c; + i = p.substring(1); + } else { + r = o; + } + p = ''; + continue; + } else if (r === n && (d === '*' || d === '=') && t.length) { + r = d === '*' ? a : o; + t[l] = [p, undefined]; + p = ''; + continue; + } else if (!u && d === ';') { + r = n; + if (i) { + if (p.length) { + p = A(p.replace(s, encodedReplacer), 'binary', i); + } + i = ''; + } else if (p.length) { + p = A(p, 'binary', 'utf8'); + } + if (t[l] === undefined) { + t[l] = p; + } else { + t[l][1] = p; + } + p = ''; + ++l; + continue; + } else if (!u && (d === ' ' || d === '\t')) { + continue; + } + } + p += d; + } + if (i && p.length) { + p = A(p.replace(s, encodedReplacer), 'binary', i); + } else if (p) { + p = A(p, 'binary', 'utf8'); + } + if (t[l] === undefined) { + if (p) { + t[l] = p; + } + } else { + t[l][1] = p; + } + return t; + } + e.exports = parseParams; + }, + 9796: (e) => { + 'use strict'; + e.exports = JSON.parse( + '{"name":"@octokit/rest","version":"16.43.1","publishConfig":{"access":"public"},"description":"GitHub REST API client for Node.js","keywords":["octokit","github","rest","api-client"],"author":"Gregor Martynus (https://github.com/gr2m)","contributors":[{"name":"Mike de Boer","email":"info@mikedeboer.nl"},{"name":"Fabian Jakobs","email":"fabian@c9.io"},{"name":"Joe Gallo","email":"joe@brassafrax.com"},{"name":"Gregor Martynus","url":"https://github.com/gr2m"}],"repository":"https://github.com/octokit/rest.js","dependencies":{"@octokit/auth-token":"^2.4.0","@octokit/plugin-paginate-rest":"^1.1.1","@octokit/plugin-request-log":"^1.0.0","@octokit/plugin-rest-endpoint-methods":"2.4.0","@octokit/request":"^5.2.0","@octokit/request-error":"^1.0.2","atob-lite":"^2.0.0","before-after-hook":"^2.0.0","btoa-lite":"^1.0.0","deprecation":"^2.0.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","lodash.uniq":"^4.5.0","octokit-pagination-methods":"^1.1.0","once":"^1.4.0","universal-user-agent":"^4.0.0"},"devDependencies":{"@gimenete/type-writer":"^0.1.3","@octokit/auth":"^1.1.1","@octokit/fixtures-server":"^5.0.6","@octokit/graphql":"^4.2.0","@types/node":"^13.1.0","bundlesize":"^0.18.0","chai":"^4.1.2","compression-webpack-plugin":"^3.1.0","cypress":"^3.0.0","glob":"^7.1.2","http-proxy-agent":"^4.0.0","lodash.camelcase":"^4.3.0","lodash.merge":"^4.6.1","lodash.upperfirst":"^4.3.1","lolex":"^5.1.2","mkdirp":"^1.0.0","mocha":"^7.0.1","mustache":"^4.0.0","nock":"^11.3.3","npm-run-all":"^4.1.2","nyc":"^15.0.0","prettier":"^1.14.2","proxy":"^1.0.0","semantic-release":"^17.0.0","sinon":"^8.0.0","sinon-chai":"^3.0.0","sort-keys":"^4.0.0","string-to-arraybuffer":"^1.0.0","string-to-jsdoc-comment":"^1.0.0","typescript":"^3.3.1","webpack":"^4.0.0","webpack-bundle-analyzer":"^3.0.0","webpack-cli":"^3.0.0"},"types":"index.d.ts","scripts":{"coverage":"nyc report --reporter=html && open coverage/index.html","lint":"prettier --check \'{lib,plugins,scripts,test}/**/*.{js,json,ts}\' \'docs/*.{js,json}\' \'docs/src/**/*\' index.js README.md package.json","lint:fix":"prettier --write \'{lib,plugins,scripts,test}/**/*.{js,json,ts}\' \'docs/*.{js,json}\' \'docs/src/**/*\' index.js README.md package.json","pretest":"npm run -s lint","test":"nyc mocha test/mocha-node-setup.js \\"test/*/**/*-test.js\\"","test:browser":"cypress run --browser chrome","build":"npm-run-all build:*","build:ts":"npm run -s update-endpoints:typescript","prebuild:browser":"mkdirp dist/","build:browser":"npm-run-all build:browser:*","build:browser:development":"webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json","build:browser:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map","generate-bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","update-endpoints":"npm-run-all update-endpoints:*","update-endpoints:fetch-json":"node scripts/update-endpoints/fetch-json","update-endpoints:typescript":"node scripts/update-endpoints/typescript","prevalidate:ts":"npm run -s build:ts","validate:ts":"tsc --target es6 --noImplicitAny index.d.ts","postvalidate:ts":"tsc --noEmit --target es6 test/typescript-validate.ts","start-fixtures-server":"octokit-fixtures-server"},"license":"MIT","files":["index.js","index.d.ts","lib","plugins"],"nyc":{"ignore":["test"]},"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"bundlesize":[{"path":"./dist/octokit-rest.min.js.gz","maxSize":"33 kB"}]}', + ); + }, + }; + var __webpack_module_cache__ = {}; + function __webpack_require__(e) { + var t = __webpack_module_cache__[e]; + if (t !== undefined) { + return t.exports; + } + var r = (__webpack_module_cache__[e] = {exports: {}}); + var A = true; + try { + __webpack_modules__[e].call(r.exports, r, r.exports, __webpack_require__); + A = false; + } finally { + if (A) delete __webpack_module_cache__[e]; + } + return r.exports; + } + if (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + '/'; + var __webpack_exports__ = {}; + (() => { + 'use strict'; + var e = __webpack_require__(7484); + var t = __webpack_require__(3228); + class Rebaser { + constructor(e) { + this.githubRebase = e; + } + async rebasePullRequests(e) { + for (const t of e) { + await this.rebase(t); + } + } + async rebase(t) { + (0, e.info)(`Rebasing pull request ${JSON.stringify(t)}`); + (0, e.debug)(`Starting rebase process for PR #${t.number} in ${t.ownerName}/${t.repoName}`); + (0, e.debug)( + `PR details: mergeableState=${t.mergeableState}, rebaseable=${String(t.rebaseable)}, draft=${String( + t.draft, + )}`, + ); + (0, e.debug)(`PR labels: ${JSON.stringify(t.labels)}`); + try { + (0, e.debug)(`Calling github-rebase library for PR #${t.number}`); + const r = await this.githubRebase.rebasePullRequest(t.ownerName, t.number, t.repoName); + (0, e.debug)(`Rebase result: ${r}`); + (0, e.info)(`${JSON.stringify(t)} was successfully rebased.`); + } catch (r) { + (0, e.debug)(`Error during rebase of PR #${t.number}: ${String(r)}`); + (0, e.debug)(`Full error details: ${JSON.stringify(r, Object.getOwnPropertyNames(r))}`); + if (String(r).includes('Rebase aborted because the head branch changed')) { + (0, e.warning)(`Rebase aborted because the head branch changed for ${JSON.stringify(t)}`); + return; + } + throw new Error(`Error while rebasing for ${JSON.stringify(t)}: ${String(r)}`); + } + } + } + const r = 'autorebase:opt-in'; + const A = 'autorebase:non-rebaseable'; + class TestableEligiblePullRequestsRetriever { + constructor(e) { + this.openPullRequestsProvider = e; + } + async findEligiblePullRequests(t, r) { + const A = await this.openPullRequestsProvider.openPullRequests(t, r); + (0, e.info)(`Found ${A.length} open pull requests.`); + const s = A.filter((e) => TestableEligiblePullRequestsRetriever.isEligible(e)); + (0, e.info)(`${s.length} pull requests are eligible.`); + return s; + } + static isEligible(t) { + if (!t.labels.includes(r)) { + (0, e.info)(`PR #${t.number} does not have the '${r}' label.`); + return false; + } + if (t.draft) { + (0, e.info)(`PR #${t.number} is a draft PR.`); + return false; + } + if (t.mergeableState !== 'behind') { + (0, e.info)(`PR #${t.number} is not 'behind', but: '${t.mergeableState}'.`); + return false; + } + if (!t.rebaseable) { + (0, e.info)(`PR #${t.number} is not rebaseable.`); + return false; + } + return true; + } + } + const s = ['behind', 'blocked', 'clean', 'dirty', 'unknown', 'unstable']; + async function promiseRetry(e, t = {timeoutMs: 500}, r = 1) { + try { + return await e(r); + } catch (A) { + if (r === 10) { + throw A; + } + await timeout(t.timeoutMs); + return promiseRetry(e, t, r + 1); + } + } + function timeout(e) { + return new Promise((t) => setTimeout(t, e)); + } + class GithubPullRequestInfoProvider { + constructor(e) { + this.getPullRequestService = e; + } + pullRequestInfoFor(t, r, A) { + return promiseRetry(async (i) => { + try { + const { + draft: n, + rebaseable: o, + mergeableState: a, + labels: c, + } = await this.getPullRequestService.getPullRequest(t, r, A); + if (i < 10 && !n) { + if (a === 'unknown' || !s.includes(a)) { + (0, e.debug)(`mergeableState for pull request #${A} is 'unknown', retrying.`); + throw Error("mergeableState is 'unknown'"); + } + } + (0, e.debug)(`rebaseable value for pull request #${A}: ${String(o)}`); + (0, e.debug)(`mergeableState for pull request #${A}: ${a}`); + return { + ownerName: t, + repoName: r, + number: A, + draft: n, + rebaseable: o, + mergeableState: a, + labels: c, + }; + } catch (t) { + (0, e.debug)( + `Fetching mergeableState for pull request #${A} failed: "${String(t)}", retrying.`, + ); + throw t; + } + }); + } + } + class GithubGetPullRequestService { + constructor(e) { + this.github = e; + } + async getPullRequest(e, t, r) { + const A = await this.github.pulls.get({owner: e, repo: t, pull_number: r}); + return { + draft: A.data.draft, + rebaseable: A.data.rebaseable, + mergeableState: A.data.mergeable_state, + labels: A.data.labels.map((e) => e.name), + }; + } + } + class GithubListPullRequestsService { + constructor(e) { + this.github = e; + } + async listOpenPullRequests(e, t) { + const r = this.github.pulls.list.endpoint.merge({owner: e, repo: t, state: 'open'}); + const A = []; + for await (const e of this.github.paginate.iterator(r)) { + const t = e.data; + A.push(...t.map((e) => ({number: e.number, labels: e.labels.map((e) => e.name)}))); + } + return A; + } + } + class GithubLabelPullRequestService { + constructor(e) { + this.github = e; + } + async listLabels(e, t) { + const {data: r} = await this.github.issues.listLabelsForRepo({owner: e, repo: t}); + return r.map((e) => e.name); + } + async createLabel(e, t, r, A, s) { + await this.github.issues.createLabel({owner: e, repo: t, name: r, color: A, description: s}); + } + async addLabel(e, t, r, A) { + await this.github.issues.addLabels({owner: e, repo: t, issue_number: r, labels: [A]}); + } + async removeLabel(e, t, r, A) { + await this.github.issues.removeLabel({owner: e, repo: t, issue_number: r, name: A}); + } + } + function mapAsync(e, t) { + return Promise.all(e.map(t)); + } + async function filterAsync(e, t) { + const r = await mapAsync(e, t); + return e.filter((e, t) => r[t]); + } + class GithubOpenPullRequestsProvider { + constructor(e, t) { + this.listPullRequestsService = e; + this.mergeableStateProvider = t; + } + async openPullRequests(e, t) { + const r = await this.listPullRequestsService.listOpenPullRequests(e, t); + return await mapAsync(r, async (r) => this.pullRequestInfoFor(e, t, r)); + } + async pullRequestInfoFor(e, t, r) { + const A = await this.mergeableStateProvider.pullRequestInfoFor(e, t, r.number); + return { + ownerName: e, + repoName: t, + number: A.number, + draft: A.draft, + rebaseable: A.rebaseable, + mergeableState: A.mergeableState, + labels: A.labels, + }; + } + } + class Labeler { + constructor(e, t) { + this.openPullRequestsProvider = e; + this.labelPullRequestService = t; + } + async createOptInLabel(e, t) { + const A = await this.labelPullRequestService.listLabels(e, t); + if (A.includes(r)) { + return; + } + await this.labelPullRequestService.createLabel( + e, + t, + r, + 'c0f276', + 'Apply this label to enable automatic rebasing', + ); + } + async labelNonRebaseablePullRequests(e, t) { + const r = await this.openPullRequestsProvider.openPullRequests(e, t); + await this.addLabels(r, e, t); + await this.removeLabels(r, e, t); + } + async addLabels(t, s, i) { + const n = t.filter((e) => !e.rebaseable && !e.labels.includes(A) && e.labels.includes(r)); + if (n.length > 0) { + await this.createNonRebaseableLabel(s, i); + } + await Promise.all( + n.map((t) => { + (0, e.info)(`Adding '${A}' label to PR #${t.number}.`); + return this.labelPullRequestService.addLabel(s, i, t.number, A); + }), + ); + } + async createNonRebaseableLabel(e, t) { + const r = await this.labelPullRequestService.listLabels(e, t); + if (r.includes(A)) { + return; + } + await this.labelPullRequestService.createLabel( + e, + t, + A, + 'df1d42', + "AutoRebase applies this label when a pull request can't be rebased automatically", + ); + } + async removeLabels(t, r, s) { + const i = t.filter((e) => e.rebaseable && e.labels.includes(A)); + await Promise.all( + i.map((t) => { + (0, e.info)(`Removing '${A}' label from PR #${t.number}.`); + return this.labelPullRequestService.removeLabel(r, s, t.number, A); + }), + ); + } + } + var i = __webpack_require__(6378); + class RealGithubRebase { + constructor(e) { + this.octokit = e; + } + async rebasePullRequest(t, r, A) { + (0, e.debug)(`[GithubRebase] Starting rebase for PR #${r} in ${t}/${A}`); + try { + (0, e.debug)(`[GithubRebase] Fetching PR details before rebase`); + try { + const s = await this.octokit.pulls.get({owner: t, repo: A, pull_number: r}); + (0, e.debug)(`[GithubRebase] PR #${r} details:`); + (0, e.debug)(` Base branch: ${s.data.base.ref}`); + (0, e.debug)(` Head branch: ${s.data.head.ref}`); + (0, e.debug)(` Head SHA: ${s.data.head.sha}`); + (0, e.debug)(` Mergeable state: ${s.data.mergeable_state}`); + (0, e.debug)(` Rebaseable: ${String(s.data.rebaseable)}`); + } catch (t) { + (0, e.debug)(`[GithubRebase] Error fetching PR details: ${String(t)}`); + } + (0, e.debug)(`[GithubRebase] Calling github-rebase library`); + const s = await (0, i.rebasePullRequest)({ + octokit: this.octokit, + owner: t, + pullRequestNumber: r, + repo: A, + }); + (0, e.debug)(`[GithubRebase] Rebase completed successfully with result: ${s}`); + return s; + } catch (s) { + (0, e.debug)(`[GithubRebase] Error during rebase: ${String(s)}`); + if (String(s).includes('Reference does not exist')) { + (0, e.debug)(`[GithubRebase] This appears to be a missing reference error`); + try { + (0, e.debug)(`[GithubRebase] Attempting to get more information about the branches`); + const s = await this.octokit.pulls.get({owner: t, repo: A, pull_number: r}); + const i = s.data.base.ref; + const n = s.data.head.ref; + (0, e.debug)(`[GithubRebase] Base branch: ${i}, Head branch: ${n}`); + try { + await this.octokit.git.getRef({owner: t, repo: A, ref: `heads/${i}`}); + (0, e.debug)(`[GithubRebase] Base branch '${i}' exists`); + } catch (t) { + (0, e.debug)( + `[GithubRebase] Base branch '${i}' does not exist or is not accessible: ${String( + t, + )}`, + ); + } + try { + const r = s.data.head.repo ? s.data.head.repo.owner.login : t; + const i = s.data.head.repo ? s.data.head.repo.name : A; + await this.octokit.git.getRef({owner: r, repo: i, ref: `heads/${n}`}); + (0, e.debug)(`[GithubRebase] Head branch '${n}' exists in ${r}/${i}`); + } catch (t) { + (0, e.debug)( + `[GithubRebase] Head branch '${n}' does not exist or is not accessible: ${String( + t, + )}`, + ); + } + } catch (t) { + (0, e.debug)(`[GithubRebase] Could not get PR details to check branches: ${String(t)}`); + } + } + throw s; + } + } + } + async function run() { + try { + const r = new t.GitHub((0, e.getInput)('github_token')); + const A = (await r.rateLimit.get()).data.rate; + (0, e.debug)(`Rate limit at start: ${JSON.stringify(A)}`); + const s = new GithubOpenPullRequestsProvider( + new GithubListPullRequestsService(r), + new GithubPullRequestInfoProvider(new GithubGetPullRequestService(r)), + ); + const i = new TestableEligiblePullRequestsRetriever(s); + const n = new Rebaser(new RealGithubRebase(r)); + const o = new Labeler(s, new GithubLabelPullRequestService(r)); + const a = t.context.payload; + const c = a.repository.owner.login; + const u = a.repository.name; + (0, e.info)(`Finding eligible pull requests..`); + const g = await i.findEligiblePullRequests(c, u); + (0, e.debug)(JSON.stringify((await r.rateLimit.get()).data.rate)); + (0, e.info)(`Rebasing ${g.length} pull requests..`); + await n.rebasePullRequests(g); + await o.createOptInLabel(c, u); + await o.labelNonRebaseablePullRequests(c, u); + const l = (await r.rateLimit.get()).data.rate; + (0, e.debug)(`Rate limit at end: ${JSON.stringify(l)} (~${A.remaining - l.remaining} requests*)`); + } catch (t) { + (0, e.debug)(`Error in AutoRebase action: ${String(t)}`); + (0, e.debug)(`Full error details: ${JSON.stringify(t, Object.getOwnPropertyNames(t))}`); + if (t instanceof Error && t.stack) { + (0, e.debug)(`Stack trace: ${t.stack}`); + } + (0, e.debug)(`Error occurred during AutoRebase action execution. Check logs above for context.`); + (0, e.setFailed)(t); + } + } + void run(); + })(); + module.exports = __webpack_exports__; +})();