From 2a0fb032eb63d5aff49a76e0e18de2ba85a94783 Mon Sep 17 00:00:00 2001 From: Fabio Niephaus Date: Mon, 3 Mar 2025 09:20:22 +0100 Subject: [PATCH] Update dist files. --- dist/cleanup.js | 1521 +++++++++++++++++++++++++++++++++++++++++------ dist/main.js | 1505 +++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 2698 insertions(+), 328 deletions(-) diff --git a/dist/cleanup.js b/dist/cleanup.js index a05e2ef..c136ed4 100644 --- a/dist/cleanup.js +++ b/dist/cleanup.js @@ -7295,11 +7295,11 @@ function requireBody () { return body$1; } -var request$2; +var request$3; var hasRequiredRequest$1; function requireRequest$1 () { - if (hasRequiredRequest$1) return request$2; + if (hasRequiredRequest$1) return request$3; hasRequiredRequest$1 = 1; const { @@ -7798,8 +7798,8 @@ function requireRequest$1 () { } } - request$2 = Request; - return request$2; + request$3 = Request; + return request$3; } var dispatcher; @@ -16145,11 +16145,11 @@ function requireResponse () { /* globals AbortController */ -var request$1; +var request$2; var hasRequiredRequest; function requireRequest () { - if (hasRequiredRequest) return request$1; + if (hasRequiredRequest) return request$2; hasRequiredRequest = 1; const { extractBody, mixinBody, cloneBody } = requireBody(); @@ -17093,8 +17093,8 @@ function requireRequest () { } ]); - request$1 = { Request, makeRequest }; - return request$1; + request$2 = { Request, makeRequest }; + return request$2; } var fetch_1; @@ -21718,11 +21718,11 @@ function requireUtil$2 () { return util$2; } -var parse$2; +var parse$3; var hasRequiredParse$1; function requireParse$1 () { - if (hasRequiredParse$1) return parse$2; + if (hasRequiredParse$1) return parse$3; hasRequiredParse$1 = 1; const { maxNameValuePairSize, maxAttributeValueSize } = requireConstants$3(); @@ -22036,11 +22036,11 @@ function requireParse$1 () { return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) } - parse$2 = { + parse$3 = { parseSetCookie, parseUnparsedAttributes }; - return parse$2; + return parse$3; } var cookies; @@ -25044,14 +25044,14 @@ function requireLib () { return lib; } -var auth$1 = {}; +var auth$2 = {}; var hasRequiredAuth; function requireAuth () { - if (hasRequiredAuth) return auth$1; + if (hasRequiredAuth) return auth$2; hasRequiredAuth = 1; - var __awaiter = (auth$1 && auth$1.__awaiter) || function (thisArg, _arguments, P, generator) { + var __awaiter = (auth$2 && auth$2.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } @@ -25060,8 +25060,8 @@ function requireAuth () { step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; - Object.defineProperty(auth$1, "__esModule", { value: true }); - auth$1.PersonalAccessTokenCredentialHandler = auth$1.BearerCredentialHandler = auth$1.BasicCredentialHandler = void 0; + Object.defineProperty(auth$2, "__esModule", { value: true }); + auth$2.PersonalAccessTokenCredentialHandler = auth$2.BearerCredentialHandler = auth$2.BasicCredentialHandler = void 0; class BasicCredentialHandler { constructor(username, password) { this.username = username; @@ -25083,7 +25083,7 @@ function requireAuth () { }); } } - auth$1.BasicCredentialHandler = BasicCredentialHandler; + auth$2.BasicCredentialHandler = BasicCredentialHandler; class BearerCredentialHandler { constructor(token) { this.token = token; @@ -25106,7 +25106,7 @@ function requireAuth () { }); } } - auth$1.BearerCredentialHandler = BearerCredentialHandler; + auth$2.BearerCredentialHandler = BearerCredentialHandler; class PersonalAccessTokenCredentialHandler { constructor(token) { this.token = token; @@ -25129,9 +25129,9 @@ function requireAuth () { }); } } - auth$1.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; + auth$2.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; - return auth$1; + return auth$2; } var hasRequiredOidcUtils; @@ -39065,7 +39065,7 @@ function shouldDeserializeResponse(parsedResponse) { return result; } async function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, options, parseXML) { - const parsedResponse = await parse$1(jsonContentTypes, xmlContentTypes, response, options, parseXML); + const parsedResponse = await parse$2(jsonContentTypes, xmlContentTypes, response, options, parseXML); if (!shouldDeserializeResponse(parsedResponse)) { return parsedResponse; } @@ -39189,7 +39189,7 @@ function handleErrorResponse(parsedResponse, operationSpec, responseSpec, option } return { error, shouldReturnResponse: false }; } -async function parse$1(jsonContentTypes, xmlContentTypes, operationResponse, opts, parseXML) { +async function parse$2(jsonContentTypes, xmlContentTypes, operationResponse, opts, parseXML) { var _a; if (!((_a = operationResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(operationResponse.status)) && operationResponse.bodyAsText) { @@ -69177,7 +69177,7 @@ function requireConfig () { return config; } -var userAgent$1 = {}; +var userAgent$2 = {}; var version = "4.0.2"; var require$$0$1 = { @@ -69186,10 +69186,10 @@ var require$$0$1 = { var hasRequiredUserAgent; function requireUserAgent () { - if (hasRequiredUserAgent) return userAgent$1; + if (hasRequiredUserAgent) return userAgent$2; hasRequiredUserAgent = 1; - Object.defineProperty(userAgent$1, "__esModule", { value: true }); - userAgent$1.getUserAgentString = void 0; + Object.defineProperty(userAgent$2, "__esModule", { value: true }); + userAgent$2.getUserAgentString = void 0; // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports const packageJson = require$$0$1; /** @@ -69198,9 +69198,9 @@ function requireUserAgent () { function getUserAgentString() { return `@actions/cache-${packageJson.version}`; } - userAgent$1.getUserAgentString = getUserAgentString; + userAgent$2.getUserAgentString = getUserAgentString; - return userAgent$1; + return userAgent$2; } var hasRequiredCacheHttpClient; @@ -78940,7 +78940,7 @@ function requireUtils$1 () { return utils; } -function getUserAgent() { +function getUserAgent$1() { if (typeof navigator === "object" && "userAgent" in navigator) { return navigator.userAgent; } @@ -79142,22 +79142,22 @@ function requireBeforeAfterHook () { var beforeAfterHookExports = requireBeforeAfterHook(); -const VERSION$5 = "9.0.6"; +const VERSION$9 = "9.0.6"; -const userAgent = `octokit-endpoint.js/${VERSION$5} ${getUserAgent()}`; -const DEFAULTS = { +const userAgent$1 = `octokit-endpoint.js/${VERSION$9} ${getUserAgent$1()}`; +const DEFAULTS$1 = { method: "GET", baseUrl: "https://api.github.com", headers: { accept: "application/vnd.github.v3+json", - "user-agent": userAgent + "user-agent": userAgent$1 }, mediaType: { format: "" } }; -function lowercaseKeys(object) { +function lowercaseKeys$1(object) { if (!object) { return {}; } @@ -79167,7 +79167,7 @@ function lowercaseKeys(object) { }, {}); } -function isPlainObject$1(value) { +function isPlainObject$3(value) { if (typeof value !== "object" || value === null) return false; if (Object.prototype.toString.call(value) !== "[object Object]") @@ -79179,14 +79179,14 @@ function isPlainObject$1(value) { return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } -function mergeDeep(defaults, options) { +function mergeDeep$1(defaults, options) { const result = Object.assign({}, defaults); Object.keys(options).forEach((key) => { - if (isPlainObject$1(options[key])) { + if (isPlainObject$3(options[key])) { if (!(key in defaults)) Object.assign(result, { [key]: options[key] }); else - result[key] = mergeDeep(defaults[key], options[key]); + result[key] = mergeDeep$1(defaults[key], options[key]); } else { Object.assign(result, { [key]: options[key] }); } @@ -79194,7 +79194,7 @@ function mergeDeep(defaults, options) { return result; } -function removeUndefinedProperties(obj) { +function removeUndefinedProperties$1(obj) { for (const key in obj) { if (obj[key] === void 0) { delete obj[key]; @@ -79203,17 +79203,17 @@ function removeUndefinedProperties(obj) { return obj; } -function merge(defaults, route, options) { +function merge$1(defaults, route, options) { if (typeof route === "string") { let [method, url] = route.split(" "); options = Object.assign(url ? { method, url } : { url: method }, options); } else { options = Object.assign({}, route); } - options.headers = lowercaseKeys(options.headers); - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); + options.headers = lowercaseKeys$1(options.headers); + removeUndefinedProperties$1(options); + removeUndefinedProperties$1(options.headers); + const mergedOptions = mergeDeep$1(defaults || {}, options); if (options.url === "/graphql") { if (defaults && defaults.mediaType.previews?.length) { mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( @@ -79225,7 +79225,7 @@ function merge(defaults, route, options) { return mergedOptions; } -function addQueryParameters(url, parameters) { +function addQueryParameters$1(url, parameters) { const separator = /\?/.test(url) ? "&" : "?"; const names = Object.keys(parameters); if (names.length === 0) { @@ -79239,19 +79239,19 @@ function addQueryParameters(url, parameters) { }).join("&"); } -const urlVariableRegex = /\{[^{}}]+\}/g; -function removeNonChars(variableName) { +const urlVariableRegex$1 = /\{[^{}}]+\}/g; +function removeNonChars$1(variableName) { return variableName.replace(/(?:^\W+)|(?:(? a.concat(b), []); + return matches.map(removeNonChars$1).reduce((a, b) => a.concat(b), []); } -function omit(object, keysToOmit) { +function omit$1(object, keysToOmit) { const result = { __proto__: null }; for (const key of Object.keys(object)) { if (keysToOmit.indexOf(key) === -1) { @@ -79261,7 +79261,7 @@ function omit(object, keysToOmit) { return result; } -function encodeReserved(str) { +function encodeReserved$1(str) { return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { if (!/%[0-9A-Fa-f]/.test(part)) { part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); @@ -79269,67 +79269,67 @@ function encodeReserved(str) { return part; }).join(""); } -function encodeUnreserved(str) { +function encodeUnreserved$1(str) { return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { return "%" + c.charCodeAt(0).toString(16).toUpperCase(); }); } -function encodeValue(operator, value, key) { - value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); +function encodeValue$1(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved$1(value) : encodeUnreserved$1(value); if (key) { - return encodeUnreserved(key) + "=" + value; + return encodeUnreserved$1(key) + "=" + value; } else { return value; } } -function isDefined(value) { +function isDefined$1(value) { return value !== void 0 && value !== null; } -function isKeyOperator(operator) { +function isKeyOperator$1(operator) { return operator === ";" || operator === "&" || operator === "?"; } -function getValues(context, operator, key, modifier) { +function getValues$1(context, operator, key, modifier) { var value = context[key], result = []; - if (isDefined(value) && value !== "") { + if (isDefined$1(value) && value !== "") { if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { value = value.toString(); if (modifier && modifier !== "*") { value = value.substring(0, parseInt(modifier, 10)); } result.push( - encodeValue(operator, value, isKeyOperator(operator) ? key : "") + encodeValue$1(operator, value, isKeyOperator$1(operator) ? key : "") ); } else { if (modifier === "*") { if (Array.isArray(value)) { - value.filter(isDefined).forEach(function(value2) { + value.filter(isDefined$1).forEach(function(value2) { result.push( - encodeValue(operator, value2, isKeyOperator(operator) ? key : "") + encodeValue$1(operator, value2, isKeyOperator$1(operator) ? key : "") ); }); } else { Object.keys(value).forEach(function(k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); + if (isDefined$1(value[k])) { + result.push(encodeValue$1(operator, value[k], k)); } }); } } else { const tmp = []; if (Array.isArray(value)) { - value.filter(isDefined).forEach(function(value2) { - tmp.push(encodeValue(operator, value2)); + value.filter(isDefined$1).forEach(function(value2) { + tmp.push(encodeValue$1(operator, value2)); }); } else { Object.keys(value).forEach(function(k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); + if (isDefined$1(value[k])) { + tmp.push(encodeUnreserved$1(k)); + tmp.push(encodeValue$1(operator, value[k].toString())); } }); } - if (isKeyOperator(operator)) { - result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + if (isKeyOperator$1(operator)) { + result.push(encodeUnreserved$1(key) + "=" + tmp.join(",")); } else if (tmp.length !== 0) { result.push(tmp.join(",")); } @@ -79337,23 +79337,23 @@ function getValues(context, operator, key, modifier) { } } else { if (operator === ";") { - if (isDefined(value)) { - result.push(encodeUnreserved(key)); + if (isDefined$1(value)) { + result.push(encodeUnreserved$1(key)); } } else if (value === "" && (operator === "&" || operator === "?")) { - result.push(encodeUnreserved(key) + "="); + result.push(encodeUnreserved$1(key) + "="); } else if (value === "") { result.push(""); } } return result; } -function parseUrl(template) { +function parseUrl$1(template) { return { - expand: expand.bind(null, template) + expand: expand$1.bind(null, template) }; } -function expand(template, context) { +function expand$1(template, context) { var operators = ["+", "#", ".", "/", ";", "?", "&"]; template = template.replace( /\{([^\{\}]+)\}|([^\{\}]+)/g, @@ -79367,7 +79367,7 @@ function expand(template, context) { } expression.split(/,/g).forEach(function(variable) { var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); - values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + values.push(getValues$1(context, operator, tmp[1], tmp[2] || tmp[3])); }); if (operator && operator !== "+") { var separator = ","; @@ -79381,7 +79381,7 @@ function expand(template, context) { return values.join(","); } } else { - return encodeReserved(literal); + return encodeReserved$1(literal); } } ); @@ -79392,12 +79392,12 @@ function expand(template, context) { } } -function parse(options) { +function parse$1(options) { let method = options.method.toUpperCase(); let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); let headers = Object.assign({}, options.headers); let body; - let parameters = omit(options, [ + let parameters = omit$1(options, [ "method", "baseUrl", "url", @@ -79405,13 +79405,13 @@ function parse(options) { "request", "mediaType" ]); - const urlVariableNames = extractUrlVariableNames(url); - url = parseUrl(url).expand(parameters); + const urlVariableNames = extractUrlVariableNames$1(url); + url = parseUrl$1(url).expand(parameters); if (!/^http/.test(url)) { url = options.baseUrl + url; } const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); - const remainingParameters = omit(parameters, omittedParameters); + const remainingParameters = omit$1(parameters, omittedParameters); const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); if (!isBinaryRequest) { if (options.mediaType.format) { @@ -79433,7 +79433,7 @@ function parse(options) { } } if (["GET", "HEAD"].includes(method)) { - url = addQueryParameters(url, remainingParameters); + url = addQueryParameters$1(url, remainingParameters); } else { if ("data" in remainingParameters) { body = remainingParameters.data; @@ -79456,26 +79456,26 @@ function parse(options) { ); } -function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); +function endpointWithDefaults$1(defaults, route, options) { + return parse$1(merge$1(defaults, route, options)); } -function withDefaults$2(oldDefaults, newDefaults) { - const DEFAULTS = merge(oldDefaults, newDefaults); - const endpoint = endpointWithDefaults.bind(null, DEFAULTS); +function withDefaults$5(oldDefaults, newDefaults) { + const DEFAULTS = merge$1(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults$1.bind(null, DEFAULTS); return Object.assign(endpoint, { DEFAULTS, - defaults: withDefaults$2.bind(null, DEFAULTS), - merge: merge.bind(null, DEFAULTS), - parse + defaults: withDefaults$5.bind(null, DEFAULTS), + merge: merge$1.bind(null, DEFAULTS), + parse: parse$1 }); } -const endpoint = withDefaults$2(null, DEFAULTS); +const endpoint$1 = withDefaults$5(null, DEFAULTS$1); -const VERSION$4 = "8.4.1"; +const VERSION$8 = "8.4.1"; -function isPlainObject(value) { +function isPlainObject$2(value) { if (typeof value !== "object" || value === null) return false; if (Object.prototype.toString.call(value) !== "[object Object]") @@ -79601,7 +79601,7 @@ var once = /*@__PURE__*/getDefaultExportFromCjs(onceExports); const logOnceCode = once((deprecation) => console.warn(deprecation)); const logOnceHeaders = once((deprecation) => console.warn(deprecation)); -class RequestError extends Error { +let RequestError$1 = class RequestError extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -79649,16 +79649,16 @@ class RequestError extends Error { } }); } -} +}; function getBufferResponse(response) { return response.arrayBuffer(); } -function fetchWrapper(requestOptions) { +function fetchWrapper$1(requestOptions) { const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false; - if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + if (isPlainObject$2(requestOptions.body) || Array.isArray(requestOptions.body)) { requestOptions.body = JSON.stringify(requestOptions.body); } let headers = {}; @@ -79702,7 +79702,7 @@ function fetchWrapper(requestOptions) { if (status < 400) { return; } - throw new RequestError(response.statusText, status, { + throw new RequestError$1(response.statusText, status, { response: { url, status, @@ -79713,19 +79713,19 @@ function fetchWrapper(requestOptions) { }); } if (status === 304) { - throw new RequestError("Not modified", status, { + throw new RequestError$1("Not modified", status, { response: { url, status, headers, - data: await getResponseData(response) + data: await getResponseData$1(response) }, request: requestOptions }); } if (status >= 400) { - const data = await getResponseData(response); - const error = new RequestError(toErrorMessage(data), status, { + const data = await getResponseData$1(response); + const error = new RequestError$1(toErrorMessage$1(data), status, { response: { url, status, @@ -79736,7 +79736,7 @@ function fetchWrapper(requestOptions) { }); throw error; } - return parseSuccessResponseBody ? await getResponseData(response) : response.body; + return parseSuccessResponseBody ? await getResponseData$1(response) : response.body; }).then((data) => { return { status, @@ -79745,7 +79745,7 @@ function fetchWrapper(requestOptions) { data }; }).catch((error) => { - if (error instanceof RequestError) + if (error instanceof RequestError$1) throw error; else if (error.name === "AbortError") throw error; @@ -79757,12 +79757,12 @@ function fetchWrapper(requestOptions) { message = error.cause; } } - throw new RequestError(message, 500, { + throw new RequestError$1(message, 500, { request: requestOptions }); }); } -async function getResponseData(response) { +async function getResponseData$1(response) { const contentType = response.headers.get("content-type"); if (/application\/json/.test(contentType)) { return response.json().catch(() => response.text()).catch(() => ""); @@ -79772,7 +79772,7 @@ async function getResponseData(response) { } return getBufferResponse(response); } -function toErrorMessage(data) { +function toErrorMessage$1(data) { if (typeof data === "string") return data; let suffix; @@ -79790,49 +79790,49 @@ function toErrorMessage(data) { return `Unknown error: ${JSON.stringify(data)}`; } -function withDefaults$1(oldEndpoint, newDefaults) { +function withDefaults$4(oldEndpoint, newDefaults) { const endpoint = oldEndpoint.defaults(newDefaults); const newApi = function(route, parameters) { const endpointOptions = endpoint.merge(route, parameters); if (!endpointOptions.request || !endpointOptions.request.hook) { - return fetchWrapper(endpoint.parse(endpointOptions)); + return fetchWrapper$1(endpoint.parse(endpointOptions)); } const request = (route2, parameters2) => { - return fetchWrapper( + return fetchWrapper$1( endpoint.parse(endpoint.merge(route2, parameters2)) ); }; Object.assign(request, { endpoint, - defaults: withDefaults$1.bind(null, endpoint) + defaults: withDefaults$4.bind(null, endpoint) }); return endpointOptions.request.hook(request, endpointOptions); }; return Object.assign(newApi, { endpoint, - defaults: withDefaults$1.bind(null, endpoint) + defaults: withDefaults$4.bind(null, endpoint) }); } -const request = withDefaults$1(endpoint, { +const request$1 = withDefaults$4(endpoint$1, { headers: { - "user-agent": `octokit-request.js/${VERSION$4} ${getUserAgent()}` + "user-agent": `octokit-request.js/${VERSION$8} ${getUserAgent$1()}` } }); // pkg/dist-src/index.js // pkg/dist-src/version.js -var VERSION$3 = "7.1.1"; +var VERSION$7 = "7.1.1"; // pkg/dist-src/error.js -function _buildMessageForResponseErrors(data) { +function _buildMessageForResponseErrors$1(data) { return `Request failed due to following response errors: ` + data.errors.map((e) => ` - ${e.message}`).join("\n"); } -var GraphqlResponseError = class extends Error { +var GraphqlResponseError$1 = class GraphqlResponseError extends Error { constructor(request2, headers, response) { - super(_buildMessageForResponseErrors(response)); + super(_buildMessageForResponseErrors$1(response)); this.request = request2; this.headers = headers; this.response = response; @@ -79846,7 +79846,7 @@ var GraphqlResponseError = class extends Error { }; // pkg/dist-src/graphql.js -var NON_VARIABLE_OPTIONS = [ +var NON_VARIABLE_OPTIONS$1 = [ "method", "baseUrl", "url", @@ -79855,9 +79855,9 @@ var NON_VARIABLE_OPTIONS = [ "query", "mediaType" ]; -var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request2, query, options) { +var FORBIDDEN_VARIABLE_OPTIONS$1 = ["query", "method", "url"]; +var GHES_V3_SUFFIX_REGEX$1 = /\/api\/v3\/?$/; +function graphql$1(request2, query, options) { if (options) { if (typeof query === "string" && "query" in options) { return Promise.reject( @@ -79865,7 +79865,7 @@ function graphql(request2, query, options) { ); } for (const key in options) { - if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue; + if (!FORBIDDEN_VARIABLE_OPTIONS$1.includes(key)) continue; return Promise.reject( new Error( `[@octokit/graphql] "${key}" cannot be used as variable name` @@ -79877,7 +79877,7 @@ function graphql(request2, query, options) { const requestOptions = Object.keys( parsedOptions ).reduce((result, key) => { - if (NON_VARIABLE_OPTIONS.includes(key)) { + if (NON_VARIABLE_OPTIONS$1.includes(key)) { result[key] = parsedOptions[key]; return result; } @@ -79888,8 +79888,8 @@ function graphql(request2, query, options) { return result; }, {}); const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + if (GHES_V3_SUFFIX_REGEX$1.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX$1, "/api/graphql"); } return request2(requestOptions).then((response) => { if (response.data.errors) { @@ -79897,7 +79897,7 @@ function graphql(request2, query, options) { for (const key of Object.keys(response.headers)) { headers[key] = response.headers[key]; } - throw new GraphqlResponseError( + throw new GraphqlResponseError$1( requestOptions, headers, response.data @@ -79908,27 +79908,27 @@ function graphql(request2, query, options) { } // pkg/dist-src/with-defaults.js -function withDefaults(request2, newDefaults) { +function withDefaults$3(request2, newDefaults) { const newRequest = request2.defaults(newDefaults); const newApi = (query, options) => { - return graphql(newRequest, query, options); + return graphql$1(newRequest, query, options); }; return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), + defaults: withDefaults$3.bind(null, newRequest), endpoint: newRequest.endpoint }); } // pkg/dist-src/index.js -withDefaults(request, { +withDefaults$3(request$1, { headers: { - "user-agent": `octokit-graphql.js/${VERSION$3} ${getUserAgent()}` + "user-agent": `octokit-graphql.js/${VERSION$7} ${getUserAgent$1()}` }, method: "POST", url: "/graphql" }); -function withCustomRequest(customRequest) { - return withDefaults(customRequest, { +function withCustomRequest$1(customRequest) { + return withDefaults$3(customRequest, { method: "POST", url: "/graphql" }); @@ -79937,7 +79937,7 @@ function withCustomRequest(customRequest) { const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; const REGEX_IS_INSTALLATION = /^ghs_/; const REGEX_IS_USER_TO_SERVER = /^ghu_/; -async function auth(token) { +async function auth$1(token) { const isApp = token.split(/\./).length === 3; const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); @@ -79949,23 +79949,23 @@ async function auth(token) { }; } -function withAuthorizationPrefix(token) { +function withAuthorizationPrefix$1(token) { if (token.split(/\./).length === 3) { return `bearer ${token}`; } return `token ${token}`; } -async function hook(token, request, route, parameters) { +async function hook$1(token, request, route, parameters) { const endpoint = request.endpoint.merge( route, parameters ); - endpoint.headers.authorization = withAuthorizationPrefix(token); + endpoint.headers.authorization = withAuthorizationPrefix$1(token); return request(endpoint); } -const createTokenAuth = function createTokenAuth2(token) { +const createTokenAuth$1 = function createTokenAuth2(token) { if (!token) { throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); } @@ -79975,25 +79975,25 @@ const createTokenAuth = function createTokenAuth2(token) { ); } token = token.replace(/^(token|bearer) +/i, ""); - return Object.assign(auth.bind(null, token), { - hook: hook.bind(null, token) + return Object.assign(auth$1.bind(null, token), { + hook: hook$1.bind(null, token) }); }; // pkg/dist-src/index.js // pkg/dist-src/version.js -var VERSION$2 = "5.2.0"; +var VERSION$6 = "5.2.0"; // pkg/dist-src/index.js -var noop = () => { +var noop$1 = () => { }; -var consoleWarn = console.warn.bind(console); -var consoleError = console.error.bind(console); -var userAgentTrail = `octokit-core.js/${VERSION$2} ${getUserAgent()}`; -var Octokit = class { +var consoleWarn$1 = console.warn.bind(console); +var consoleError$1 = console.error.bind(console); +var userAgentTrail$1 = `octokit-core.js/${VERSION$6} ${getUserAgent$1()}`; +var Octokit$1 = class Octokit { static { - this.VERSION = VERSION$2; + this.VERSION = VERSION$6; } static defaults(defaults) { const OctokitWithDefaults = class extends this { @@ -80040,7 +80040,7 @@ var Octokit = class { constructor(options = {}) { const hook = new beforeAfterHookExports.Collection(); const requestDefaults = { - baseUrl: request.endpoint.DEFAULTS.baseUrl, + baseUrl: request$1.endpoint.DEFAULTS.baseUrl, headers: {}, request: Object.assign({}, options.request, { // @ts-ignore internal usage only, no need to type @@ -80051,7 +80051,7 @@ var Octokit = class { format: "" } }; - requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; + requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail$1}` : userAgentTrail$1; if (options.baseUrl) { requestDefaults.baseUrl = options.baseUrl; } @@ -80061,14 +80061,14 @@ var Octokit = class { if (options.timeZone) { requestDefaults.headers["time-zone"] = options.timeZone; } - this.request = request.defaults(requestDefaults); - this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.request = request$1.defaults(requestDefaults); + this.graphql = withCustomRequest$1(this.request).defaults(requestDefaults); this.log = Object.assign( { - debug: noop, - info: noop, - warn: consoleWarn, - error: consoleError + debug: noop$1, + info: noop$1, + warn: consoleWarn$1, + error: consoleError$1 }, options.log ); @@ -80079,7 +80079,7 @@ var Octokit = class { type: "unauthenticated" }); } else { - const auth = createTokenAuth(options.auth); + const auth = createTokenAuth$1(options.auth); hook.wrap("request", auth.hook); this.auth = auth; } @@ -80113,12 +80113,12 @@ var Octokit = class { var distWeb$1 = /*#__PURE__*/Object.freeze({ __proto__: null, - Octokit: Octokit + Octokit: Octokit$1 }); var require$$2 = /*@__PURE__*/getAugmentedNamespace(distWeb$1); -const VERSION$1 = "10.4.1"; +const VERSION$5 = "10.4.1"; const Endpoints = { actions: { @@ -82238,7 +82238,7 @@ function restEndpointMethods(octokit) { rest: api }; } -restEndpointMethods.VERSION = VERSION$1; +restEndpointMethods.VERSION = VERSION$5; function legacyRestEndpointMethods(octokit) { const api = endpointsToMethods(octokit); return { @@ -82246,7 +82246,7 @@ function legacyRestEndpointMethods(octokit) { rest: api }; } -legacyRestEndpointMethods.VERSION = VERSION$1; +legacyRestEndpointMethods.VERSION = VERSION$5; var distSrc = /*#__PURE__*/Object.freeze({ __proto__: null, @@ -82257,7 +82257,7 @@ var distSrc = /*#__PURE__*/Object.freeze({ var require$$3 = /*@__PURE__*/getAugmentedNamespace(distSrc); // pkg/dist-src/version.js -var VERSION = "9.2.2"; +var VERSION$4 = "9.2.2"; // pkg/dist-src/normalize-paginated-list-response.js function normalizePaginatedListResponse(response) { @@ -82617,7 +82617,7 @@ function paginateRest(octokit) { }) }; } -paginateRest.VERSION = VERSION; +paginateRest.VERSION = VERSION$4; var distWeb = /*#__PURE__*/Object.freeze({ __proto__: null, @@ -87976,6 +87976,1191 @@ requireToolCache(); requireExec(); +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + + if (typeof process === "object" && process.version !== undefined) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${ + process.arch + })`; + } + + return ""; +} + +// @ts-check + +function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } + + if (!options) { + options = {}; + } + + if (Array.isArray(name)) { + return name.reverse().reduce((callback, name) => { + return register.bind(null, state, name, callback, options); + }, method)(); + } + + return Promise.resolve().then(() => { + if (!state.registry[name]) { + return method(options); + } + + return state.registry[name].reduce((method, registered) => { + return registered.hook.bind(null, method, options); + }, method)(); + }); +} + +// @ts-check + +function addHook(state, kind, name, hook) { + const orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } + + if (kind === "before") { + hook = (method, options) => { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } + + if (kind === "after") { + hook = (method, options) => { + let result; + return Promise.resolve() + .then(method.bind(null, options)) + .then((result_) => { + result = result_; + return orig(result, options); + }) + .then(() => { + return result; + }); + }; + } + + if (kind === "error") { + hook = (method, options) => { + return Promise.resolve() + .then(method.bind(null, options)) + .catch((error) => { + return orig(error, options); + }); + }; + } + + state.registry[name].push({ + hook: hook, + orig: orig, + }); +} + +// @ts-check + +function removeHook(state, name, method) { + if (!state.registry[name]) { + return; + } + + const index = state.registry[name] + .map((registered) => { + return registered.orig; + }) + .indexOf(method); + + if (index === -1) { + return; + } + + state.registry[name].splice(index, 1); +} + +// @ts-check + + +// bind with array of arguments: https://stackoverflow.com/a/21792913 +const bind = Function.bind; +const bindable = bind.bind(bind); + +function bindApi(hook, state, name) { + const removeHookRef = bindable(removeHook, null).apply( + null, + [state] + ); + hook.api = { remove: removeHookRef }; + hook.remove = removeHookRef; + ["before", "error", "after", "wrap"].forEach((kind) => { + const args = [state, kind]; + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args); + }); +} + +function Collection() { + const state = { + registry: {}, + }; + + const hook = register.bind(null, state); + bindApi(hook, state); + + return hook; +} + +var Hook = { Collection }; + +// pkg/dist-src/defaults.js + +// pkg/dist-src/version.js +var VERSION$3 = "0.0.0-development"; + +// pkg/dist-src/defaults.js +var userAgent = `octokit-endpoint.js/${VERSION$3} ${getUserAgent()}`; +var DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "" + } +}; + +// pkg/dist-src/util/lowercase-keys.js +function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +// pkg/dist-src/util/is-plain-object.js +function isPlainObject$1(value) { + if (typeof value !== "object" || value === null) return false; + if (Object.prototype.toString.call(value) !== "[object Object]") return false; + const proto = Object.getPrototypeOf(value); + if (proto === null) return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); +} + +// pkg/dist-src/util/merge-deep.js +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject$1(options[key])) { + if (!(key in defaults)) Object.assign(result, { [key]: options[key] }); + else result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} + +// pkg/dist-src/util/remove-undefined-properties.js +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === void 0) { + delete obj[key]; + } + } + return obj; +} + +// pkg/dist-src/merge.js +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } else { + options = Object.assign({}, route); + } + options.headers = lowercaseKeys(options.headers); + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + if (options.url === "/graphql") { + if (defaults && defaults.mediaType.previews?.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( + (preview) => !mergedOptions.mediaType.previews.includes(preview) + ).concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); + } + return mergedOptions; +} + +// pkg/dist-src/util/add-query-parameters.js +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return url + separator + names.map((name) => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +// pkg/dist-src/util/extract-url-variable-names.js +var urlVariableRegex = /\{[^{}}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/(?:^\W+)|(?:(? a.concat(b), []); +} + +// pkg/dist-src/util/omit.js +function omit(object, keysToOmit) { + const result = { __proto__: null }; + for (const key of Object.keys(object)) { + if (keysToOmit.indexOf(key) === -1) { + result[key] = object[key]; + } + } + return result; +} + +// pkg/dist-src/util/url-template.js +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }).join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} +function isDefined(value) { + return value !== void 0 && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push( + encodeValue(operator, value, isKeyOperator(operator) ? key : "") + ); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + result.push( + encodeValue(operator, value2, isKeyOperator(operator) ? key : "") + ); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + tmp.push(encodeValue(operator, value2)); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + return result; +} +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + template = template.replace( + /\{([^\{\}]+)\}|([^\{\}]+)/g, + function(_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function(variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + } + ); + if (template === "/") { + return template; + } else { + return template.replace(/\/$/, ""); + } +} + +// pkg/dist-src/parse.js +function parse(options) { + let method = options.method.toUpperCase(); + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType" + ]); + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) { + headers.accept = headers.accept.split(/,/).map( + (format) => format.replace( + /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, + `application/vnd$1$2.${options.mediaType.format}` + ) + ).join(","); + } + if (url.endsWith("/graphql")) { + if (options.mediaType.previews?.length) { + const previewsFromAcceptHeader = headers.accept.match(/(? { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } + } + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + } + } + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + return Object.assign( + { method, url, headers }, + typeof body !== "undefined" ? { body } : null, + options.request ? { request: options.request } : null + ); +} + +// pkg/dist-src/endpoint-with-defaults.js +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +// pkg/dist-src/with-defaults.js +function withDefaults$2(oldDefaults, newDefaults) { + const DEFAULTS2 = merge(oldDefaults, newDefaults); + const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); + return Object.assign(endpoint2, { + DEFAULTS: DEFAULTS2, + defaults: withDefaults$2.bind(null, DEFAULTS2), + merge: merge.bind(null, DEFAULTS2), + parse + }); +} + +// pkg/dist-src/index.js +var endpoint = withDefaults$2(null, DEFAULTS); + +var fastContentTypeParse = {}; + +var hasRequiredFastContentTypeParse; + +function requireFastContentTypeParse () { + if (hasRequiredFastContentTypeParse) return fastContentTypeParse; + hasRequiredFastContentTypeParse = 1; + + const NullObject = function NullObject () { }; + NullObject.prototype = Object.create(null); + + /** + * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1 + * + * parameter = token "=" ( token / quoted-string ) + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" + * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" + * / DIGIT / ALPHA + * ; any VCHAR, except delimiters + * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE + * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text + * obs-text = %x80-FF + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + */ + const paramRE = /; *([!#$%&'*+.^\w`|~-]+)=("(?:[\v\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\v\u0020-\u00ff])*"|[!#$%&'*+.^\w`|~-]+) */gu; + + /** + * RegExp to match quoted-pair in RFC 7230 sec 3.2.6 + * + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + * obs-text = %x80-FF + */ + const quotedPairRE = /\\([\v\u0020-\u00ff])/gu; + + /** + * RegExp to match type in RFC 7231 sec 3.1.1.1 + * + * media-type = type "/" subtype + * type = token + * subtype = token + */ + const mediaTypeRE = /^[!#$%&'*+.^\w|~-]+\/[!#$%&'*+.^\w|~-]+$/u; + + // default ContentType to prevent repeated object creation + const defaultContentType = { type: '', parameters: new NullObject() }; + Object.freeze(defaultContentType.parameters); + Object.freeze(defaultContentType); + + /** + * Parse media type to object. + * + * @param {string|object} header + * @return {Object} + * @public + */ + + function parse (header) { + if (typeof header !== 'string') { + throw new TypeError('argument header is required and must be a string') + } + + let index = header.indexOf(';'); + const type = index !== -1 + ? header.slice(0, index).trim() + : header.trim(); + + if (mediaTypeRE.test(type) === false) { + throw new TypeError('invalid media type') + } + + const result = { + type: type.toLowerCase(), + parameters: new NullObject() + }; + + // parse parameters + if (index === -1) { + return result + } + + let key; + let match; + let value; + + paramRE.lastIndex = index; + + while ((match = paramRE.exec(header))) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + + if (value[0] === '"') { + // remove quotes and escapes + value = value + .slice(1, value.length - 1); + + quotedPairRE.test(value) && (value = value.replace(quotedPairRE, '$1')); + } + + result.parameters[key] = value; + } + + if (index !== header.length) { + throw new TypeError('invalid parameter format') + } + + return result + } + + function safeParse (header) { + if (typeof header !== 'string') { + return defaultContentType + } + + let index = header.indexOf(';'); + const type = index !== -1 + ? header.slice(0, index).trim() + : header.trim(); + + if (mediaTypeRE.test(type) === false) { + return defaultContentType + } + + const result = { + type: type.toLowerCase(), + parameters: new NullObject() + }; + + // parse parameters + if (index === -1) { + return result + } + + let key; + let match; + let value; + + paramRE.lastIndex = index; + + while ((match = paramRE.exec(header))) { + if (match.index !== index) { + return defaultContentType + } + + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + + if (value[0] === '"') { + // remove quotes and escapes + value = value + .slice(1, value.length - 1); + + quotedPairRE.test(value) && (value = value.replace(quotedPairRE, '$1')); + } + + result.parameters[key] = value; + } + + if (index !== header.length) { + return defaultContentType + } + + return result + } + + fastContentTypeParse.default = { parse, safeParse }; + fastContentTypeParse.parse = parse; + fastContentTypeParse.safeParse = safeParse; + fastContentTypeParse.defaultContentType = defaultContentType; + return fastContentTypeParse; +} + +var fastContentTypeParseExports = requireFastContentTypeParse(); + +class RequestError extends Error { + name; + /** + * http status code + */ + status; + /** + * Request options that lead to the error. + */ + request; + /** + * Response object if a response was received + */ + response; + constructor(message, statusCode, options) { + super(message); + this.name = "HttpError"; + this.status = Number.parseInt(statusCode); + if (Number.isNaN(this.status)) { + this.status = 0; + } + if ("response" in options) { + this.response = options.response; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + /(? [ + name, + String(value) + ]) + ); + let fetchResponse; + try { + fetchResponse = await fetch(requestOptions.url, { + method: requestOptions.method, + body, + redirect: requestOptions.request?.redirect, + headers: requestHeaders, + signal: requestOptions.request?.signal, + // duplex must be set if request.body is ReadableStream or Async Iterables. + // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. + ...requestOptions.body && { duplex: "half" } + }); + } catch (error) { + let message = "Unknown Error"; + if (error instanceof Error) { + if (error.name === "AbortError") { + error.status = 500; + throw error; + } + message = error.message; + if (error.name === "TypeError" && "cause" in error) { + if (error.cause instanceof Error) { + message = error.cause.message; + } else if (typeof error.cause === "string") { + message = error.cause; + } + } + } + const requestError = new RequestError(message, 500, { + request: requestOptions + }); + requestError.cause = error; + throw requestError; + } + const status = fetchResponse.status; + const url = fetchResponse.url; + const responseHeaders = {}; + for (const [key, value] of fetchResponse.headers) { + responseHeaders[key] = value; + } + const octokitResponse = { + url, + status, + headers: responseHeaders, + data: "" + }; + if ("deprecation" in responseHeaders) { + const matches = responseHeaders.link && responseHeaders.link.match(/<([^<>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn( + `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` + ); + } + if (status === 204 || status === 205) { + return octokitResponse; + } + if (requestOptions.method === "HEAD") { + if (status < 400) { + return octokitResponse; + } + throw new RequestError(fetchResponse.statusText, status, { + response: octokitResponse, + request: requestOptions + }); + } + if (status === 304) { + octokitResponse.data = await getResponseData(fetchResponse); + throw new RequestError("Not modified", status, { + response: octokitResponse, + request: requestOptions + }); + } + if (status >= 400) { + octokitResponse.data = await getResponseData(fetchResponse); + throw new RequestError(toErrorMessage(octokitResponse.data), status, { + response: octokitResponse, + request: requestOptions + }); + } + octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body; + return octokitResponse; +} +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (!contentType) { + return response.text().catch(() => ""); + } + const mimetype = fastContentTypeParseExports.safeParse(contentType); + if (isJSONResponse(mimetype)) { + let text = ""; + try { + text = await response.text(); + return JSON.parse(text); + } catch (err) { + return text; + } + } else if (mimetype.type.startsWith("text/") || mimetype.parameters.charset?.toLowerCase() === "utf-8") { + return response.text().catch(() => ""); + } else { + return response.arrayBuffer().catch(() => new ArrayBuffer(0)); + } +} +function isJSONResponse(mimetype) { + return mimetype.type === "application/json" || mimetype.type === "application/scim+json"; +} +function toErrorMessage(data) { + if (typeof data === "string") { + return data; + } + if (data instanceof ArrayBuffer) { + return "Unknown error"; + } + if ("message" in data) { + const suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : ""; + return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v) => JSON.stringify(v)).join(", ")}${suffix}` : `${data.message}${suffix}`; + } + return `Unknown error: ${JSON.stringify(data)}`; +} + +// pkg/dist-src/with-defaults.js +function withDefaults$1(oldEndpoint, newDefaults) { + const endpoint2 = oldEndpoint.defaults(newDefaults); + const newApi = function(route, parameters) { + const endpointOptions = endpoint2.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint2.parse(endpointOptions)); + } + const request2 = (route2, parameters2) => { + return fetchWrapper( + endpoint2.parse(endpoint2.merge(route2, parameters2)) + ); + }; + Object.assign(request2, { + endpoint: endpoint2, + defaults: withDefaults$1.bind(null, endpoint2) + }); + return endpointOptions.request.hook(request2, endpointOptions); + }; + return Object.assign(newApi, { + endpoint: endpoint2, + defaults: withDefaults$1.bind(null, endpoint2) + }); +} + +// pkg/dist-src/index.js +var request = withDefaults$1(endpoint, defaults_default); + +// pkg/dist-src/index.js + +// pkg/dist-src/version.js +var VERSION$1 = "0.0.0-development"; + +// pkg/dist-src/error.js +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors: +` + data.errors.map((e) => ` - ${e.message}`).join("\n"); +} +var GraphqlResponseError = class extends Error { + constructor(request2, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request2; + this.headers = headers; + this.response = response; + this.errors = response.errors; + this.data = response.data; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + name = "GraphqlResponseError"; + errors; + data; +}; + +// pkg/dist-src/graphql.js +var NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType", + "operationName" +]; +var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request2, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject( + new Error(`[@octokit/graphql] "query" cannot be used as variable name`) + ); + } + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue; + return Promise.reject( + new Error( + `[@octokit/graphql] "${key}" cannot be used as variable name` + ) + ); + } + } + const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; + const requestOptions = Object.keys( + parsedOptions + ).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, {}); + const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + return request2(requestOptions).then((response) => { + if (response.data.errors) { + const headers = {}; + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + throw new GraphqlResponseError( + requestOptions, + headers, + response.data + ); + } + return response.data.data; + }); +} + +// pkg/dist-src/with-defaults.js +function withDefaults(request2, newDefaults) { + const newRequest = request2.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: newRequest.endpoint + }); +} + +// pkg/dist-src/index.js +withDefaults(request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION$1} ${getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +// pkg/dist-src/is-jwt.js +var b64url = "(?:[a-zA-Z0-9_-]+)"; +var sep = "\\."; +var jwtRE = new RegExp(`^${b64url}${sep}${b64url}${sep}${b64url}$`); +var isJWT = jwtRE.test.bind(jwtRE); + +// pkg/dist-src/auth.js +async function auth(token) { + const isApp = isJWT(token); + const isInstallation = token.startsWith("v1.") || token.startsWith("ghs_"); + const isUserToServer = token.startsWith("ghu_"); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token, + tokenType + }; +} + +// pkg/dist-src/with-authorization-prefix.js +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; +} + +// pkg/dist-src/hook.js +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge( + route, + parameters + ); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +// pkg/dist-src/index.js +var createTokenAuth = function createTokenAuth2(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + if (typeof token !== "string") { + throw new Error( + "[@octokit/auth-token] Token passed to createTokenAuth is not a string" + ); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; + +const VERSION = "6.1.4"; + +const noop = () => { +}; +const consoleWarn = console.warn.bind(console); +const consoleError = console.error.bind(console); +const userAgentTrail = `octokit-core.js/${VERSION} ${getUserAgent()}`; +class Octokit { + static VERSION = VERSION; + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + super( + Object.assign( + {}, + defaults, + options, + options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null + ) + ); + } + }; + return OctokitWithDefaults; + } + static plugins = []; + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin(...newPlugins) { + const currentPlugins = this.plugins; + const NewOctokit = class extends this { + static plugins = currentPlugins.concat( + newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) + ); + }; + return NewOctokit; + } + constructor(options = {}) { + const hook = new Hook.Collection(); + const requestDefaults = { + baseUrl: request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; + requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + this.request = request.defaults(requestDefaults); + this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign( + { + debug: noop, + info: noop, + warn: consoleWarn, + error: consoleError + }, + options.log + ); + this.hook = hook; + if (!options.authStrategy) { + if (!options.auth) { + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + const auth = createTokenAuth(options.auth); + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy( + Object.assign( + { + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions + }, + options.auth + ) + ); + hook.wrap("request", auth.hook); + this.auth = auth; + } + const classConstructor = this.constructor; + for (let i = 0; i < classConstructor.plugins.length; ++i) { + Object.assign(this, classConstructor.plugins[i](this, options)); + } + } + // assigned during constructor + request; + graphql; + log; + hook; + // TODO: type `octokit.auth` based on passed options.authStrategy + auth; +} + // Set up Octokit for github.com only and in the same way as @actions/github (see https://git.io/Jy9YP) const baseUrl = 'https://api.github.com'; Octokit.defaults({ diff --git a/dist/main.js b/dist/main.js index a484090..7ee7751 100644 --- a/dist/main.js +++ b/dist/main.js @@ -7378,11 +7378,11 @@ function requireBody () { return body$1; } -var request$2; +var request$3; var hasRequiredRequest$1; function requireRequest$1 () { - if (hasRequiredRequest$1) return request$2; + if (hasRequiredRequest$1) return request$3; hasRequiredRequest$1 = 1; const { @@ -7881,8 +7881,8 @@ function requireRequest$1 () { } } - request$2 = Request; - return request$2; + request$3 = Request; + return request$3; } var dispatcher; @@ -16228,11 +16228,11 @@ function requireResponse () { /* globals AbortController */ -var request$1; +var request$2; var hasRequiredRequest; function requireRequest () { - if (hasRequiredRequest) return request$1; + if (hasRequiredRequest) return request$2; hasRequiredRequest = 1; const { extractBody, mixinBody, cloneBody } = requireBody(); @@ -17176,8 +17176,8 @@ function requireRequest () { } ]); - request$1 = { Request, makeRequest }; - return request$1; + request$2 = { Request, makeRequest }; + return request$2; } var fetch_1; @@ -21801,11 +21801,11 @@ function requireUtil$2 () { return util$2; } -var parse$2; +var parse$3; var hasRequiredParse$1; function requireParse$1 () { - if (hasRequiredParse$1) return parse$2; + if (hasRequiredParse$1) return parse$3; hasRequiredParse$1 = 1; const { maxNameValuePairSize, maxAttributeValueSize } = requireConstants$3(); @@ -22119,11 +22119,11 @@ function requireParse$1 () { return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) } - parse$2 = { + parse$3 = { parseSetCookie, parseUnparsedAttributes }; - return parse$2; + return parse$3; } var cookies; @@ -25127,14 +25127,14 @@ function requireLib () { return lib; } -var auth$1 = {}; +var auth$2 = {}; var hasRequiredAuth; function requireAuth () { - if (hasRequiredAuth) return auth$1; + if (hasRequiredAuth) return auth$2; hasRequiredAuth = 1; - var __awaiter = (auth$1 && auth$1.__awaiter) || function (thisArg, _arguments, P, generator) { + var __awaiter = (auth$2 && auth$2.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } @@ -25143,8 +25143,8 @@ function requireAuth () { step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; - Object.defineProperty(auth$1, "__esModule", { value: true }); - auth$1.PersonalAccessTokenCredentialHandler = auth$1.BearerCredentialHandler = auth$1.BasicCredentialHandler = void 0; + Object.defineProperty(auth$2, "__esModule", { value: true }); + auth$2.PersonalAccessTokenCredentialHandler = auth$2.BearerCredentialHandler = auth$2.BasicCredentialHandler = void 0; class BasicCredentialHandler { constructor(username, password) { this.username = username; @@ -25166,7 +25166,7 @@ function requireAuth () { }); } } - auth$1.BasicCredentialHandler = BasicCredentialHandler; + auth$2.BasicCredentialHandler = BasicCredentialHandler; class BearerCredentialHandler { constructor(token) { this.token = token; @@ -25189,7 +25189,7 @@ function requireAuth () { }); } } - auth$1.BearerCredentialHandler = BearerCredentialHandler; + auth$2.BearerCredentialHandler = BearerCredentialHandler; class PersonalAccessTokenCredentialHandler { constructor(token) { this.token = token; @@ -25212,9 +25212,9 @@ function requireAuth () { }); } } - auth$1.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; + auth$2.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; - return auth$1; + return auth$2; } var hasRequiredOidcUtils; @@ -30169,7 +30169,7 @@ function requireUtils$1 () { return utils; } -function getUserAgent() { +function getUserAgent$1() { if (typeof navigator === "object" && "userAgent" in navigator) { return navigator.userAgent; } @@ -30371,22 +30371,22 @@ function requireBeforeAfterHook () { var beforeAfterHookExports = requireBeforeAfterHook(); -const VERSION$5 = "9.0.6"; +const VERSION$9 = "9.0.6"; -const userAgent$1 = `octokit-endpoint.js/${VERSION$5} ${getUserAgent()}`; -const DEFAULTS = { +const userAgent$2 = `octokit-endpoint.js/${VERSION$9} ${getUserAgent$1()}`; +const DEFAULTS$1 = { method: "GET", baseUrl: "https://api.github.com", headers: { accept: "application/vnd.github.v3+json", - "user-agent": userAgent$1 + "user-agent": userAgent$2 }, mediaType: { format: "" } }; -function lowercaseKeys(object) { +function lowercaseKeys$1(object) { if (!object) { return {}; } @@ -30396,7 +30396,7 @@ function lowercaseKeys(object) { }, {}); } -function isPlainObject$1(value) { +function isPlainObject$3(value) { if (typeof value !== "object" || value === null) return false; if (Object.prototype.toString.call(value) !== "[object Object]") @@ -30408,14 +30408,14 @@ function isPlainObject$1(value) { return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } -function mergeDeep(defaults, options) { +function mergeDeep$1(defaults, options) { const result = Object.assign({}, defaults); Object.keys(options).forEach((key) => { - if (isPlainObject$1(options[key])) { + if (isPlainObject$3(options[key])) { if (!(key in defaults)) Object.assign(result, { [key]: options[key] }); else - result[key] = mergeDeep(defaults[key], options[key]); + result[key] = mergeDeep$1(defaults[key], options[key]); } else { Object.assign(result, { [key]: options[key] }); } @@ -30423,7 +30423,7 @@ function mergeDeep(defaults, options) { return result; } -function removeUndefinedProperties(obj) { +function removeUndefinedProperties$1(obj) { for (const key in obj) { if (obj[key] === void 0) { delete obj[key]; @@ -30432,17 +30432,17 @@ function removeUndefinedProperties(obj) { return obj; } -function merge(defaults, route, options) { +function merge$1(defaults, route, options) { if (typeof route === "string") { let [method, url] = route.split(" "); options = Object.assign(url ? { method, url } : { url: method }, options); } else { options = Object.assign({}, route); } - options.headers = lowercaseKeys(options.headers); - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); + options.headers = lowercaseKeys$1(options.headers); + removeUndefinedProperties$1(options); + removeUndefinedProperties$1(options.headers); + const mergedOptions = mergeDeep$1(defaults || {}, options); if (options.url === "/graphql") { if (defaults && defaults.mediaType.previews?.length) { mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( @@ -30454,7 +30454,7 @@ function merge(defaults, route, options) { return mergedOptions; } -function addQueryParameters(url, parameters) { +function addQueryParameters$1(url, parameters) { const separator = /\?/.test(url) ? "&" : "?"; const names = Object.keys(parameters); if (names.length === 0) { @@ -30468,19 +30468,19 @@ function addQueryParameters(url, parameters) { }).join("&"); } -const urlVariableRegex = /\{[^{}}]+\}/g; -function removeNonChars(variableName) { +const urlVariableRegex$1 = /\{[^{}}]+\}/g; +function removeNonChars$1(variableName) { return variableName.replace(/(?:^\W+)|(?:(? a.concat(b), []); + return matches.map(removeNonChars$1).reduce((a, b) => a.concat(b), []); } -function omit(object, keysToOmit) { +function omit$1(object, keysToOmit) { const result = { __proto__: null }; for (const key of Object.keys(object)) { if (keysToOmit.indexOf(key) === -1) { @@ -30490,7 +30490,7 @@ function omit(object, keysToOmit) { return result; } -function encodeReserved(str) { +function encodeReserved$1(str) { return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { if (!/%[0-9A-Fa-f]/.test(part)) { part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); @@ -30498,67 +30498,67 @@ function encodeReserved(str) { return part; }).join(""); } -function encodeUnreserved(str) { +function encodeUnreserved$1(str) { return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { return "%" + c.charCodeAt(0).toString(16).toUpperCase(); }); } -function encodeValue(operator, value, key) { - value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); +function encodeValue$1(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved$1(value) : encodeUnreserved$1(value); if (key) { - return encodeUnreserved(key) + "=" + value; + return encodeUnreserved$1(key) + "=" + value; } else { return value; } } -function isDefined(value) { +function isDefined$1(value) { return value !== void 0 && value !== null; } -function isKeyOperator(operator) { +function isKeyOperator$1(operator) { return operator === ";" || operator === "&" || operator === "?"; } -function getValues(context, operator, key, modifier) { +function getValues$1(context, operator, key, modifier) { var value = context[key], result = []; - if (isDefined(value) && value !== "") { + if (isDefined$1(value) && value !== "") { if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { value = value.toString(); if (modifier && modifier !== "*") { value = value.substring(0, parseInt(modifier, 10)); } result.push( - encodeValue(operator, value, isKeyOperator(operator) ? key : "") + encodeValue$1(operator, value, isKeyOperator$1(operator) ? key : "") ); } else { if (modifier === "*") { if (Array.isArray(value)) { - value.filter(isDefined).forEach(function(value2) { + value.filter(isDefined$1).forEach(function(value2) { result.push( - encodeValue(operator, value2, isKeyOperator(operator) ? key : "") + encodeValue$1(operator, value2, isKeyOperator$1(operator) ? key : "") ); }); } else { Object.keys(value).forEach(function(k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); + if (isDefined$1(value[k])) { + result.push(encodeValue$1(operator, value[k], k)); } }); } } else { const tmp = []; if (Array.isArray(value)) { - value.filter(isDefined).forEach(function(value2) { - tmp.push(encodeValue(operator, value2)); + value.filter(isDefined$1).forEach(function(value2) { + tmp.push(encodeValue$1(operator, value2)); }); } else { Object.keys(value).forEach(function(k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); + if (isDefined$1(value[k])) { + tmp.push(encodeUnreserved$1(k)); + tmp.push(encodeValue$1(operator, value[k].toString())); } }); } - if (isKeyOperator(operator)) { - result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + if (isKeyOperator$1(operator)) { + result.push(encodeUnreserved$1(key) + "=" + tmp.join(",")); } else if (tmp.length !== 0) { result.push(tmp.join(",")); } @@ -30566,23 +30566,23 @@ function getValues(context, operator, key, modifier) { } } else { if (operator === ";") { - if (isDefined(value)) { - result.push(encodeUnreserved(key)); + if (isDefined$1(value)) { + result.push(encodeUnreserved$1(key)); } } else if (value === "" && (operator === "&" || operator === "?")) { - result.push(encodeUnreserved(key) + "="); + result.push(encodeUnreserved$1(key) + "="); } else if (value === "") { result.push(""); } } return result; } -function parseUrl(template) { +function parseUrl$1(template) { return { - expand: expand.bind(null, template) + expand: expand$1.bind(null, template) }; } -function expand(template, context) { +function expand$1(template, context) { var operators = ["+", "#", ".", "/", ";", "?", "&"]; template = template.replace( /\{([^\{\}]+)\}|([^\{\}]+)/g, @@ -30596,7 +30596,7 @@ function expand(template, context) { } expression.split(/,/g).forEach(function(variable) { var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); - values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + values.push(getValues$1(context, operator, tmp[1], tmp[2] || tmp[3])); }); if (operator && operator !== "+") { var separator = ","; @@ -30610,7 +30610,7 @@ function expand(template, context) { return values.join(","); } } else { - return encodeReserved(literal); + return encodeReserved$1(literal); } } ); @@ -30621,12 +30621,12 @@ function expand(template, context) { } } -function parse$1(options) { +function parse$2(options) { let method = options.method.toUpperCase(); let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); let headers = Object.assign({}, options.headers); let body; - let parameters = omit(options, [ + let parameters = omit$1(options, [ "method", "baseUrl", "url", @@ -30634,13 +30634,13 @@ function parse$1(options) { "request", "mediaType" ]); - const urlVariableNames = extractUrlVariableNames(url); - url = parseUrl(url).expand(parameters); + const urlVariableNames = extractUrlVariableNames$1(url); + url = parseUrl$1(url).expand(parameters); if (!/^http/.test(url)) { url = options.baseUrl + url; } const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); - const remainingParameters = omit(parameters, omittedParameters); + const remainingParameters = omit$1(parameters, omittedParameters); const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); if (!isBinaryRequest) { if (options.mediaType.format) { @@ -30662,7 +30662,7 @@ function parse$1(options) { } } if (["GET", "HEAD"].includes(method)) { - url = addQueryParameters(url, remainingParameters); + url = addQueryParameters$1(url, remainingParameters); } else { if ("data" in remainingParameters) { body = remainingParameters.data; @@ -30685,26 +30685,26 @@ function parse$1(options) { ); } -function endpointWithDefaults(defaults, route, options) { - return parse$1(merge(defaults, route, options)); +function endpointWithDefaults$1(defaults, route, options) { + return parse$2(merge$1(defaults, route, options)); } -function withDefaults$2(oldDefaults, newDefaults) { - const DEFAULTS = merge(oldDefaults, newDefaults); - const endpoint = endpointWithDefaults.bind(null, DEFAULTS); +function withDefaults$5(oldDefaults, newDefaults) { + const DEFAULTS = merge$1(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults$1.bind(null, DEFAULTS); return Object.assign(endpoint, { DEFAULTS, - defaults: withDefaults$2.bind(null, DEFAULTS), - merge: merge.bind(null, DEFAULTS), - parse: parse$1 + defaults: withDefaults$5.bind(null, DEFAULTS), + merge: merge$1.bind(null, DEFAULTS), + parse: parse$2 }); } -const endpoint = withDefaults$2(null, DEFAULTS); +const endpoint$1 = withDefaults$5(null, DEFAULTS$1); -const VERSION$4 = "8.4.1"; +const VERSION$8 = "8.4.1"; -function isPlainObject(value) { +function isPlainObject$2(value) { if (typeof value !== "object" || value === null) return false; if (Object.prototype.toString.call(value) !== "[object Object]") @@ -30830,7 +30830,7 @@ var once = /*@__PURE__*/getDefaultExportFromCjs(onceExports); const logOnceCode = once((deprecation) => console.warn(deprecation)); const logOnceHeaders = once((deprecation) => console.warn(deprecation)); -class RequestError extends Error { +let RequestError$1 = class RequestError extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -30878,16 +30878,16 @@ class RequestError extends Error { } }); } -} +}; function getBufferResponse(response) { return response.arrayBuffer(); } -function fetchWrapper(requestOptions) { +function fetchWrapper$1(requestOptions) { const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false; - if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + if (isPlainObject$2(requestOptions.body) || Array.isArray(requestOptions.body)) { requestOptions.body = JSON.stringify(requestOptions.body); } let headers = {}; @@ -30931,7 +30931,7 @@ function fetchWrapper(requestOptions) { if (status < 400) { return; } - throw new RequestError(response.statusText, status, { + throw new RequestError$1(response.statusText, status, { response: { url, status, @@ -30942,19 +30942,19 @@ function fetchWrapper(requestOptions) { }); } if (status === 304) { - throw new RequestError("Not modified", status, { + throw new RequestError$1("Not modified", status, { response: { url, status, headers, - data: await getResponseData(response) + data: await getResponseData$1(response) }, request: requestOptions }); } if (status >= 400) { - const data = await getResponseData(response); - const error = new RequestError(toErrorMessage(data), status, { + const data = await getResponseData$1(response); + const error = new RequestError$1(toErrorMessage$1(data), status, { response: { url, status, @@ -30965,7 +30965,7 @@ function fetchWrapper(requestOptions) { }); throw error; } - return parseSuccessResponseBody ? await getResponseData(response) : response.body; + return parseSuccessResponseBody ? await getResponseData$1(response) : response.body; }).then((data) => { return { status, @@ -30974,7 +30974,7 @@ function fetchWrapper(requestOptions) { data }; }).catch((error) => { - if (error instanceof RequestError) + if (error instanceof RequestError$1) throw error; else if (error.name === "AbortError") throw error; @@ -30986,12 +30986,12 @@ function fetchWrapper(requestOptions) { message = error.cause; } } - throw new RequestError(message, 500, { + throw new RequestError$1(message, 500, { request: requestOptions }); }); } -async function getResponseData(response) { +async function getResponseData$1(response) { const contentType = response.headers.get("content-type"); if (/application\/json/.test(contentType)) { return response.json().catch(() => response.text()).catch(() => ""); @@ -31001,7 +31001,7 @@ async function getResponseData(response) { } return getBufferResponse(response); } -function toErrorMessage(data) { +function toErrorMessage$1(data) { if (typeof data === "string") return data; let suffix; @@ -31019,49 +31019,49 @@ function toErrorMessage(data) { return `Unknown error: ${JSON.stringify(data)}`; } -function withDefaults$1(oldEndpoint, newDefaults) { +function withDefaults$4(oldEndpoint, newDefaults) { const endpoint = oldEndpoint.defaults(newDefaults); const newApi = function(route, parameters) { const endpointOptions = endpoint.merge(route, parameters); if (!endpointOptions.request || !endpointOptions.request.hook) { - return fetchWrapper(endpoint.parse(endpointOptions)); + return fetchWrapper$1(endpoint.parse(endpointOptions)); } const request = (route2, parameters2) => { - return fetchWrapper( + return fetchWrapper$1( endpoint.parse(endpoint.merge(route2, parameters2)) ); }; Object.assign(request, { endpoint, - defaults: withDefaults$1.bind(null, endpoint) + defaults: withDefaults$4.bind(null, endpoint) }); return endpointOptions.request.hook(request, endpointOptions); }; return Object.assign(newApi, { endpoint, - defaults: withDefaults$1.bind(null, endpoint) + defaults: withDefaults$4.bind(null, endpoint) }); } -const request = withDefaults$1(endpoint, { +const request$1 = withDefaults$4(endpoint$1, { headers: { - "user-agent": `octokit-request.js/${VERSION$4} ${getUserAgent()}` + "user-agent": `octokit-request.js/${VERSION$8} ${getUserAgent$1()}` } }); // pkg/dist-src/index.js // pkg/dist-src/version.js -var VERSION$3 = "7.1.1"; +var VERSION$7 = "7.1.1"; // pkg/dist-src/error.js -function _buildMessageForResponseErrors(data) { +function _buildMessageForResponseErrors$1(data) { return `Request failed due to following response errors: ` + data.errors.map((e) => ` - ${e.message}`).join("\n"); } -var GraphqlResponseError = class extends Error { +var GraphqlResponseError$1 = class GraphqlResponseError extends Error { constructor(request2, headers, response) { - super(_buildMessageForResponseErrors(response)); + super(_buildMessageForResponseErrors$1(response)); this.request = request2; this.headers = headers; this.response = response; @@ -31075,7 +31075,7 @@ var GraphqlResponseError = class extends Error { }; // pkg/dist-src/graphql.js -var NON_VARIABLE_OPTIONS = [ +var NON_VARIABLE_OPTIONS$1 = [ "method", "baseUrl", "url", @@ -31084,9 +31084,9 @@ var NON_VARIABLE_OPTIONS = [ "query", "mediaType" ]; -var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request2, query, options) { +var FORBIDDEN_VARIABLE_OPTIONS$1 = ["query", "method", "url"]; +var GHES_V3_SUFFIX_REGEX$1 = /\/api\/v3\/?$/; +function graphql$1(request2, query, options) { if (options) { if (typeof query === "string" && "query" in options) { return Promise.reject( @@ -31094,7 +31094,7 @@ function graphql(request2, query, options) { ); } for (const key in options) { - if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue; + if (!FORBIDDEN_VARIABLE_OPTIONS$1.includes(key)) continue; return Promise.reject( new Error( `[@octokit/graphql] "${key}" cannot be used as variable name` @@ -31106,7 +31106,7 @@ function graphql(request2, query, options) { const requestOptions = Object.keys( parsedOptions ).reduce((result, key) => { - if (NON_VARIABLE_OPTIONS.includes(key)) { + if (NON_VARIABLE_OPTIONS$1.includes(key)) { result[key] = parsedOptions[key]; return result; } @@ -31117,8 +31117,8 @@ function graphql(request2, query, options) { return result; }, {}); const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + if (GHES_V3_SUFFIX_REGEX$1.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX$1, "/api/graphql"); } return request2(requestOptions).then((response) => { if (response.data.errors) { @@ -31126,7 +31126,7 @@ function graphql(request2, query, options) { for (const key of Object.keys(response.headers)) { headers[key] = response.headers[key]; } - throw new GraphqlResponseError( + throw new GraphqlResponseError$1( requestOptions, headers, response.data @@ -31137,27 +31137,27 @@ function graphql(request2, query, options) { } // pkg/dist-src/with-defaults.js -function withDefaults(request2, newDefaults) { +function withDefaults$3(request2, newDefaults) { const newRequest = request2.defaults(newDefaults); const newApi = (query, options) => { - return graphql(newRequest, query, options); + return graphql$1(newRequest, query, options); }; return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), + defaults: withDefaults$3.bind(null, newRequest), endpoint: newRequest.endpoint }); } // pkg/dist-src/index.js -withDefaults(request, { +withDefaults$3(request$1, { headers: { - "user-agent": `octokit-graphql.js/${VERSION$3} ${getUserAgent()}` + "user-agent": `octokit-graphql.js/${VERSION$7} ${getUserAgent$1()}` }, method: "POST", url: "/graphql" }); -function withCustomRequest(customRequest) { - return withDefaults(customRequest, { +function withCustomRequest$1(customRequest) { + return withDefaults$3(customRequest, { method: "POST", url: "/graphql" }); @@ -31166,7 +31166,7 @@ function withCustomRequest(customRequest) { const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; const REGEX_IS_INSTALLATION = /^ghs_/; const REGEX_IS_USER_TO_SERVER = /^ghu_/; -async function auth(token) { +async function auth$1(token) { const isApp = token.split(/\./).length === 3; const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); @@ -31178,23 +31178,23 @@ async function auth(token) { }; } -function withAuthorizationPrefix(token) { +function withAuthorizationPrefix$1(token) { if (token.split(/\./).length === 3) { return `bearer ${token}`; } return `token ${token}`; } -async function hook(token, request, route, parameters) { +async function hook$1(token, request, route, parameters) { const endpoint = request.endpoint.merge( route, parameters ); - endpoint.headers.authorization = withAuthorizationPrefix(token); + endpoint.headers.authorization = withAuthorizationPrefix$1(token); return request(endpoint); } -const createTokenAuth = function createTokenAuth2(token) { +const createTokenAuth$1 = function createTokenAuth2(token) { if (!token) { throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); } @@ -31204,25 +31204,25 @@ const createTokenAuth = function createTokenAuth2(token) { ); } token = token.replace(/^(token|bearer) +/i, ""); - return Object.assign(auth.bind(null, token), { - hook: hook.bind(null, token) + return Object.assign(auth$1.bind(null, token), { + hook: hook$1.bind(null, token) }); }; // pkg/dist-src/index.js // pkg/dist-src/version.js -var VERSION$2 = "5.2.0"; +var VERSION$6 = "5.2.0"; // pkg/dist-src/index.js -var noop = () => { +var noop$1 = () => { }; -var consoleWarn = console.warn.bind(console); -var consoleError = console.error.bind(console); -var userAgentTrail = `octokit-core.js/${VERSION$2} ${getUserAgent()}`; -var Octokit = class { +var consoleWarn$1 = console.warn.bind(console); +var consoleError$1 = console.error.bind(console); +var userAgentTrail$1 = `octokit-core.js/${VERSION$6} ${getUserAgent$1()}`; +var Octokit$1 = class Octokit { static { - this.VERSION = VERSION$2; + this.VERSION = VERSION$6; } static defaults(defaults) { const OctokitWithDefaults = class extends this { @@ -31269,7 +31269,7 @@ var Octokit = class { constructor(options = {}) { const hook = new beforeAfterHookExports.Collection(); const requestDefaults = { - baseUrl: request.endpoint.DEFAULTS.baseUrl, + baseUrl: request$1.endpoint.DEFAULTS.baseUrl, headers: {}, request: Object.assign({}, options.request, { // @ts-ignore internal usage only, no need to type @@ -31280,7 +31280,7 @@ var Octokit = class { format: "" } }; - requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; + requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail$1}` : userAgentTrail$1; if (options.baseUrl) { requestDefaults.baseUrl = options.baseUrl; } @@ -31290,14 +31290,14 @@ var Octokit = class { if (options.timeZone) { requestDefaults.headers["time-zone"] = options.timeZone; } - this.request = request.defaults(requestDefaults); - this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.request = request$1.defaults(requestDefaults); + this.graphql = withCustomRequest$1(this.request).defaults(requestDefaults); this.log = Object.assign( { - debug: noop, - info: noop, - warn: consoleWarn, - error: consoleError + debug: noop$1, + info: noop$1, + warn: consoleWarn$1, + error: consoleError$1 }, options.log ); @@ -31308,7 +31308,7 @@ var Octokit = class { type: "unauthenticated" }); } else { - const auth = createTokenAuth(options.auth); + const auth = createTokenAuth$1(options.auth); hook.wrap("request", auth.hook); this.auth = auth; } @@ -31342,12 +31342,12 @@ var Octokit = class { var distWeb$1 = /*#__PURE__*/Object.freeze({ __proto__: null, - Octokit: Octokit + Octokit: Octokit$1 }); var require$$2$1 = /*@__PURE__*/getAugmentedNamespace(distWeb$1); -const VERSION$1 = "10.4.1"; +const VERSION$5 = "10.4.1"; const Endpoints = { actions: { @@ -33467,7 +33467,7 @@ function restEndpointMethods(octokit) { rest: api }; } -restEndpointMethods.VERSION = VERSION$1; +restEndpointMethods.VERSION = VERSION$5; function legacyRestEndpointMethods(octokit) { const api = endpointsToMethods(octokit); return { @@ -33475,7 +33475,7 @@ function legacyRestEndpointMethods(octokit) { rest: api }; } -legacyRestEndpointMethods.VERSION = VERSION$1; +legacyRestEndpointMethods.VERSION = VERSION$5; var distSrc = /*#__PURE__*/Object.freeze({ __proto__: null, @@ -33486,7 +33486,7 @@ var distSrc = /*#__PURE__*/Object.freeze({ var require$$3 = /*@__PURE__*/getAugmentedNamespace(distSrc); // pkg/dist-src/version.js -var VERSION = "9.2.2"; +var VERSION$4 = "9.2.2"; // pkg/dist-src/normalize-paginated-list-response.js function normalizePaginatedListResponse(response) { @@ -33846,7 +33846,7 @@ function paginateRest(octokit) { }) }; } -paginateRest.VERSION = VERSION; +paginateRest.VERSION = VERSION$4; var distWeb = /*#__PURE__*/Object.freeze({ __proto__: null, @@ -36550,6 +36550,1191 @@ var toolCacheExports = requireToolCache(); var execExports = requireExec(); +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + + if (typeof process === "object" && process.version !== undefined) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${ + process.arch + })`; + } + + return ""; +} + +// @ts-check + +function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } + + if (!options) { + options = {}; + } + + if (Array.isArray(name)) { + return name.reverse().reduce((callback, name) => { + return register.bind(null, state, name, callback, options); + }, method)(); + } + + return Promise.resolve().then(() => { + if (!state.registry[name]) { + return method(options); + } + + return state.registry[name].reduce((method, registered) => { + return registered.hook.bind(null, method, options); + }, method)(); + }); +} + +// @ts-check + +function addHook(state, kind, name, hook) { + const orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } + + if (kind === "before") { + hook = (method, options) => { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } + + if (kind === "after") { + hook = (method, options) => { + let result; + return Promise.resolve() + .then(method.bind(null, options)) + .then((result_) => { + result = result_; + return orig(result, options); + }) + .then(() => { + return result; + }); + }; + } + + if (kind === "error") { + hook = (method, options) => { + return Promise.resolve() + .then(method.bind(null, options)) + .catch((error) => { + return orig(error, options); + }); + }; + } + + state.registry[name].push({ + hook: hook, + orig: orig, + }); +} + +// @ts-check + +function removeHook(state, name, method) { + if (!state.registry[name]) { + return; + } + + const index = state.registry[name] + .map((registered) => { + return registered.orig; + }) + .indexOf(method); + + if (index === -1) { + return; + } + + state.registry[name].splice(index, 1); +} + +// @ts-check + + +// bind with array of arguments: https://stackoverflow.com/a/21792913 +const bind = Function.bind; +const bindable = bind.bind(bind); + +function bindApi(hook, state, name) { + const removeHookRef = bindable(removeHook, null).apply( + null, + [state] + ); + hook.api = { remove: removeHookRef }; + hook.remove = removeHookRef; + ["before", "error", "after", "wrap"].forEach((kind) => { + const args = [state, kind]; + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args); + }); +} + +function Collection() { + const state = { + registry: {}, + }; + + const hook = register.bind(null, state); + bindApi(hook, state); + + return hook; +} + +var Hook = { Collection }; + +// pkg/dist-src/defaults.js + +// pkg/dist-src/version.js +var VERSION$3 = "0.0.0-development"; + +// pkg/dist-src/defaults.js +var userAgent$1 = `octokit-endpoint.js/${VERSION$3} ${getUserAgent()}`; +var DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent$1 + }, + mediaType: { + format: "" + } +}; + +// pkg/dist-src/util/lowercase-keys.js +function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +// pkg/dist-src/util/is-plain-object.js +function isPlainObject$1(value) { + if (typeof value !== "object" || value === null) return false; + if (Object.prototype.toString.call(value) !== "[object Object]") return false; + const proto = Object.getPrototypeOf(value); + if (proto === null) return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); +} + +// pkg/dist-src/util/merge-deep.js +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject$1(options[key])) { + if (!(key in defaults)) Object.assign(result, { [key]: options[key] }); + else result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} + +// pkg/dist-src/util/remove-undefined-properties.js +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === void 0) { + delete obj[key]; + } + } + return obj; +} + +// pkg/dist-src/merge.js +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } else { + options = Object.assign({}, route); + } + options.headers = lowercaseKeys(options.headers); + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + if (options.url === "/graphql") { + if (defaults && defaults.mediaType.previews?.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( + (preview) => !mergedOptions.mediaType.previews.includes(preview) + ).concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); + } + return mergedOptions; +} + +// pkg/dist-src/util/add-query-parameters.js +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return url + separator + names.map((name) => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +// pkg/dist-src/util/extract-url-variable-names.js +var urlVariableRegex = /\{[^{}}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/(?:^\W+)|(?:(? a.concat(b), []); +} + +// pkg/dist-src/util/omit.js +function omit(object, keysToOmit) { + const result = { __proto__: null }; + for (const key of Object.keys(object)) { + if (keysToOmit.indexOf(key) === -1) { + result[key] = object[key]; + } + } + return result; +} + +// pkg/dist-src/util/url-template.js +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }).join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} +function isDefined(value) { + return value !== void 0 && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push( + encodeValue(operator, value, isKeyOperator(operator) ? key : "") + ); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + result.push( + encodeValue(operator, value2, isKeyOperator(operator) ? key : "") + ); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + tmp.push(encodeValue(operator, value2)); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + return result; +} +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + template = template.replace( + /\{([^\{\}]+)\}|([^\{\}]+)/g, + function(_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function(variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + } + ); + if (template === "/") { + return template; + } else { + return template.replace(/\/$/, ""); + } +} + +// pkg/dist-src/parse.js +function parse$1(options) { + let method = options.method.toUpperCase(); + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType" + ]); + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) { + headers.accept = headers.accept.split(/,/).map( + (format) => format.replace( + /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, + `application/vnd$1$2.${options.mediaType.format}` + ) + ).join(","); + } + if (url.endsWith("/graphql")) { + if (options.mediaType.previews?.length) { + const previewsFromAcceptHeader = headers.accept.match(/(? { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } + } + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + } + } + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + return Object.assign( + { method, url, headers }, + typeof body !== "undefined" ? { body } : null, + options.request ? { request: options.request } : null + ); +} + +// pkg/dist-src/endpoint-with-defaults.js +function endpointWithDefaults(defaults, route, options) { + return parse$1(merge(defaults, route, options)); +} + +// pkg/dist-src/with-defaults.js +function withDefaults$2(oldDefaults, newDefaults) { + const DEFAULTS2 = merge(oldDefaults, newDefaults); + const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); + return Object.assign(endpoint2, { + DEFAULTS: DEFAULTS2, + defaults: withDefaults$2.bind(null, DEFAULTS2), + merge: merge.bind(null, DEFAULTS2), + parse: parse$1 + }); +} + +// pkg/dist-src/index.js +var endpoint = withDefaults$2(null, DEFAULTS); + +var fastContentTypeParse = {}; + +var hasRequiredFastContentTypeParse; + +function requireFastContentTypeParse () { + if (hasRequiredFastContentTypeParse) return fastContentTypeParse; + hasRequiredFastContentTypeParse = 1; + + const NullObject = function NullObject () { }; + NullObject.prototype = Object.create(null); + + /** + * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1 + * + * parameter = token "=" ( token / quoted-string ) + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" + * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" + * / DIGIT / ALPHA + * ; any VCHAR, except delimiters + * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE + * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text + * obs-text = %x80-FF + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + */ + const paramRE = /; *([!#$%&'*+.^\w`|~-]+)=("(?:[\v\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\v\u0020-\u00ff])*"|[!#$%&'*+.^\w`|~-]+) */gu; + + /** + * RegExp to match quoted-pair in RFC 7230 sec 3.2.6 + * + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + * obs-text = %x80-FF + */ + const quotedPairRE = /\\([\v\u0020-\u00ff])/gu; + + /** + * RegExp to match type in RFC 7231 sec 3.1.1.1 + * + * media-type = type "/" subtype + * type = token + * subtype = token + */ + const mediaTypeRE = /^[!#$%&'*+.^\w|~-]+\/[!#$%&'*+.^\w|~-]+$/u; + + // default ContentType to prevent repeated object creation + const defaultContentType = { type: '', parameters: new NullObject() }; + Object.freeze(defaultContentType.parameters); + Object.freeze(defaultContentType); + + /** + * Parse media type to object. + * + * @param {string|object} header + * @return {Object} + * @public + */ + + function parse (header) { + if (typeof header !== 'string') { + throw new TypeError('argument header is required and must be a string') + } + + let index = header.indexOf(';'); + const type = index !== -1 + ? header.slice(0, index).trim() + : header.trim(); + + if (mediaTypeRE.test(type) === false) { + throw new TypeError('invalid media type') + } + + const result = { + type: type.toLowerCase(), + parameters: new NullObject() + }; + + // parse parameters + if (index === -1) { + return result + } + + let key; + let match; + let value; + + paramRE.lastIndex = index; + + while ((match = paramRE.exec(header))) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + + if (value[0] === '"') { + // remove quotes and escapes + value = value + .slice(1, value.length - 1); + + quotedPairRE.test(value) && (value = value.replace(quotedPairRE, '$1')); + } + + result.parameters[key] = value; + } + + if (index !== header.length) { + throw new TypeError('invalid parameter format') + } + + return result + } + + function safeParse (header) { + if (typeof header !== 'string') { + return defaultContentType + } + + let index = header.indexOf(';'); + const type = index !== -1 + ? header.slice(0, index).trim() + : header.trim(); + + if (mediaTypeRE.test(type) === false) { + return defaultContentType + } + + const result = { + type: type.toLowerCase(), + parameters: new NullObject() + }; + + // parse parameters + if (index === -1) { + return result + } + + let key; + let match; + let value; + + paramRE.lastIndex = index; + + while ((match = paramRE.exec(header))) { + if (match.index !== index) { + return defaultContentType + } + + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + + if (value[0] === '"') { + // remove quotes and escapes + value = value + .slice(1, value.length - 1); + + quotedPairRE.test(value) && (value = value.replace(quotedPairRE, '$1')); + } + + result.parameters[key] = value; + } + + if (index !== header.length) { + return defaultContentType + } + + return result + } + + fastContentTypeParse.default = { parse, safeParse }; + fastContentTypeParse.parse = parse; + fastContentTypeParse.safeParse = safeParse; + fastContentTypeParse.defaultContentType = defaultContentType; + return fastContentTypeParse; +} + +var fastContentTypeParseExports = requireFastContentTypeParse(); + +class RequestError extends Error { + name; + /** + * http status code + */ + status; + /** + * Request options that lead to the error. + */ + request; + /** + * Response object if a response was received + */ + response; + constructor(message, statusCode, options) { + super(message); + this.name = "HttpError"; + this.status = Number.parseInt(statusCode); + if (Number.isNaN(this.status)) { + this.status = 0; + } + if ("response" in options) { + this.response = options.response; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + /(? [ + name, + String(value) + ]) + ); + let fetchResponse; + try { + fetchResponse = await fetch(requestOptions.url, { + method: requestOptions.method, + body, + redirect: requestOptions.request?.redirect, + headers: requestHeaders, + signal: requestOptions.request?.signal, + // duplex must be set if request.body is ReadableStream or Async Iterables. + // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. + ...requestOptions.body && { duplex: "half" } + }); + } catch (error) { + let message = "Unknown Error"; + if (error instanceof Error) { + if (error.name === "AbortError") { + error.status = 500; + throw error; + } + message = error.message; + if (error.name === "TypeError" && "cause" in error) { + if (error.cause instanceof Error) { + message = error.cause.message; + } else if (typeof error.cause === "string") { + message = error.cause; + } + } + } + const requestError = new RequestError(message, 500, { + request: requestOptions + }); + requestError.cause = error; + throw requestError; + } + const status = fetchResponse.status; + const url = fetchResponse.url; + const responseHeaders = {}; + for (const [key, value] of fetchResponse.headers) { + responseHeaders[key] = value; + } + const octokitResponse = { + url, + status, + headers: responseHeaders, + data: "" + }; + if ("deprecation" in responseHeaders) { + const matches = responseHeaders.link && responseHeaders.link.match(/<([^<>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn( + `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` + ); + } + if (status === 204 || status === 205) { + return octokitResponse; + } + if (requestOptions.method === "HEAD") { + if (status < 400) { + return octokitResponse; + } + throw new RequestError(fetchResponse.statusText, status, { + response: octokitResponse, + request: requestOptions + }); + } + if (status === 304) { + octokitResponse.data = await getResponseData(fetchResponse); + throw new RequestError("Not modified", status, { + response: octokitResponse, + request: requestOptions + }); + } + if (status >= 400) { + octokitResponse.data = await getResponseData(fetchResponse); + throw new RequestError(toErrorMessage(octokitResponse.data), status, { + response: octokitResponse, + request: requestOptions + }); + } + octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body; + return octokitResponse; +} +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (!contentType) { + return response.text().catch(() => ""); + } + const mimetype = fastContentTypeParseExports.safeParse(contentType); + if (isJSONResponse(mimetype)) { + let text = ""; + try { + text = await response.text(); + return JSON.parse(text); + } catch (err) { + return text; + } + } else if (mimetype.type.startsWith("text/") || mimetype.parameters.charset?.toLowerCase() === "utf-8") { + return response.text().catch(() => ""); + } else { + return response.arrayBuffer().catch(() => new ArrayBuffer(0)); + } +} +function isJSONResponse(mimetype) { + return mimetype.type === "application/json" || mimetype.type === "application/scim+json"; +} +function toErrorMessage(data) { + if (typeof data === "string") { + return data; + } + if (data instanceof ArrayBuffer) { + return "Unknown error"; + } + if ("message" in data) { + const suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : ""; + return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v) => JSON.stringify(v)).join(", ")}${suffix}` : `${data.message}${suffix}`; + } + return `Unknown error: ${JSON.stringify(data)}`; +} + +// pkg/dist-src/with-defaults.js +function withDefaults$1(oldEndpoint, newDefaults) { + const endpoint2 = oldEndpoint.defaults(newDefaults); + const newApi = function(route, parameters) { + const endpointOptions = endpoint2.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint2.parse(endpointOptions)); + } + const request2 = (route2, parameters2) => { + return fetchWrapper( + endpoint2.parse(endpoint2.merge(route2, parameters2)) + ); + }; + Object.assign(request2, { + endpoint: endpoint2, + defaults: withDefaults$1.bind(null, endpoint2) + }); + return endpointOptions.request.hook(request2, endpointOptions); + }; + return Object.assign(newApi, { + endpoint: endpoint2, + defaults: withDefaults$1.bind(null, endpoint2) + }); +} + +// pkg/dist-src/index.js +var request = withDefaults$1(endpoint, defaults_default); + +// pkg/dist-src/index.js + +// pkg/dist-src/version.js +var VERSION$1 = "0.0.0-development"; + +// pkg/dist-src/error.js +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors: +` + data.errors.map((e) => ` - ${e.message}`).join("\n"); +} +var GraphqlResponseError = class extends Error { + constructor(request2, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request2; + this.headers = headers; + this.response = response; + this.errors = response.errors; + this.data = response.data; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + name = "GraphqlResponseError"; + errors; + data; +}; + +// pkg/dist-src/graphql.js +var NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType", + "operationName" +]; +var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request2, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject( + new Error(`[@octokit/graphql] "query" cannot be used as variable name`) + ); + } + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue; + return Promise.reject( + new Error( + `[@octokit/graphql] "${key}" cannot be used as variable name` + ) + ); + } + } + const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; + const requestOptions = Object.keys( + parsedOptions + ).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, {}); + const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + return request2(requestOptions).then((response) => { + if (response.data.errors) { + const headers = {}; + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + throw new GraphqlResponseError( + requestOptions, + headers, + response.data + ); + } + return response.data.data; + }); +} + +// pkg/dist-src/with-defaults.js +function withDefaults(request2, newDefaults) { + const newRequest = request2.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: newRequest.endpoint + }); +} + +// pkg/dist-src/index.js +withDefaults(request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION$1} ${getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +// pkg/dist-src/is-jwt.js +var b64url = "(?:[a-zA-Z0-9_-]+)"; +var sep = "\\."; +var jwtRE = new RegExp(`^${b64url}${sep}${b64url}${sep}${b64url}$`); +var isJWT = jwtRE.test.bind(jwtRE); + +// pkg/dist-src/auth.js +async function auth(token) { + const isApp = isJWT(token); + const isInstallation = token.startsWith("v1.") || token.startsWith("ghs_"); + const isUserToServer = token.startsWith("ghu_"); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token, + tokenType + }; +} + +// pkg/dist-src/with-authorization-prefix.js +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; +} + +// pkg/dist-src/hook.js +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge( + route, + parameters + ); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +// pkg/dist-src/index.js +var createTokenAuth = function createTokenAuth2(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + if (typeof token !== "string") { + throw new Error( + "[@octokit/auth-token] Token passed to createTokenAuth is not a string" + ); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; + +const VERSION = "6.1.4"; + +const noop = () => { +}; +const consoleWarn = console.warn.bind(console); +const consoleError = console.error.bind(console); +const userAgentTrail = `octokit-core.js/${VERSION} ${getUserAgent()}`; +class Octokit { + static VERSION = VERSION; + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + super( + Object.assign( + {}, + defaults, + options, + options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null + ) + ); + } + }; + return OctokitWithDefaults; + } + static plugins = []; + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin(...newPlugins) { + const currentPlugins = this.plugins; + const NewOctokit = class extends this { + static plugins = currentPlugins.concat( + newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) + ); + }; + return NewOctokit; + } + constructor(options = {}) { + const hook = new Hook.Collection(); + const requestDefaults = { + baseUrl: request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; + requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + this.request = request.defaults(requestDefaults); + this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign( + { + debug: noop, + info: noop, + warn: consoleWarn, + error: consoleError + }, + options.log + ); + this.hook = hook; + if (!options.authStrategy) { + if (!options.auth) { + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + const auth = createTokenAuth(options.auth); + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy( + Object.assign( + { + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions + }, + options.auth + ) + ); + hook.wrap("request", auth.hook); + this.auth = auth; + } + const classConstructor = this.constructor; + for (let i = 0; i < classConstructor.plugins.length; ++i) { + Object.assign(this, classConstructor.plugins[i](this, options)); + } + } + // assigned during constructor + request; + graphql; + log; + hook; + // TODO: type `octokit.auth` based on passed options.authStrategy + auth; +} + // Set up Octokit for github.com only and in the same way as @actions/github (see https://git.io/Jy9YP) const baseUrl = 'https://api.github.com'; const GitHubDotCom = Octokit.defaults({