import { __commonJS, __esm, __export, __privateAdd, __privateGet, __privateMethod, __privateSet, __privateWrapper, __publicField, __toCommonJS, __toESM } from "./chunk-4B2QHNJT.js"; // node_modules/.pnpm/universal-user-agent@6.0.1/node_modules/universal-user-agent/dist-web/index.js var dist_web_exports = {}; __export(dist_web_exports, { getUserAgent: () => getUserAgent }); function getUserAgent() { if (typeof navigator === "object" && "userAgent" in navigator) { return navigator.userAgent; } if (typeof process === "object" && process.version !== void 0) { return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; } return ""; } var init_dist_web = __esm({ "node_modules/.pnpm/universal-user-agent@6.0.1/node_modules/universal-user-agent/dist-web/index.js"() { } }); // node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/register.js var require_register = __commonJS({ "node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/register.js"(exports, module) { module.exports = register; 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(function(callback, name2) { return register.bind(null, state, name2, callback, options); }, method)(); } return Promise.resolve().then(function() { if (!state.registry[name]) { return method(options); } return state.registry[name].reduce(function(method2, registered) { return registered.hook.bind(null, method2, options); }, method)(); }); } } }); // node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/add.js var require_add = __commonJS({ "node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/add.js"(exports, module) { module.exports = addHook; function addHook(state, kind, name, hook6) { var orig = hook6; if (!state.registry[name]) { state.registry[name] = []; } if (kind === "before") { hook6 = function(method, options) { return Promise.resolve().then(orig.bind(null, options)).then(method.bind(null, options)); }; } if (kind === "after") { hook6 = function(method, options) { var result; return Promise.resolve().then(method.bind(null, options)).then(function(result_) { result = result_; return orig(result, options); }).then(function() { return result; }); }; } if (kind === "error") { hook6 = function(method, options) { return Promise.resolve().then(method.bind(null, options)).catch(function(error) { return orig(error, options); }); }; } state.registry[name].push({ hook: hook6, orig }); } } }); // node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/remove.js var require_remove = __commonJS({ "node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/remove.js"(exports, module) { module.exports = removeHook; function removeHook(state, name, method) { if (!state.registry[name]) { return; } var index = state.registry[name].map(function(registered) { return registered.orig; }).indexOf(method); if (index === -1) { return; } state.registry[name].splice(index, 1); } } }); // node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/index.js var require_before_after_hook = __commonJS({ "node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/index.js"(exports, module) { var register = require_register(); var addHook = require_add(); var removeHook = require_remove(); var bind = Function.bind; var bindable = bind.bind(bind); function bindApi(hook6, state, name) { var removeHookRef = bindable(removeHook, null).apply( null, name ? [state, name] : [state] ); hook6.api = { remove: removeHookRef }; hook6.remove = removeHookRef; ["before", "error", "after", "wrap"].forEach(function(kind) { var args = name ? [state, kind, name] : [state, kind]; hook6[kind] = hook6.api[kind] = bindable(addHook, null).apply(null, args); }); } function HookSingular() { var singularHookName = "h"; var singularHookState = { registry: {} }; var singularHook = register.bind(null, singularHookState, singularHookName); bindApi(singularHook, singularHookState, singularHookName); return singularHook; } function HookCollection() { var state = { registry: {} }; var hook6 = register.bind(null, state); bindApi(hook6, state); return hook6; } var collectionHookDeprecationMessageDisplayed = false; function Hook() { if (!collectionHookDeprecationMessageDisplayed) { console.warn( '[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4' ); collectionHookDeprecationMessageDisplayed = true; } return HookCollection(); } Hook.Singular = HookSingular.bind(); Hook.Collection = HookCollection.bind(); module.exports = Hook; module.exports.Hook = Hook; module.exports.Singular = Hook.Singular; module.exports.Collection = Hook.Collection; } }); // node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-web/index.js function lowercaseKeys(object) { if (!object) { return {}; } return Object.keys(object).reduce((newObj, key) => { newObj[key.toLowerCase()] = object[key]; return newObj; }, {}); } function isPlainObject(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); } function mergeDeep(defaults, options) { const result = Object.assign({}, defaults); Object.keys(options).forEach((key) => { if (isPlainObject(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; } function removeUndefinedProperties(obj) { for (const key in obj) { if (obj[key] === void 0) { delete obj[key]; } } return obj; } function merge(defaults, route, options) { var _a3; 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 && ((_a3 = defaults.mediaType.previews) == null ? void 0 : _a3.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; } 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("&"); } function removeNonChars(variableName) { return variableName.replace(/^\W+|\W+$/g, "").split(/,/); } function extractUrlVariableNames(url) { const matches = url.match(urlVariableRegex); if (!matches) { return []; } return matches.map(removeNonChars).reduce((a2, b) => a2.concat(b), []); } 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; } 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(/\/$/, ""); } } function parse(options) { var _a3; 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 ((_a3 = options.mediaType.previews) == null ? void 0 : _a3.length) { const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => { 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 ); } function endpointWithDefaults(defaults, route, options) { return parse(merge(defaults, route, options)); } function withDefaults(oldDefaults, newDefaults) { const DEFAULTS2 = merge(oldDefaults, newDefaults); const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); return Object.assign(endpoint2, { DEFAULTS: DEFAULTS2, defaults: withDefaults.bind(null, DEFAULTS2), merge: merge.bind(null, DEFAULTS2), parse }); } var VERSION, userAgent, DEFAULTS, urlVariableRegex, endpoint; var init_dist_web2 = __esm({ "node_modules/.pnpm/@octokit+endpoint@9.0.5/node_modules/@octokit/endpoint/dist-web/index.js"() { init_dist_web(); VERSION = "9.0.5"; userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; DEFAULTS = { method: "GET", baseUrl: "https://api.github.com", headers: { accept: "application/vnd.github.v3+json", "user-agent": userAgent }, mediaType: { format: "" } }; urlVariableRegex = /\{[^}]+\}/g; endpoint = withDefaults(null, DEFAULTS); } }); // node_modules/.pnpm/deprecation@2.3.1/node_modules/deprecation/dist-web/index.js var dist_web_exports2 = {}; __export(dist_web_exports2, { Deprecation: () => Deprecation }); var Deprecation; var init_dist_web3 = __esm({ "node_modules/.pnpm/deprecation@2.3.1/node_modules/deprecation/dist-web/index.js"() { Deprecation = class extends Error { constructor(message) { super(message); if (Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor); } this.name = "Deprecation"; } }; } }); // node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js var require_wrappy = __commonJS({ "node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js"(exports, module) { module.exports = wrappy; function wrappy(fn, cb) { if (fn && cb) return wrappy(fn)(cb); if (typeof fn !== "function") throw new TypeError("need wrapper function"); Object.keys(fn).forEach(function(k) { wrapper[k] = fn[k]; }); return wrapper; function wrapper() { var args = new Array(arguments.length); for (var i2 = 0; i2 < args.length; i2++) { args[i2] = arguments[i2]; } var ret = fn.apply(this, args); var cb2 = args[args.length - 1]; if (typeof ret === "function" && ret !== cb2) { Object.keys(cb2).forEach(function(k) { ret[k] = cb2[k]; }); } return ret; } } } }); // node_modules/.pnpm/once@1.4.0/node_modules/once/once.js var require_once = __commonJS({ "node_modules/.pnpm/once@1.4.0/node_modules/once/once.js"(exports, module) { var wrappy = require_wrappy(); module.exports = wrappy(once2); module.exports.strict = wrappy(onceStrict); once2.proto = once2(function() { Object.defineProperty(Function.prototype, "once", { value: function() { return once2(this); }, configurable: true }); Object.defineProperty(Function.prototype, "onceStrict", { value: function() { return onceStrict(this); }, configurable: true }); }); function once2(fn) { var f = function() { if (f.called) return f.value; f.called = true; return f.value = fn.apply(this, arguments); }; f.called = false; return f; } function onceStrict(fn) { var f = function() { if (f.called) throw new Error(f.onceError); f.called = true; return f.value = fn.apply(this, arguments); }; var name = fn.name || "Function wrapped with `once`"; f.onceError = name + " shouldn't be called more than once"; f.called = false; return f; } } }); // node_modules/.pnpm/@octokit+request-error@5.1.0/node_modules/@octokit/request-error/dist-web/index.js var dist_web_exports3 = {}; __export(dist_web_exports3, { RequestError: () => RequestError }); var import_once, logOnceCode, logOnceHeaders, RequestError; var init_dist_web4 = __esm({ "node_modules/.pnpm/@octokit+request-error@5.1.0/node_modules/@octokit/request-error/dist-web/index.js"() { init_dist_web3(); import_once = __toESM(require_once()); logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); RequestError = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor); } this.name = "HttpError"; this.status = statusCode; let headers; if ("headers" in options && typeof options.headers !== "undefined") { headers = options.headers; } if ("response" in options) { this.response = options.response; headers = options.response.headers; } const requestCopy = Object.assign({}, options.request); if (options.request.headers.authorization) { requestCopy.headers = Object.assign({}, options.request.headers, { authorization: options.request.headers.authorization.replace( / .*$/, " [REDACTED]" ) }); } requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); this.request = requestCopy; Object.defineProperty(this, "code", { get() { logOnceCode( new Deprecation( "[@octokit/request-error] `error.code` is deprecated, use `error.status`." ) ); return statusCode; } }); Object.defineProperty(this, "headers", { get() { logOnceHeaders( new Deprecation( "[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`." ) ); return headers || {}; } }); } }; } }); // node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-web/index.js var dist_web_exports4 = {}; __export(dist_web_exports4, { request: () => request }); function isPlainObject2(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); } function getBufferResponse(response) { return response.arrayBuffer(); } function fetchWrapper(requestOptions) { var _a3, _b, _c, _d; const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; const parseSuccessResponseBody = ((_a3 = requestOptions.request) == null ? void 0 : _a3.parseSuccessResponseBody) !== false; if (isPlainObject2(requestOptions.body) || Array.isArray(requestOptions.body)) { requestOptions.body = JSON.stringify(requestOptions.body); } let headers = {}; let status; let url; let { fetch } = globalThis; if ((_b = requestOptions.request) == null ? void 0 : _b.fetch) { fetch = requestOptions.request.fetch; } if (!fetch) { throw new Error( "fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing" ); } return fetch(requestOptions.url, { method: requestOptions.method, body: requestOptions.body, redirect: (_c = requestOptions.request) == null ? void 0 : _c.redirect, headers: requestOptions.headers, signal: (_d = requestOptions.request) == null ? void 0 : _d.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" } }).then(async (response) => { url = response.url; status = response.status; for (const keyAndValue of response.headers) { headers[keyAndValue[0]] = keyAndValue[1]; } if ("deprecation" in headers) { const matches = headers.link && headers.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 ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` ); } if (status === 204 || status === 205) { return; } if (requestOptions.method === "HEAD") { if (status < 400) { return; } throw new RequestError(response.statusText, status, { response: { url, status, headers, data: void 0 }, request: requestOptions }); } if (status === 304) { throw new RequestError("Not modified", status, { response: { url, status, headers, data: await getResponseData(response) }, request: requestOptions }); } if (status >= 400) { const data = await getResponseData(response); const error = new RequestError(toErrorMessage(data), status, { response: { url, status, headers, data }, request: requestOptions }); throw error; } return parseSuccessResponseBody ? await getResponseData(response) : response.body; }).then((data) => { return { status, url, headers, data }; }).catch((error) => { if (error instanceof RequestError) throw error; else if (error.name === "AbortError") throw error; let 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; } } throw new RequestError(message, 500, { request: requestOptions }); }); } async function getResponseData(response) { const contentType = response.headers.get("content-type"); if (/application\/json/.test(contentType)) { return response.json().catch(() => response.text()).catch(() => ""); } if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { return response.text(); } return getBufferResponse(response); } function toErrorMessage(data) { if (typeof data === "string") return data; let suffix; if ("documentation_url" in data) { suffix = ` - ${data.documentation_url}`; } else { suffix = ""; } if ("message" in data) { if (Array.isArray(data.errors)) { return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}${suffix}`; } return `${data.message}${suffix}`; } return `Unknown error: ${JSON.stringify(data)}`; } function withDefaults2(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: withDefaults2.bind(null, endpoint2) }); return endpointOptions.request.hook(request2, endpointOptions); }; return Object.assign(newApi, { endpoint: endpoint2, defaults: withDefaults2.bind(null, endpoint2) }); } var VERSION2, request; var init_dist_web5 = __esm({ "node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-web/index.js"() { init_dist_web2(); init_dist_web(); init_dist_web4(); VERSION2 = "8.4.0"; request = withDefaults2(endpoint, { headers: { "user-agent": `octokit-request.js/${VERSION2} ${getUserAgent()}` } }); } }); // node_modules/.pnpm/@octokit+graphql@7.1.0/node_modules/@octokit/graphql/dist-web/index.js function _buildMessageForResponseErrors(data) { return `Request failed due to following response errors: ` + data.errors.map((e2) => ` - ${e2.message}`).join("\n"); } 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; }); } function withDefaults3(request2, newDefaults) { const newRequest = request2.defaults(newDefaults); const newApi = (query, options) => { return graphql(newRequest, query, options); }; return Object.assign(newApi, { defaults: withDefaults3.bind(null, newRequest), endpoint: newRequest.endpoint }); } function withCustomRequest(customRequest) { return withDefaults3(customRequest, { method: "POST", url: "/graphql" }); } var VERSION3, GraphqlResponseError, NON_VARIABLE_OPTIONS, FORBIDDEN_VARIABLE_OPTIONS, GHES_V3_SUFFIX_REGEX, graphql2; var init_dist_web6 = __esm({ "node_modules/.pnpm/@octokit+graphql@7.1.0/node_modules/@octokit/graphql/dist-web/index.js"() { init_dist_web5(); init_dist_web(); init_dist_web5(); init_dist_web5(); VERSION3 = "7.1.0"; GraphqlResponseError = class extends Error { constructor(request2, headers, response) { super(_buildMessageForResponseErrors(response)); this.request = request2; this.headers = headers; this.response = response; this.name = "GraphqlResponseError"; this.errors = response.errors; this.data = response.data; if (Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor); } } }; NON_VARIABLE_OPTIONS = [ "method", "baseUrl", "url", "headers", "request", "query", "mediaType" ]; FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; graphql2 = withDefaults3(request, { headers: { "user-agent": `octokit-graphql.js/${VERSION3} ${getUserAgent()}` }, method: "POST", url: "/graphql" }); } }); // node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-web/index.js async function auth(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); const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; return { type: "token", token, tokenType }; } function withAuthorizationPrefix(token) { if (token.split(/\./).length === 3) { return `bearer ${token}`; } return `token ${token}`; } async function hook(token, request2, route, parameters) { const endpoint2 = request2.endpoint.merge( route, parameters ); endpoint2.headers.authorization = withAuthorizationPrefix(token); return request2(endpoint2); } var REGEX_IS_INSTALLATION_LEGACY, REGEX_IS_INSTALLATION, REGEX_IS_USER_TO_SERVER, createTokenAuth; var init_dist_web7 = __esm({ "node_modules/.pnpm/@octokit+auth-token@4.0.0/node_modules/@octokit/auth-token/dist-web/index.js"() { REGEX_IS_INSTALLATION_LEGACY = /^v1\./; REGEX_IS_INSTALLATION = /^ghs_/; REGEX_IS_USER_TO_SERVER = /^ghu_/; 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) }); }; } }); // node_modules/.pnpm/@octokit+core@5.2.0/node_modules/@octokit/core/dist-web/index.js var dist_web_exports5 = {}; __export(dist_web_exports5, { Octokit: () => Octokit }); var import_before_after_hook, VERSION4, noop, consoleWarn, consoleError, userAgentTrail, _a, Octokit; var init_dist_web8 = __esm({ "node_modules/.pnpm/@octokit+core@5.2.0/node_modules/@octokit/core/dist-web/index.js"() { init_dist_web(); import_before_after_hook = __toESM(require_before_after_hook()); init_dist_web5(); init_dist_web6(); init_dist_web7(); VERSION4 = "5.2.0"; noop = () => { }; consoleWarn = console.warn.bind(console); consoleError = console.error.bind(console); userAgentTrail = `octokit-core.js/${VERSION4} ${getUserAgent()}`; Octokit = (_a = class { 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; } /** * Attach a plugin (or many) to your Octokit instance. * * @example * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) */ static plugin(...newPlugins) { var _a3; const currentPlugins = this.plugins; const NewOctokit = (_a3 = class extends this { }, _a3.plugins = currentPlugins.concat( newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) ), _a3); return NewOctokit; } constructor(options = {}) { const hook6 = new import_before_after_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: hook6.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 = hook6; if (!options.authStrategy) { if (!options.auth) { this.auth = async () => ({ type: "unauthenticated" }); } else { const auth6 = createTokenAuth(options.auth); hook6.wrap("request", auth6.hook); this.auth = auth6; } } else { const { authStrategy, ...otherOptions } = options; const auth6 = 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 ) ); hook6.wrap("request", auth6.hook); this.auth = auth6; } const classConstructor = this.constructor; for (let i2 = 0; i2 < classConstructor.plugins.length; ++i2) { Object.assign(this, classConstructor.plugins[i2](this, options)); } } }, _a.VERSION = VERSION4, _a.plugins = [], _a); } }); // node_modules/.pnpm/bottleneck@2.19.5/node_modules/bottleneck/light.js var require_light = __commonJS({ "node_modules/.pnpm/bottleneck@2.19.5/node_modules/bottleneck/light.js"(exports, module) { (function(global2, factory) { typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : global2.Bottleneck = factory(); })(exports, function() { "use strict"; var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; function getCjsExportFromNamespace(n2) { return n2 && n2["default"] || n2; } var load = function(received, defaults, onto = {}) { var k, ref, v; for (k in defaults) { v = defaults[k]; onto[k] = (ref = received[k]) != null ? ref : v; } return onto; }; var overwrite = function(received, defaults, onto = {}) { var k, v; for (k in received) { v = received[k]; if (defaults[k] !== void 0) { onto[k] = v; } } return onto; }; var parser = { load, overwrite }; var DLList; DLList = class DLList { constructor(incr, decr) { this.incr = incr; this.decr = decr; this._first = null; this._last = null; this.length = 0; } push(value) { var node; this.length++; if (typeof this.incr === "function") { this.incr(); } node = { value, prev: this._last, next: null }; if (this._last != null) { this._last.next = node; this._last = node; } else { this._first = this._last = node; } return void 0; } shift() { var value; if (this._first == null) { return; } else { this.length--; if (typeof this.decr === "function") { this.decr(); } } value = this._first.value; if ((this._first = this._first.next) != null) { this._first.prev = null; } else { this._last = null; } return value; } first() { if (this._first != null) { return this._first.value; } } getArray() { var node, ref, results; node = this._first; results = []; while (node != null) { results.push((ref = node, node = node.next, ref.value)); } return results; } forEachShift(cb) { var node; node = this.shift(); while (node != null) { cb(node), node = this.shift(); } return void 0; } debug() { var node, ref, ref1, ref2, results; node = this._first; results = []; while (node != null) { results.push((ref = node, node = node.next, { value: ref.value, prev: (ref1 = ref.prev) != null ? ref1.value : void 0, next: (ref2 = ref.next) != null ? ref2.value : void 0 })); } return results; } }; var DLList_1 = DLList; var Events; Events = class Events { constructor(instance) { this.instance = instance; this._events = {}; if (this.instance.on != null || this.instance.once != null || this.instance.removeAllListeners != null) { throw new Error("An Emitter already exists for this object"); } this.instance.on = (name, cb) => { return this._addListener(name, "many", cb); }; this.instance.once = (name, cb) => { return this._addListener(name, "once", cb); }; this.instance.removeAllListeners = (name = null) => { if (name != null) { return delete this._events[name]; } else { return this._events = {}; } }; } _addListener(name, status, cb) { var base; if ((base = this._events)[name] == null) { base[name] = []; } this._events[name].push({ cb, status }); return this.instance; } listenerCount(name) { if (this._events[name] != null) { return this._events[name].length; } else { return 0; } } async trigger(name, ...args) { var e2, promises; try { if (name !== "debug") { this.trigger("debug", `Event triggered: ${name}`, args); } if (this._events[name] == null) { return; } this._events[name] = this._events[name].filter(function(listener) { return listener.status !== "none"; }); promises = this._events[name].map(async (listener) => { var e3, returned; if (listener.status === "none") { return; } if (listener.status === "once") { listener.status = "none"; } try { returned = typeof listener.cb === "function" ? listener.cb(...args) : void 0; if (typeof (returned != null ? returned.then : void 0) === "function") { return await returned; } else { return returned; } } catch (error) { e3 = error; { this.trigger("error", e3); } return null; } }); return (await Promise.all(promises)).find(function(x) { return x != null; }); } catch (error) { e2 = error; { this.trigger("error", e2); } return null; } } }; var Events_1 = Events; var DLList$1, Events$1, Queues; DLList$1 = DLList_1; Events$1 = Events_1; Queues = class Queues { constructor(num_priorities) { var i2; this.Events = new Events$1(this); this._length = 0; this._lists = (function() { var j, ref, results; results = []; for (i2 = j = 1, ref = num_priorities; 1 <= ref ? j <= ref : j >= ref; i2 = 1 <= ref ? ++j : --j) { results.push(new DLList$1(() => { return this.incr(); }, () => { return this.decr(); })); } return results; }).call(this); } incr() { if (this._length++ === 0) { return this.Events.trigger("leftzero"); } } decr() { if (--this._length === 0) { return this.Events.trigger("zero"); } } push(job) { return this._lists[job.options.priority].push(job); } queued(priority) { if (priority != null) { return this._lists[priority].length; } else { return this._length; } } shiftAll(fn) { return this._lists.forEach(function(list) { return list.forEachShift(fn); }); } getFirst(arr = this._lists) { var j, len, list; for (j = 0, len = arr.length; j < len; j++) { list = arr[j]; if (list.length > 0) { return list; } } return []; } shiftLastFrom(priority) { return this.getFirst(this._lists.slice(priority).reverse()).shift(); } }; var Queues_1 = Queues; var BottleneckError; BottleneckError = class BottleneckError extends Error { }; var BottleneckError_1 = BottleneckError; var BottleneckError$1, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser$1; NUM_PRIORITIES = 10; DEFAULT_PRIORITY = 5; parser$1 = parser; BottleneckError$1 = BottleneckError_1; Job = class Job { constructor(task, args, options, jobDefaults, rejectOnDrop, Events2, _states, Promise2) { this.task = task; this.args = args; this.rejectOnDrop = rejectOnDrop; this.Events = Events2; this._states = _states; this.Promise = Promise2; this.options = parser$1.load(options, jobDefaults); this.options.priority = this._sanitizePriority(this.options.priority); if (this.options.id === jobDefaults.id) { this.options.id = `${this.options.id}-${this._randomIndex()}`; } this.promise = new this.Promise((_resolve, _reject) => { this._resolve = _resolve; this._reject = _reject; }); this.retryCount = 0; } _sanitizePriority(priority) { var sProperty; sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority; if (sProperty < 0) { return 0; } else if (sProperty > NUM_PRIORITIES - 1) { return NUM_PRIORITIES - 1; } else { return sProperty; } } _randomIndex() { return Math.random().toString(36).slice(2); } doDrop({ error, message = "This job has been dropped by Bottleneck" } = {}) { if (this._states.remove(this.options.id)) { if (this.rejectOnDrop) { this._reject(error != null ? error : new BottleneckError$1(message)); } this.Events.trigger("dropped", { args: this.args, options: this.options, task: this.task, promise: this.promise }); return true; } else { return false; } } _assertStatus(expected) { var status; status = this._states.jobStatus(this.options.id); if (!(status === expected || expected === "DONE" && status === null)) { throw new BottleneckError$1(`Invalid job status ${status}, expected ${expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`); } } doReceive() { this._states.start(this.options.id); return this.Events.trigger("received", { args: this.args, options: this.options }); } doQueue(reachedHWM, blocked) { this._assertStatus("RECEIVED"); this._states.next(this.options.id); return this.Events.trigger("queued", { args: this.args, options: this.options, reachedHWM, blocked }); } doRun() { if (this.retryCount === 0) { this._assertStatus("QUEUED"); this._states.next(this.options.id); } else { this._assertStatus("EXECUTING"); } return this.Events.trigger("scheduled", { args: this.args, options: this.options }); } async doExecute(chained, clearGlobalState, run, free) { var error, eventInfo, passed; if (this.retryCount === 0) { this._assertStatus("RUNNING"); this._states.next(this.options.id); } else { this._assertStatus("EXECUTING"); } eventInfo = { args: this.args, options: this.options, retryCount: this.retryCount }; this.Events.trigger("executing", eventInfo); try { passed = await (chained != null ? chained.schedule(this.options, this.task, ...this.args) : this.task(...this.args)); if (clearGlobalState()) { this.doDone(eventInfo); await free(this.options, eventInfo); this._assertStatus("DONE"); return this._resolve(passed); } } catch (error1) { error = error1; return this._onFailure(error, eventInfo, clearGlobalState, run, free); } } doExpire(clearGlobalState, run, free) { var error, eventInfo; if (this._states.jobStatus(this.options.id === "RUNNING")) { this._states.next(this.options.id); } this._assertStatus("EXECUTING"); eventInfo = { args: this.args, options: this.options, retryCount: this.retryCount }; error = new BottleneckError$1(`This job timed out after ${this.options.expiration} ms.`); return this._onFailure(error, eventInfo, clearGlobalState, run, free); } async _onFailure(error, eventInfo, clearGlobalState, run, free) { var retry2, retryAfter; if (clearGlobalState()) { retry2 = await this.Events.trigger("failed", error, eventInfo); if (retry2 != null) { retryAfter = ~~retry2; this.Events.trigger("retry", `Retrying ${this.options.id} after ${retryAfter} ms`, eventInfo); this.retryCount++; return run(retryAfter); } else { this.doDone(eventInfo); await free(this.options, eventInfo); this._assertStatus("DONE"); return this._reject(error); } } } doDone(eventInfo) { this._assertStatus("EXECUTING"); this._states.next(this.options.id); return this.Events.trigger("done", eventInfo); } }; var Job_1 = Job; var BottleneckError$2, LocalDatastore, parser$2; parser$2 = parser; BottleneckError$2 = BottleneckError_1; LocalDatastore = class LocalDatastore { constructor(instance, storeOptions, storeInstanceOptions) { this.instance = instance; this.storeOptions = storeOptions; this.clientId = this.instance._randomIndex(); parser$2.load(storeInstanceOptions, storeInstanceOptions, this); this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now(); this._running = 0; this._done = 0; this._unblockTime = 0; this.ready = this.Promise.resolve(); this.clients = {}; this._startHeartbeat(); } _startHeartbeat() { var base; if (this.heartbeat == null && (this.storeOptions.reservoirRefreshInterval != null && this.storeOptions.reservoirRefreshAmount != null || this.storeOptions.reservoirIncreaseInterval != null && this.storeOptions.reservoirIncreaseAmount != null)) { return typeof (base = this.heartbeat = setInterval(() => { var amount, incr, maximum, now, reservoir; now = Date.now(); if (this.storeOptions.reservoirRefreshInterval != null && now >= this._lastReservoirRefresh + this.storeOptions.reservoirRefreshInterval) { this._lastReservoirRefresh = now; this.storeOptions.reservoir = this.storeOptions.reservoirRefreshAmount; this.instance._drainAll(this.computeCapacity()); } if (this.storeOptions.reservoirIncreaseInterval != null && now >= this._lastReservoirIncrease + this.storeOptions.reservoirIncreaseInterval) { ({ reservoirIncreaseAmount: amount, reservoirIncreaseMaximum: maximum, reservoir } = this.storeOptions); this._lastReservoirIncrease = now; incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount; if (incr > 0) { this.storeOptions.reservoir += incr; return this.instance._drainAll(this.computeCapacity()); } } }, this.heartbeatInterval)).unref === "function" ? base.unref() : void 0; } else { return clearInterval(this.heartbeat); } } async __publish__(message) { await this.yieldLoop(); return this.instance.Events.trigger("message", message.toString()); } async __disconnect__(flush) { await this.yieldLoop(); clearInterval(this.heartbeat); return this.Promise.resolve(); } yieldLoop(t2 = 0) { return new this.Promise(function(resolve, reject) { return setTimeout(resolve, t2); }); } computePenalty() { var ref; return (ref = this.storeOptions.penalty) != null ? ref : 15 * this.storeOptions.minTime || 5e3; } async __updateSettings__(options) { await this.yieldLoop(); parser$2.overwrite(options, options, this.storeOptions); this._startHeartbeat(); this.instance._drainAll(this.computeCapacity()); return true; } async __running__() { await this.yieldLoop(); return this._running; } async __queued__() { await this.yieldLoop(); return this.instance.queued(); } async __done__() { await this.yieldLoop(); return this._done; } async __groupCheck__(time) { await this.yieldLoop(); return this._nextRequest + this.timeout < time; } computeCapacity() { var maxConcurrent, reservoir; ({ maxConcurrent, reservoir } = this.storeOptions); if (maxConcurrent != null && reservoir != null) { return Math.min(maxConcurrent - this._running, reservoir); } else if (maxConcurrent != null) { return maxConcurrent - this._running; } else if (reservoir != null) { return reservoir; } else { return null; } } conditionsCheck(weight) { var capacity; capacity = this.computeCapacity(); return capacity == null || weight <= capacity; } async __incrementReservoir__(incr) { var reservoir; await this.yieldLoop(); reservoir = this.storeOptions.reservoir += incr; this.instance._drainAll(this.computeCapacity()); return reservoir; } async __currentReservoir__() { await this.yieldLoop(); return this.storeOptions.reservoir; } isBlocked(now) { return this._unblockTime >= now; } check(weight, now) { return this.conditionsCheck(weight) && this._nextRequest - now <= 0; } async __check__(weight) { var now; await this.yieldLoop(); now = Date.now(); return this.check(weight, now); } async __register__(index, weight, expiration) { var now, wait2; await this.yieldLoop(); now = Date.now(); if (this.conditionsCheck(weight)) { this._running += weight; if (this.storeOptions.reservoir != null) { this.storeOptions.reservoir -= weight; } wait2 = Math.max(this._nextRequest - now, 0); this._nextRequest = now + wait2 + this.storeOptions.minTime; return { success: true, wait: wait2, reservoir: this.storeOptions.reservoir }; } else { return { success: false }; } } strategyIsBlock() { return this.storeOptions.strategy === 3; } async __submit__(queueLength, weight) { var blocked, now, reachedHWM; await this.yieldLoop(); if (this.storeOptions.maxConcurrent != null && weight > this.storeOptions.maxConcurrent) { throw new BottleneckError$2(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`); } now = Date.now(); reachedHWM = this.storeOptions.highWater != null && queueLength === this.storeOptions.highWater && !this.check(weight, now); blocked = this.strategyIsBlock() && (reachedHWM || this.isBlocked(now)); if (blocked) { this._unblockTime = now + this.computePenalty(); this._nextRequest = this._unblockTime + this.storeOptions.minTime; this.instance._dropAllQueued(); } return { reachedHWM, blocked, strategy: this.storeOptions.strategy }; } async __free__(index, weight) { await this.yieldLoop(); this._running -= weight; this._done += weight; this.instance._drainAll(this.computeCapacity()); return { running: this._running }; } }; var LocalDatastore_1 = LocalDatastore; var BottleneckError$3, States; BottleneckError$3 = BottleneckError_1; States = class States { constructor(status1) { this.status = status1; this._jobs = {}; this.counts = this.status.map(function() { return 0; }); } next(id) { var current, next; current = this._jobs[id]; next = current + 1; if (current != null && next < this.status.length) { this.counts[current]--; this.counts[next]++; return this._jobs[id]++; } else if (current != null) { this.counts[current]--; return delete this._jobs[id]; } } start(id) { var initial; initial = 0; this._jobs[id] = initial; return this.counts[initial]++; } remove(id) { var current; current = this._jobs[id]; if (current != null) { this.counts[current]--; delete this._jobs[id]; } return current != null; } jobStatus(id) { var ref; return (ref = this.status[this._jobs[id]]) != null ? ref : null; } statusJobs(status) { var k, pos, ref, results, v; if (status != null) { pos = this.status.indexOf(status); if (pos < 0) { throw new BottleneckError$3(`status must be one of ${this.status.join(", ")}`); } ref = this._jobs; results = []; for (k in ref) { v = ref[k]; if (v === pos) { results.push(k); } } return results; } else { return Object.keys(this._jobs); } } statusCounts() { return this.counts.reduce((acc, v, i2) => { acc[this.status[i2]] = v; return acc; }, {}); } }; var States_1 = States; var DLList$2, Sync; DLList$2 = DLList_1; Sync = class Sync { constructor(name, Promise2) { this.schedule = this.schedule.bind(this); this.name = name; this.Promise = Promise2; this._running = 0; this._queue = new DLList$2(); } isEmpty() { return this._queue.length === 0; } async _tryToRun() { var args, cb, error, reject, resolve, returned, task; if (this._running < 1 && this._queue.length > 0) { this._running++; ({ task, args, resolve, reject } = this._queue.shift()); cb = await async function() { try { returned = await task(...args); return function() { return resolve(returned); }; } catch (error1) { error = error1; return function() { return reject(error); }; } }(); this._running--; this._tryToRun(); return cb(); } } schedule(task, ...args) { var promise, reject, resolve; resolve = reject = null; promise = new this.Promise(function(_resolve, _reject) { resolve = _resolve; return reject = _reject; }); this._queue.push({ task, args, resolve, reject }); this._tryToRun(); return promise; } }; var Sync_1 = Sync; var version = "2.19.5"; var version$1 = { version }; var version$2 = Object.freeze({ version, default: version$1 }); var require$$2 = () => console.log("You must import the full version of Bottleneck in order to use this feature."); var require$$3 = () => console.log("You must import the full version of Bottleneck in order to use this feature."); var require$$4 = () => console.log("You must import the full version of Bottleneck in order to use this feature."); var Events$2, Group, IORedisConnection$1, RedisConnection$1, Scripts$1, parser$3; parser$3 = parser; Events$2 = Events_1; RedisConnection$1 = require$$2; IORedisConnection$1 = require$$3; Scripts$1 = require$$4; Group = (function() { class Group2 { constructor(limiterOptions = {}) { this.deleteKey = this.deleteKey.bind(this); this.limiterOptions = limiterOptions; parser$3.load(this.limiterOptions, this.defaults, this); this.Events = new Events$2(this); this.instances = {}; this.Bottleneck = Bottleneck_1; this._startAutoCleanup(); this.sharedConnection = this.connection != null; if (this.connection == null) { if (this.limiterOptions.datastore === "redis") { this.connection = new RedisConnection$1(Object.assign({}, this.limiterOptions, { Events: this.Events })); } else if (this.limiterOptions.datastore === "ioredis") { this.connection = new IORedisConnection$1(Object.assign({}, this.limiterOptions, { Events: this.Events })); } } } key(key = "") { var ref; return (ref = this.instances[key]) != null ? ref : (() => { var limiter; limiter = this.instances[key] = new this.Bottleneck(Object.assign(this.limiterOptions, { id: `${this.id}-${key}`, timeout: this.timeout, connection: this.connection })); this.Events.trigger("created", limiter, key); return limiter; })(); } async deleteKey(key = "") { var deleted, instance; instance = this.instances[key]; if (this.connection) { deleted = await this.connection.__runCommand__(["del", ...Scripts$1.allKeys(`${this.id}-${key}`)]); } if (instance != null) { delete this.instances[key]; await instance.disconnect(); } return instance != null || deleted > 0; } limiters() { var k, ref, results, v; ref = this.instances; results = []; for (k in ref) { v = ref[k]; results.push({ key: k, limiter: v }); } return results; } keys() { return Object.keys(this.instances); } async clusterKeys() { var cursor, end, found, i2, k, keys, len, next, start; if (this.connection == null) { return this.Promise.resolve(this.keys()); } keys = []; cursor = null; start = `b_${this.id}-`.length; end = "_settings".length; while (cursor !== 0) { [next, found] = await this.connection.__runCommand__(["scan", cursor != null ? cursor : 0, "match", `b_${this.id}-*_settings`, "count", 1e4]); cursor = ~~next; for (i2 = 0, len = found.length; i2 < len; i2++) { k = found[i2]; keys.push(k.slice(start, -end)); } } return keys; } _startAutoCleanup() { var base; clearInterval(this.interval); return typeof (base = this.interval = setInterval(async () => { var e2, k, ref, results, time, v; time = Date.now(); ref = this.instances; results = []; for (k in ref) { v = ref[k]; try { if (await v._store.__groupCheck__(time)) { results.push(this.deleteKey(k)); } else { results.push(void 0); } } catch (error) { e2 = error; results.push(v.Events.trigger("error", e2)); } } return results; }, this.timeout / 2)).unref === "function" ? base.unref() : void 0; } updateSettings(options = {}) { parser$3.overwrite(options, this.defaults, this); parser$3.overwrite(options, options, this.limiterOptions); if (options.timeout != null) { return this._startAutoCleanup(); } } disconnect(flush = true) { var ref; if (!this.sharedConnection) { return (ref = this.connection) != null ? ref.disconnect(flush) : void 0; } } } Group2.prototype.defaults = { timeout: 1e3 * 60 * 5, connection: null, Promise, id: "group-key" }; return Group2; }).call(commonjsGlobal); var Group_1 = Group; var Batcher, Events$3, parser$4; parser$4 = parser; Events$3 = Events_1; Batcher = (function() { class Batcher2 { constructor(options = {}) { this.options = options; parser$4.load(this.options, this.defaults, this); this.Events = new Events$3(this); this._arr = []; this._resetPromise(); this._lastFlush = Date.now(); } _resetPromise() { return this._promise = new this.Promise((res, rej) => { return this._resolve = res; }); } _flush() { clearTimeout(this._timeout); this._lastFlush = Date.now(); this._resolve(); this.Events.trigger("batch", this._arr); this._arr = []; return this._resetPromise(); } add(data) { var ret; this._arr.push(data); ret = this._promise; if (this._arr.length === this.maxSize) { this._flush(); } else if (this.maxTime != null && this._arr.length === 1) { this._timeout = setTimeout(() => { return this._flush(); }, this.maxTime); } return ret; } } Batcher2.prototype.defaults = { maxTime: null, maxSize: null, Promise }; return Batcher2; }).call(commonjsGlobal); var Batcher_1 = Batcher; var require$$4$1 = () => console.log("You must import the full version of Bottleneck in order to use this feature."); var require$$8 = getCjsExportFromNamespace(version$2); var Bottleneck2, DEFAULT_PRIORITY$1, Events$4, Job$1, LocalDatastore$1, NUM_PRIORITIES$1, Queues$1, RedisDatastore$1, States$1, Sync$1, parser$5, splice = [].splice; NUM_PRIORITIES$1 = 10; DEFAULT_PRIORITY$1 = 5; parser$5 = parser; Queues$1 = Queues_1; Job$1 = Job_1; LocalDatastore$1 = LocalDatastore_1; RedisDatastore$1 = require$$4$1; Events$4 = Events_1; States$1 = States_1; Sync$1 = Sync_1; Bottleneck2 = (function() { class Bottleneck3 { constructor(options = {}, ...invalid) { var storeInstanceOptions, storeOptions; this._addToQueue = this._addToQueue.bind(this); this._validateOptions(options, invalid); parser$5.load(options, this.instanceDefaults, this); this._queues = new Queues$1(NUM_PRIORITIES$1); this._scheduled = {}; this._states = new States$1(["RECEIVED", "QUEUED", "RUNNING", "EXECUTING"].concat(this.trackDoneStatus ? ["DONE"] : [])); this._limiter = null; this.Events = new Events$4(this); this._submitLock = new Sync$1("submit", this.Promise); this._registerLock = new Sync$1("register", this.Promise); storeOptions = parser$5.load(options, this.storeDefaults, {}); this._store = (function() { if (this.datastore === "redis" || this.datastore === "ioredis" || this.connection != null) { storeInstanceOptions = parser$5.load(options, this.redisStoreDefaults, {}); return new RedisDatastore$1(this, storeOptions, storeInstanceOptions); } else if (this.datastore === "local") { storeInstanceOptions = parser$5.load(options, this.localStoreDefaults, {}); return new LocalDatastore$1(this, storeOptions, storeInstanceOptions); } else { throw new Bottleneck3.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`); } }).call(this); this._queues.on("leftzero", () => { var ref; return (ref = this._store.heartbeat) != null ? typeof ref.ref === "function" ? ref.ref() : void 0 : void 0; }); this._queues.on("zero", () => { var ref; return (ref = this._store.heartbeat) != null ? typeof ref.unref === "function" ? ref.unref() : void 0 : void 0; }); } _validateOptions(options, invalid) { if (!(options != null && typeof options === "object" && invalid.length === 0)) { throw new Bottleneck3.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1."); } } ready() { return this._store.ready; } clients() { return this._store.clients; } channel() { return `b_${this.id}`; } channel_client() { return `b_${this.id}_${this._store.clientId}`; } publish(message) { return this._store.__publish__(message); } disconnect(flush = true) { return this._store.__disconnect__(flush); } chain(_limiter) { this._limiter = _limiter; return this; } queued(priority) { return this._queues.queued(priority); } clusterQueued() { return this._store.__queued__(); } empty() { return this.queued() === 0 && this._submitLock.isEmpty(); } running() { return this._store.__running__(); } done() { return this._store.__done__(); } jobStatus(id) { return this._states.jobStatus(id); } jobs(status) { return this._states.statusJobs(status); } counts() { return this._states.statusCounts(); } _randomIndex() { return Math.random().toString(36).slice(2); } check(weight = 1) { return this._store.__check__(weight); } _clearGlobalState(index) { if (this._scheduled[index] != null) { clearTimeout(this._scheduled[index].expiration); delete this._scheduled[index]; return true; } else { return false; } } async _free(index, job, options, eventInfo) { var e2, running; try { ({ running } = await this._store.__free__(index, options.weight)); this.Events.trigger("debug", `Freed ${options.id}`, eventInfo); if (running === 0 && this.empty()) { return this.Events.trigger("idle"); } } catch (error1) { e2 = error1; return this.Events.trigger("error", e2); } } _run(index, job, wait2) { var clearGlobalState, free, run; job.doRun(); clearGlobalState = this._clearGlobalState.bind(this, index); run = this._run.bind(this, index, job); free = this._free.bind(this, index, job); return this._scheduled[index] = { timeout: setTimeout(() => { return job.doExecute(this._limiter, clearGlobalState, run, free); }, wait2), expiration: job.options.expiration != null ? setTimeout(function() { return job.doExpire(clearGlobalState, run, free); }, wait2 + job.options.expiration) : void 0, job }; } _drainOne(capacity) { return this._registerLock.schedule(() => { var args, index, next, options, queue; if (this.queued() === 0) { return this.Promise.resolve(null); } queue = this._queues.getFirst(); ({ options, args } = next = queue.first()); if (capacity != null && options.weight > capacity) { return this.Promise.resolve(null); } this.Events.trigger("debug", `Draining ${options.id}`, { args, options }); index = this._randomIndex(); return this._store.__register__(index, options.weight, options.expiration).then(({ success, wait: wait2, reservoir }) => { var empty; this.Events.trigger("debug", `Drained ${options.id}`, { success, args, options }); if (success) { queue.shift(); empty = this.empty(); if (empty) { this.Events.trigger("empty"); } if (reservoir === 0) { this.Events.trigger("depleted", empty); } this._run(index, next, wait2); return this.Promise.resolve(options.weight); } else { return this.Promise.resolve(null); } }); }); } _drainAll(capacity, total = 0) { return this._drainOne(capacity).then((drained) => { var newCapacity; if (drained != null) { newCapacity = capacity != null ? capacity - drained : capacity; return this._drainAll(newCapacity, total + drained); } else { return this.Promise.resolve(total); } }).catch((e2) => { return this.Events.trigger("error", e2); }); } _dropAllQueued(message) { return this._queues.shiftAll(function(job) { return job.doDrop({ message }); }); } stop(options = {}) { var done, waitForExecuting; options = parser$5.load(options, this.stopDefaults); waitForExecuting = (at) => { var finished; finished = () => { var counts; counts = this._states.counts; return counts[0] + counts[1] + counts[2] + counts[3] === at; }; return new this.Promise((resolve, reject) => { if (finished()) { return resolve(); } else { return this.on("done", () => { if (finished()) { this.removeAllListeners("done"); return resolve(); } }); } }); }; done = options.dropWaitingJobs ? (this._run = function(index, next) { return next.doDrop({ message: options.dropErrorMessage }); }, this._drainOne = () => { return this.Promise.resolve(null); }, this._registerLock.schedule(() => { return this._submitLock.schedule(() => { var k, ref, v; ref = this._scheduled; for (k in ref) { v = ref[k]; if (this.jobStatus(v.job.options.id) === "RUNNING") { clearTimeout(v.timeout); clearTimeout(v.expiration); v.job.doDrop({ message: options.dropErrorMessage }); } } this._dropAllQueued(options.dropErrorMessage); return waitForExecuting(0); }); })) : this.schedule({ priority: NUM_PRIORITIES$1 - 1, weight: 0 }, () => { return waitForExecuting(1); }); this._receive = function(job) { return job._reject(new Bottleneck3.prototype.BottleneckError(options.enqueueErrorMessage)); }; this.stop = () => { return this.Promise.reject(new Bottleneck3.prototype.BottleneckError("stop() has already been called")); }; return done; } async _addToQueue(job) { var args, blocked, error, options, reachedHWM, shifted, strategy; ({ args, options } = job); try { ({ reachedHWM, blocked, strategy } = await this._store.__submit__(this.queued(), options.weight)); } catch (error1) { error = error1; this.Events.trigger("debug", `Could not queue ${options.id}`, { args, options, error }); job.doDrop({ error }); return false; } if (blocked) { job.doDrop(); return true; } else if (reachedHWM) { shifted = strategy === Bottleneck3.prototype.strategy.LEAK ? this._queues.shiftLastFrom(options.priority) : strategy === Bottleneck3.prototype.strategy.OVERFLOW_PRIORITY ? this._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck3.prototype.strategy.OVERFLOW ? job : void 0; if (shifted != null) { shifted.doDrop(); } if (shifted == null || strategy === Bottleneck3.prototype.strategy.OVERFLOW) { if (shifted == null) { job.doDrop(); } return reachedHWM; } } job.doQueue(reachedHWM, blocked); this._queues.push(job); await this._drainAll(); return reachedHWM; } _receive(job) { if (this._states.jobStatus(job.options.id) != null) { job._reject(new Bottleneck3.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`)); return false; } else { job.doReceive(); return this._submitLock.schedule(this._addToQueue, job); } } submit(...args) { var cb, fn, job, options, ref, ref1, task; if (typeof args[0] === "function") { ref = args, [fn, ...args] = ref, [cb] = splice.call(args, -1); options = parser$5.load({}, this.jobDefaults); } else { ref1 = args, [options, fn, ...args] = ref1, [cb] = splice.call(args, -1); options = parser$5.load(options, this.jobDefaults); } task = (...args2) => { return new this.Promise(function(resolve, reject) { return fn(...args2, function(...args3) { return (args3[0] != null ? reject : resolve)(args3); }); }); }; job = new Job$1(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); job.promise.then(function(args2) { return typeof cb === "function" ? cb(...args2) : void 0; }).catch(function(args2) { if (Array.isArray(args2)) { return typeof cb === "function" ? cb(...args2) : void 0; } else { return typeof cb === "function" ? cb(args2) : void 0; } }); return this._receive(job); } schedule(...args) { var job, options, task; if (typeof args[0] === "function") { [task, ...args] = args; options = {}; } else { [options, task, ...args] = args; } job = new Job$1(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); this._receive(job); return job.promise; } wrap(fn) { var schedule, wrapped; schedule = this.schedule.bind(this); wrapped = function(...args) { return schedule(fn.bind(this), ...args); }; wrapped.withOptions = function(options, ...args) { return schedule(options, fn, ...args); }; return wrapped; } async updateSettings(options = {}) { await this._store.__updateSettings__(parser$5.overwrite(options, this.storeDefaults)); parser$5.overwrite(options, this.instanceDefaults, this); return this; } currentReservoir() { return this._store.__currentReservoir__(); } incrementReservoir(incr = 0) { return this._store.__incrementReservoir__(incr); } } Bottleneck3.default = Bottleneck3; Bottleneck3.Events = Events$4; Bottleneck3.version = Bottleneck3.prototype.version = require$$8.version; Bottleneck3.strategy = Bottleneck3.prototype.strategy = { LEAK: 1, OVERFLOW: 2, OVERFLOW_PRIORITY: 4, BLOCK: 3 }; Bottleneck3.BottleneckError = Bottleneck3.prototype.BottleneckError = BottleneckError_1; Bottleneck3.Group = Bottleneck3.prototype.Group = Group_1; Bottleneck3.RedisConnection = Bottleneck3.prototype.RedisConnection = require$$2; Bottleneck3.IORedisConnection = Bottleneck3.prototype.IORedisConnection = require$$3; Bottleneck3.Batcher = Bottleneck3.prototype.Batcher = Batcher_1; Bottleneck3.prototype.jobDefaults = { priority: DEFAULT_PRIORITY$1, weight: 1, expiration: null, id: "" }; Bottleneck3.prototype.storeDefaults = { maxConcurrent: null, minTime: 0, highWater: null, strategy: Bottleneck3.prototype.strategy.LEAK, penalty: null, reservoir: null, reservoirRefreshInterval: null, reservoirRefreshAmount: null, reservoirIncreaseInterval: null, reservoirIncreaseAmount: null, reservoirIncreaseMaximum: null }; Bottleneck3.prototype.localStoreDefaults = { Promise, timeout: null, heartbeatInterval: 250 }; Bottleneck3.prototype.redisStoreDefaults = { Promise, timeout: null, heartbeatInterval: 5e3, clientTimeout: 1e4, Redis: null, clientOptions: {}, clusterNodes: null, clearDatastore: false, connection: null }; Bottleneck3.prototype.instanceDefaults = { datastore: "local", connection: null, id: "", rejectOnDrop: true, trackDoneStatus: false, Promise }; Bottleneck3.prototype.stopDefaults = { enqueueErrorMessage: "This limiter has been stopped and cannot accept new jobs.", dropWaitingJobs: true, dropErrorMessage: "This limiter has been stopped." }; return Bottleneck3; }).call(commonjsGlobal); var Bottleneck_1 = Bottleneck2; var lib = Bottleneck_1; return lib; }); } }); // node_modules/.pnpm/btoa-lite@1.0.0/node_modules/btoa-lite/btoa-browser.js var require_btoa_browser = __commonJS({ "node_modules/.pnpm/btoa-lite@1.0.0/node_modules/btoa-lite/btoa-browser.js"(exports, module) { module.exports = function _btoa(str) { return btoa(str); }; } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/version.js var VERSION9; var init_version = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/version.js"() { VERSION9 = "4.1.0"; } }); // node_modules/.pnpm/@octokit+oauth-authorization-url@6.0.2/node_modules/@octokit/oauth-authorization-url/dist-web/index.js function oauthAuthorizationUrl(options) { const clientType = options.clientType || "oauth-app"; const baseUrl = options.baseUrl || "https://github.com"; const result = { clientType, allowSignup: options.allowSignup === false ? false : true, clientId: options.clientId, login: options.login || null, redirectUrl: options.redirectUrl || null, state: options.state || Math.random().toString(36).substr(2), url: "" }; if (clientType === "oauth-app") { const scopes = "scopes" in options ? options.scopes : []; result.scopes = typeof scopes === "string" ? scopes.split(/[,\s]+/).filter(Boolean) : scopes; } result.url = urlBuilderAuthorize(`${baseUrl}/login/oauth/authorize`, result); return result; } function urlBuilderAuthorize(base, options) { const map = { allowSignup: "allow_signup", clientId: "client_id", login: "login", redirectUrl: "redirect_uri", scopes: "scope", state: "state" }; let url = base; Object.keys(map).filter((k) => options[k] !== null).filter((k) => { if (k !== "scopes") return true; if (options.clientType === "github-app") return false; return !Array.isArray(options[k]) || options[k].length > 0; }).map((key) => [map[key], `${options[key]}`]).forEach(([key, value], index) => { url += index === 0 ? `?` : "&"; url += `${key}=${encodeURIComponent(value)}`; }); return url; } var init_dist_web9 = __esm({ "node_modules/.pnpm/@octokit+oauth-authorization-url@6.0.2/node_modules/@octokit/oauth-authorization-url/dist-web/index.js"() { } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/utils.js function requestToOAuthBaseUrl(request2) { const endpointDefaults = request2.endpoint.DEFAULTS; return /^https:\/\/(api\.)?github\.com$/.test(endpointDefaults.baseUrl) ? "https://github.com" : endpointDefaults.baseUrl.replace("/api/v3", ""); } async function oauthRequest(request2, route, parameters) { const withOAuthParameters = { baseUrl: requestToOAuthBaseUrl(request2), headers: { accept: "application/json" }, ...parameters }; const response = await request2(route, withOAuthParameters); if ("error" in response.data) { const error = new RequestError( `${response.data.error_description} (${response.data.error}, ${response.data.error_uri})`, 400, { request: request2.endpoint.merge( route, withOAuthParameters ), headers: response.headers } ); error.response = response; throw error; } return response; } var init_utils = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/utils.js"() { init_dist_web4(); } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/get-web-flow-authorization-url.js function getWebFlowAuthorizationUrl({ request: request2 = request, ...options }) { const baseUrl = requestToOAuthBaseUrl(request2); return oauthAuthorizationUrl({ ...options, baseUrl }); } var init_get_web_flow_authorization_url = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/get-web-flow-authorization-url.js"() { init_dist_web9(); init_dist_web5(); init_utils(); } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/exchange-web-flow-code.js async function exchangeWebFlowCode(options) { const request2 = options.request || /* istanbul ignore next: we always pass a custom request in tests */ request; const response = await oauthRequest( request2, "POST /login/oauth/access_token", { client_id: options.clientId, client_secret: options.clientSecret, code: options.code, redirect_uri: options.redirectUrl } ); const authentication = { clientType: options.clientType, clientId: options.clientId, clientSecret: options.clientSecret, token: response.data.access_token, scopes: response.data.scope.split(/\s+/).filter(Boolean) }; if (options.clientType === "github-app") { if ("refresh_token" in response.data) { const apiTimeInMs = new Date(response.headers.date).getTime(); authentication.refreshToken = response.data.refresh_token, authentication.expiresAt = toTimestamp( apiTimeInMs, response.data.expires_in ), authentication.refreshTokenExpiresAt = toTimestamp( apiTimeInMs, response.data.refresh_token_expires_in ); } delete authentication.scopes; } return { ...response, authentication }; } function toTimestamp(apiTimeInMs, expirationInSeconds) { return new Date(apiTimeInMs + expirationInSeconds * 1e3).toISOString(); } var init_exchange_web_flow_code = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/exchange-web-flow-code.js"() { init_dist_web5(); init_utils(); } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/create-device-code.js async function createDeviceCode(options) { const request2 = options.request || /* istanbul ignore next: we always pass a custom request in tests */ request; const parameters = { client_id: options.clientId }; if ("scopes" in options && Array.isArray(options.scopes)) { parameters.scope = options.scopes.join(" "); } return oauthRequest(request2, "POST /login/device/code", parameters); } var init_create_device_code = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/create-device-code.js"() { init_dist_web5(); init_utils(); } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/exchange-device-code.js async function exchangeDeviceCode(options) { const request2 = options.request || /* istanbul ignore next: we always pass a custom request in tests */ request; const response = await oauthRequest( request2, "POST /login/oauth/access_token", { client_id: options.clientId, device_code: options.code, grant_type: "urn:ietf:params:oauth:grant-type:device_code" } ); const authentication = { clientType: options.clientType, clientId: options.clientId, token: response.data.access_token, scopes: response.data.scope.split(/\s+/).filter(Boolean) }; if ("clientSecret" in options) { authentication.clientSecret = options.clientSecret; } if (options.clientType === "github-app") { if ("refresh_token" in response.data) { const apiTimeInMs = new Date(response.headers.date).getTime(); authentication.refreshToken = response.data.refresh_token, authentication.expiresAt = toTimestamp2( apiTimeInMs, response.data.expires_in ), authentication.refreshTokenExpiresAt = toTimestamp2( apiTimeInMs, response.data.refresh_token_expires_in ); } delete authentication.scopes; } return { ...response, authentication }; } function toTimestamp2(apiTimeInMs, expirationInSeconds) { return new Date(apiTimeInMs + expirationInSeconds * 1e3).toISOString(); } var init_exchange_device_code = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/exchange-device-code.js"() { init_dist_web5(); init_utils(); } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/check-token.js async function checkToken(options) { const request2 = options.request || /* istanbul ignore next: we always pass a custom request in tests */ request; const response = await request2("POST /applications/{client_id}/token", { headers: { authorization: `basic ${(0, import_btoa_lite.default)( `${options.clientId}:${options.clientSecret}` )}` }, client_id: options.clientId, access_token: options.token }); const authentication = { clientType: options.clientType, clientId: options.clientId, clientSecret: options.clientSecret, token: options.token, scopes: response.data.scopes }; if (response.data.expires_at) authentication.expiresAt = response.data.expires_at; if (options.clientType === "github-app") { delete authentication.scopes; } return { ...response, authentication }; } var import_btoa_lite; var init_check_token = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/check-token.js"() { init_dist_web5(); import_btoa_lite = __toESM(require_btoa_browser()); } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/refresh-token.js async function refreshToken(options) { const request2 = options.request || /* istanbul ignore next: we always pass a custom request in tests */ request; const response = await oauthRequest( request2, "POST /login/oauth/access_token", { client_id: options.clientId, client_secret: options.clientSecret, grant_type: "refresh_token", refresh_token: options.refreshToken } ); const apiTimeInMs = new Date(response.headers.date).getTime(); const authentication = { clientType: "github-app", clientId: options.clientId, clientSecret: options.clientSecret, token: response.data.access_token, refreshToken: response.data.refresh_token, expiresAt: toTimestamp3(apiTimeInMs, response.data.expires_in), refreshTokenExpiresAt: toTimestamp3( apiTimeInMs, response.data.refresh_token_expires_in ) }; return { ...response, authentication }; } function toTimestamp3(apiTimeInMs, expirationInSeconds) { return new Date(apiTimeInMs + expirationInSeconds * 1e3).toISOString(); } var init_refresh_token = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/refresh-token.js"() { init_dist_web5(); init_utils(); } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/scope-token.js async function scopeToken(options) { const { request: optionsRequest, clientType, clientId, clientSecret, token, ...requestOptions } = options; const request2 = optionsRequest || /* istanbul ignore next: we always pass a custom request in tests */ request; const response = await request2( "POST /applications/{client_id}/token/scoped", { headers: { authorization: `basic ${(0, import_btoa_lite2.default)(`${clientId}:${clientSecret}`)}` }, client_id: clientId, access_token: token, ...requestOptions } ); const authentication = Object.assign( { clientType, clientId, clientSecret, token: response.data.token }, response.data.expires_at ? { expiresAt: response.data.expires_at } : {} ); return { ...response, authentication }; } var import_btoa_lite2; var init_scope_token = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/scope-token.js"() { init_dist_web5(); import_btoa_lite2 = __toESM(require_btoa_browser()); } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/reset-token.js async function resetToken(options) { const request2 = options.request || /* istanbul ignore next: we always pass a custom request in tests */ request; const auth6 = (0, import_btoa_lite3.default)(`${options.clientId}:${options.clientSecret}`); const response = await request2( "PATCH /applications/{client_id}/token", { headers: { authorization: `basic ${auth6}` }, client_id: options.clientId, access_token: options.token } ); const authentication = { clientType: options.clientType, clientId: options.clientId, clientSecret: options.clientSecret, token: response.data.token, scopes: response.data.scopes }; if (response.data.expires_at) authentication.expiresAt = response.data.expires_at; if (options.clientType === "github-app") { delete authentication.scopes; } return { ...response, authentication }; } var import_btoa_lite3; var init_reset_token = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/reset-token.js"() { init_dist_web5(); import_btoa_lite3 = __toESM(require_btoa_browser()); } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/delete-token.js async function deleteToken(options) { const request2 = options.request || /* istanbul ignore next: we always pass a custom request in tests */ request; const auth6 = (0, import_btoa_lite4.default)(`${options.clientId}:${options.clientSecret}`); return request2( "DELETE /applications/{client_id}/token", { headers: { authorization: `basic ${auth6}` }, client_id: options.clientId, access_token: options.token } ); } var import_btoa_lite4; var init_delete_token = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/delete-token.js"() { init_dist_web5(); import_btoa_lite4 = __toESM(require_btoa_browser()); } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/delete-authorization.js async function deleteAuthorization(options) { const request2 = options.request || /* istanbul ignore next: we always pass a custom request in tests */ request; const auth6 = (0, import_btoa_lite5.default)(`${options.clientId}:${options.clientSecret}`); return request2( "DELETE /applications/{client_id}/grant", { headers: { authorization: `basic ${auth6}` }, client_id: options.clientId, access_token: options.token } ); } var import_btoa_lite5; var init_delete_authorization = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/delete-authorization.js"() { init_dist_web5(); import_btoa_lite5 = __toESM(require_btoa_browser()); } }); // node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/index.js var dist_src_exports = {}; __export(dist_src_exports, { VERSION: () => VERSION9, checkToken: () => checkToken, createDeviceCode: () => createDeviceCode, deleteAuthorization: () => deleteAuthorization, deleteToken: () => deleteToken, exchangeDeviceCode: () => exchangeDeviceCode, exchangeWebFlowCode: () => exchangeWebFlowCode, getWebFlowAuthorizationUrl: () => getWebFlowAuthorizationUrl, refreshToken: () => refreshToken, resetToken: () => resetToken, scopeToken: () => scopeToken }); var init_dist_src = __esm({ "node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-src/index.js"() { init_version(); init_get_web_flow_authorization_url(); init_exchange_web_flow_code(); init_create_device_code(); init_exchange_device_code(); init_check_token(); init_refresh_token(); init_scope_token(); init_reset_token(); init_delete_token(); init_delete_authorization(); } }); // node_modules/.pnpm/@octokit+auth-oauth-device@6.1.0/node_modules/@octokit/auth-oauth-device/dist-web/index.js async function getOAuthAccessToken(state, options) { const cachedAuthentication = getCachedAuthentication(state, options.auth); if (cachedAuthentication) return cachedAuthentication; const { data: verification } = await createDeviceCode({ clientType: state.clientType, clientId: state.clientId, request: options.request || state.request, // @ts-expect-error the extra code to make TS happy is not worth it scopes: options.auth.scopes || state.scopes }); await state.onVerification(verification); const authentication = await waitForAccessToken( options.request || state.request, state.clientId, state.clientType, verification ); state.authentication = authentication; return authentication; } function getCachedAuthentication(state, auth22) { if (auth22.refresh === true) return false; if (!state.authentication) return false; if (state.clientType === "github-app") { return state.authentication; } const authentication = state.authentication; const newScope = ("scopes" in auth22 && auth22.scopes || state.scopes).join( " " ); const currentScope = authentication.scopes.join(" "); return newScope === currentScope ? authentication : false; } async function wait(seconds) { await new Promise((resolve) => setTimeout(resolve, seconds * 1e3)); } async function waitForAccessToken(request2, clientId, clientType, verification) { try { const options = { clientId, request: request2, code: verification.device_code }; const { authentication } = clientType === "oauth-app" ? await exchangeDeviceCode({ ...options, clientType: "oauth-app" }) : await exchangeDeviceCode({ ...options, clientType: "github-app" }); return { type: "token", tokenType: "oauth", ...authentication }; } catch (error) { if (!error.response) throw error; const errorType = error.response.data.error; if (errorType === "authorization_pending") { await wait(verification.interval); return waitForAccessToken(request2, clientId, clientType, verification); } if (errorType === "slow_down") { await wait(verification.interval + 5); return waitForAccessToken(request2, clientId, clientType, verification); } throw error; } } async function auth2(state, authOptions) { return getOAuthAccessToken(state, { auth: authOptions }); } async function hook2(state, request2, route, parameters) { let endpoint2 = request2.endpoint.merge( route, parameters ); if (/\/login\/(oauth\/access_token|device\/code)$/.test(endpoint2.url)) { return request2(endpoint2); } const { token } = await getOAuthAccessToken(state, { request: request2, auth: { type: "oauth" } }); endpoint2.headers.authorization = `token ${token}`; return request2(endpoint2); } function createOAuthDeviceAuth(options) { const requestWithDefaults = options.request || request.defaults({ headers: { "user-agent": `octokit-auth-oauth-device.js/${VERSION10} ${getUserAgent()}` } }); const { request: request2 = requestWithDefaults, ...otherOptions } = options; const state = options.clientType === "github-app" ? { ...otherOptions, clientType: "github-app", request: request2 } : { ...otherOptions, clientType: "oauth-app", request: request2, scopes: options.scopes || [] }; if (!options.clientId) { throw new Error( '[@octokit/auth-oauth-device] "clientId" option must be set (https://github.com/octokit/auth-oauth-device.js#usage)' ); } if (!options.onVerification) { throw new Error( '[@octokit/auth-oauth-device] "onVerification" option must be a function (https://github.com/octokit/auth-oauth-device.js#usage)' ); } return Object.assign(auth2.bind(null, state), { hook: hook2.bind(null, state) }); } var VERSION10; var init_dist_web10 = __esm({ "node_modules/.pnpm/@octokit+auth-oauth-device@6.1.0/node_modules/@octokit/auth-oauth-device/dist-web/index.js"() { init_dist_web(); init_dist_web5(); init_dist_src(); VERSION10 = "6.1.0"; } }); // node_modules/.pnpm/@octokit+auth-oauth-user@4.1.0/node_modules/@octokit/auth-oauth-user/dist-web/index.js var dist_web_exports6 = {}; __export(dist_web_exports6, { createOAuthUserAuth: () => createOAuthUserAuth2, requiresBasicAuth: () => requiresBasicAuth }); async function getAuthentication(state) { if ("code" in state.strategyOptions) { const { authentication } = await exchangeWebFlowCode({ clientId: state.clientId, clientSecret: state.clientSecret, clientType: state.clientType, onTokenCreated: state.onTokenCreated, ...state.strategyOptions, request: state.request }); return { type: "token", tokenType: "oauth", ...authentication }; } if ("onVerification" in state.strategyOptions) { const deviceAuth = createOAuthDeviceAuth({ clientType: state.clientType, clientId: state.clientId, onTokenCreated: state.onTokenCreated, ...state.strategyOptions, request: state.request }); const authentication = await deviceAuth({ type: "oauth" }); return { clientSecret: state.clientSecret, ...authentication }; } if ("token" in state.strategyOptions) { return { type: "token", tokenType: "oauth", clientId: state.clientId, clientSecret: state.clientSecret, clientType: state.clientType, onTokenCreated: state.onTokenCreated, ...state.strategyOptions }; } throw new Error("[@octokit/auth-oauth-user] Invalid strategy options"); } async function auth3(state, options = {}) { var _a3, _b; if (!state.authentication) { state.authentication = state.clientType === "oauth-app" ? await getAuthentication(state) : await getAuthentication(state); } if (state.authentication.invalid) { throw new Error("[@octokit/auth-oauth-user] Token is invalid"); } const currentAuthentication = state.authentication; if ("expiresAt" in currentAuthentication) { if (options.type === "refresh" || new Date(currentAuthentication.expiresAt) < /* @__PURE__ */ new Date()) { const { authentication } = await refreshToken({ clientType: "github-app", clientId: state.clientId, clientSecret: state.clientSecret, refreshToken: currentAuthentication.refreshToken, request: state.request }); state.authentication = { tokenType: "oauth", type: "token", ...authentication }; } } if (options.type === "refresh") { if (state.clientType === "oauth-app") { throw new Error( "[@octokit/auth-oauth-user] OAuth Apps do not support expiring tokens" ); } if (!currentAuthentication.hasOwnProperty("expiresAt")) { throw new Error("[@octokit/auth-oauth-user] Refresh token missing"); } await ((_a3 = state.onTokenCreated) == null ? void 0 : _a3.call(state, state.authentication, { type: options.type })); } if (options.type === "check" || options.type === "reset") { const method = options.type === "check" ? checkToken : resetToken; try { const { authentication } = await method({ // @ts-expect-error making TS happy would require unnecessary code so no clientType: state.clientType, clientId: state.clientId, clientSecret: state.clientSecret, token: state.authentication.token, request: state.request }); state.authentication = { tokenType: "oauth", type: "token", // @ts-expect-error TBD ...authentication }; if (options.type === "reset") { await ((_b = state.onTokenCreated) == null ? void 0 : _b.call(state, state.authentication, { type: options.type })); } return state.authentication; } catch (error) { if (error.status === 404) { error.message = "[@octokit/auth-oauth-user] Token is invalid"; state.authentication.invalid = true; } throw error; } } if (options.type === "delete" || options.type === "deleteAuthorization") { const method = options.type === "delete" ? deleteToken : deleteAuthorization; try { await method({ // @ts-expect-error making TS happy would require unnecessary code so no clientType: state.clientType, clientId: state.clientId, clientSecret: state.clientSecret, token: state.authentication.token, request: state.request }); } catch (error) { if (error.status !== 404) throw error; } state.authentication.invalid = true; return state.authentication; } return state.authentication; } function requiresBasicAuth(url) { return url && ROUTES_REQUIRING_BASIC_AUTH.test(url); } async function hook3(state, request2, route, parameters = {}) { const endpoint2 = request2.endpoint.merge( route, parameters ); if (/\/login\/(oauth\/access_token|device\/code)$/.test(endpoint2.url)) { return request2(endpoint2); } if (requiresBasicAuth(endpoint2.url)) { const credentials = (0, import_btoa_lite6.default)(`${state.clientId}:${state.clientSecret}`); endpoint2.headers.authorization = `basic ${credentials}`; return request2(endpoint2); } const { token } = state.clientType === "oauth-app" ? await auth3({ ...state, request: request2 }) : await auth3({ ...state, request: request2 }); endpoint2.headers.authorization = "token " + token; return request2(endpoint2); } function createOAuthUserAuth2({ clientId, clientSecret, clientType = "oauth-app", request: request2 = request.defaults({ headers: { "user-agent": `octokit-auth-oauth-app.js/${VERSION11} ${getUserAgent()}` } }), onTokenCreated, ...strategyOptions }) { const state = Object.assign({ clientType, clientId, clientSecret, onTokenCreated, strategyOptions, request: request2 }); return Object.assign(auth3.bind(null, state), { // @ts-expect-error not worth the extra code needed to appease TS hook: hook3.bind(null, state) }); } var import_btoa_lite6, VERSION11, ROUTES_REQUIRING_BASIC_AUTH; var init_dist_web11 = __esm({ "node_modules/.pnpm/@octokit+auth-oauth-user@4.1.0/node_modules/@octokit/auth-oauth-user/dist-web/index.js"() { init_dist_web(); init_dist_web5(); init_dist_web10(); init_dist_src(); init_dist_src(); import_btoa_lite6 = __toESM(require_btoa_browser()); VERSION11 = "4.1.0"; ROUTES_REQUIRING_BASIC_AUTH = /\/applications\/[^/]+\/(token|grant)s?/; createOAuthUserAuth2.VERSION = VERSION11; } }); // node_modules/.pnpm/@octokit+auth-oauth-app@7.1.0/node_modules/@octokit/auth-oauth-app/dist-web/index.js var dist_web_exports7 = {}; __export(dist_web_exports7, { createOAuthAppAuth: () => createOAuthAppAuth, createOAuthUserAuth: () => createOAuthUserAuth2 }); async function auth4(state, authOptions) { if (authOptions.type === "oauth-app") { return { type: "oauth-app", clientId: state.clientId, clientSecret: state.clientSecret, clientType: state.clientType, headers: { authorization: `basic ${(0, import_btoa_lite7.default)( `${state.clientId}:${state.clientSecret}` )}` } }; } if ("factory" in authOptions) { const { type, ...options } = { ...authOptions, ...state }; return authOptions.factory(options); } const common = { clientId: state.clientId, clientSecret: state.clientSecret, request: state.request, ...authOptions }; const userAuth = state.clientType === "oauth-app" ? await createOAuthUserAuth2({ ...common, clientType: state.clientType }) : await createOAuthUserAuth2({ ...common, clientType: state.clientType }); return userAuth(); } async function hook4(state, request2, route, parameters) { let endpoint2 = request2.endpoint.merge( route, parameters ); if (/\/login\/(oauth\/access_token|device\/code)$/.test(endpoint2.url)) { return request2(endpoint2); } if (state.clientType === "github-app" && !requiresBasicAuth(endpoint2.url)) { throw new Error( `[@octokit/auth-oauth-app] GitHub Apps cannot use their client ID/secret for basic authentication for endpoints other than "/applications/{client_id}/**". "${endpoint2.method} ${endpoint2.url}" is not supported.` ); } const credentials = (0, import_btoa_lite8.default)(`${state.clientId}:${state.clientSecret}`); endpoint2.headers.authorization = `basic ${credentials}`; try { return await request2(endpoint2); } catch (error) { if (error.status !== 401) throw error; error.message = `[@octokit/auth-oauth-app] "${endpoint2.method} ${endpoint2.url}" does not support clientId/clientSecret basic authentication.`; throw error; } } function createOAuthAppAuth(options) { const state = Object.assign( { request: request.defaults({ headers: { "user-agent": `octokit-auth-oauth-app.js/${VERSION12} ${getUserAgent()}` } }), clientType: "oauth-app" }, options ); return Object.assign(auth4.bind(null, state), { hook: hook4.bind(null, state) }); } var import_btoa_lite7, import_btoa_lite8, VERSION12; var init_dist_web12 = __esm({ "node_modules/.pnpm/@octokit+auth-oauth-app@7.1.0/node_modules/@octokit/auth-oauth-app/dist-web/index.js"() { init_dist_web(); init_dist_web5(); import_btoa_lite7 = __toESM(require_btoa_browser()); init_dist_web11(); import_btoa_lite8 = __toESM(require_btoa_browser()); init_dist_web11(); init_dist_web11(); VERSION12 = "7.1.0"; } }); // node_modules/.pnpm/universal-github-app-jwt@1.2.0/node_modules/universal-github-app-jwt/dist-web/index.bundled.js var index_bundled_exports = {}; __export(index_bundled_exports, { githubAppJwt: () => o }); function t(t2, n2, r2, e2, i2, a2, o2) { try { var u2 = t2[a2](o2), c = u2.value; } catch (t3) { return void r2(t3); } u2.done ? n2(c) : Promise.resolve(c).then(e2, i2); } function n(n2) { return function() { var r2 = this, e2 = arguments; return new Promise(function(i2, a2) { var o2 = n2.apply(r2, e2); function u2(n3) { t(o2, i2, a2, u2, c, "next", n3); } function c(n3) { t(o2, i2, a2, u2, c, "throw", n3); } u2(void 0); }); }; } function r(t2) { for (var n2 = new ArrayBuffer(t2.length), r2 = new Uint8Array(n2), e2 = 0, i2 = t2.length; e2 < i2; e2++) r2[e2] = t2.charCodeAt(e2); return n2; } function e(t2) { return t2.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"); } function i(t2) { return e(btoa(JSON.stringify(t2))); } function o(t2) { return u.apply(this, arguments); } function u() { return (u = n(function* (t2) { var { id: n2, privateKey: r2, now: e2 = Math.floor(Date.now() / 1e3) } = t2, i2 = e2 - 30, o2 = i2 + 600, u2 = { iat: i2, exp: o2, iss: n2 }; return { appId: n2, expiration: o2, token: yield a({ privateKey: r2, payload: u2 }) }; })).apply(this, arguments); } var a; var init_index_bundled = __esm({ "node_modules/.pnpm/universal-github-app-jwt@1.2.0/node_modules/universal-github-app-jwt/dist-web/index.bundled.js"() { a = function() { var t2 = n(function* (t3) { var { privateKey: n2, payload: a2 } = t3; if (/BEGIN RSA PRIVATE KEY/.test(n2)) throw new Error("[universal-github-app-jwt] Private Key is in PKCS#1 format, but only PKCS#8 is supported. See https://github.com/gr2m/universal-github-app-jwt#readme"); var o2, u2 = { name: "RSASSA-PKCS1-v1_5", hash: { name: "SHA-256" } }, c = (o2 = n2.trim().split("\n").slice(1, -1).join(""), r(atob(o2))), p = yield crypto.subtle.importKey("pkcs8", c, u2, false, ["sign"]), f = function(t4, n3) { return "".concat(i(t4), ".").concat(i(n3)); }({ alg: "RS256", typ: "JWT" }, a2), l = r(f), s = function(t4) { for (var n3 = "", r2 = new Uint8Array(t4), i2 = r2.byteLength, a3 = 0; a3 < i2; a3++) n3 += String.fromCharCode(r2[a3]); return e(btoa(n3)); }(yield crypto.subtle.sign(u2.name, p, l)); return "".concat(f, ".").concat(s); }); return function(n2) { return t2.apply(this, arguments); }; }(); } }); // node_modules/.pnpm/@wolfy1339+lru-cache@11.0.2-patch.1/node_modules/@wolfy1339/lru-cache/dist/commonjs/index.js var require_commonjs = __commonJS({ "node_modules/.pnpm/@wolfy1339+lru-cache@11.0.2-patch.1/node_modules/@wolfy1339/lru-cache/dist/commonjs/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LRUCache = void 0; var perf = typeof performance === "object" && performance && typeof performance.now === "function" ? performance : Date; var warned = /* @__PURE__ */ new Set(); var PROCESS = typeof process === "object" && !!process ? process : {}; var emitWarning = (msg, type, code, fn) => { typeof PROCESS.emitWarning === "function" ? PROCESS.emitWarning(msg, type, code, fn) : console.error(`[${code}] ${type}: ${msg}`); }; var AC = globalThis.AbortController; var AS = globalThis.AbortSignal; var _a3; if (typeof AC === "undefined") { AS = class AbortSignal { constructor() { __publicField(this, "onabort"); __publicField(this, "_onabort", []); __publicField(this, "reason"); __publicField(this, "aborted", false); } addEventListener(_, fn) { this._onabort.push(fn); } }; AC = class AbortController { constructor() { __publicField(this, "signal", new AS()); warnACPolyfill(); } abort(reason) { var _a5, _b2; if (this.signal.aborted) return; this.signal.reason = reason; this.signal.aborted = true; for (const fn of this.signal._onabort) { fn(reason); } (_b2 = (_a5 = this.signal).onabort) == null ? void 0 : _b2.call(_a5, reason); } }; let printACPolyfillWarning = ((_a3 = PROCESS.env) == null ? void 0 : _a3.LRU_CACHE_IGNORE_AC_WARNING) !== "1"; const warnACPolyfill = () => { if (!printACPolyfillWarning) return; printACPolyfillWarning = false; emitWarning("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", warnACPolyfill); }; } var shouldWarn = (code) => !warned.has(code); var TYPE = Symbol("type"); var isPosInt = (n2) => n2 && n2 === Math.floor(n2) && n2 > 0 && isFinite(n2); var getUintArray = (max) => !isPosInt(max) ? null : max <= Math.pow(2, 8) ? Uint8Array : max <= Math.pow(2, 16) ? Uint16Array : max <= Math.pow(2, 32) ? Uint32Array : max <= Number.MAX_SAFE_INTEGER ? ZeroArray : null; var ZeroArray = class extends Array { constructor(size) { super(size); this.fill(0); } }; var _constructing; var _Stack = class _Stack { constructor(max, HeapCls) { __publicField(this, "heap"); __publicField(this, "length"); if (!__privateGet(_Stack, _constructing)) { throw new TypeError("instantiate Stack using Stack.create(n)"); } this.heap = new HeapCls(max); this.length = 0; } static create(max) { const HeapCls = getUintArray(max); if (!HeapCls) return []; __privateSet(_Stack, _constructing, true); const s = new _Stack(max, HeapCls); __privateSet(_Stack, _constructing, false); return s; } push(n2) { this.heap[this.length++] = n2; } pop() { return this.heap[--this.length]; } }; _constructing = new WeakMap(); // private constructor __privateAdd(_Stack, _constructing, false); var Stack = _Stack; var _a4, _b, _max, _maxSize, _dispose, _disposeAfter, _fetchMethod, _memoMethod, _size, _calculatedSize, _keyMap, _keyList, _valList, _next, _prev, _head, _tail, _free, _disposed, _sizes, _starts, _ttls, _hasDispose, _hasFetchMethod, _hasDisposeAfter, _LRUCache_instances, initializeTTLTracking_fn, _updateItemAge, _statusTTL, _setItemTTL, _isStale, initializeSizeTracking_fn, _removeItemSize, _addItemSize, _requireSize, indexes_fn, rindexes_fn, isValidIndex_fn, evict_fn, backgroundFetch_fn, isBackgroundFetch_fn, connect_fn, moveToTail_fn, delete_fn, clear_fn; var _LRUCache = class _LRUCache { constructor(options) { __privateAdd(this, _LRUCache_instances); // options that cannot be changed without disaster __privateAdd(this, _max); __privateAdd(this, _maxSize); __privateAdd(this, _dispose); __privateAdd(this, _disposeAfter); __privateAdd(this, _fetchMethod); __privateAdd(this, _memoMethod); /** * {@link LRUCache.OptionsBase.ttl} */ __publicField(this, "ttl"); /** * {@link LRUCache.OptionsBase.ttlResolution} */ __publicField(this, "ttlResolution"); /** * {@link LRUCache.OptionsBase.ttlAutopurge} */ __publicField(this, "ttlAutopurge"); /** * {@link LRUCache.OptionsBase.updateAgeOnGet} */ __publicField(this, "updateAgeOnGet"); /** * {@link LRUCache.OptionsBase.updateAgeOnHas} */ __publicField(this, "updateAgeOnHas"); /** * {@link LRUCache.OptionsBase.allowStale} */ __publicField(this, "allowStale"); /** * {@link LRUCache.OptionsBase.noDisposeOnSet} */ __publicField(this, "noDisposeOnSet"); /** * {@link LRUCache.OptionsBase.noUpdateTTL} */ __publicField(this, "noUpdateTTL"); /** * {@link LRUCache.OptionsBase.maxEntrySize} */ __publicField(this, "maxEntrySize"); /** * {@link LRUCache.OptionsBase.sizeCalculation} */ __publicField(this, "sizeCalculation"); /** * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection} */ __publicField(this, "noDeleteOnFetchRejection"); /** * {@link LRUCache.OptionsBase.noDeleteOnStaleGet} */ __publicField(this, "noDeleteOnStaleGet"); /** * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort} */ __publicField(this, "allowStaleOnFetchAbort"); /** * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection} */ __publicField(this, "allowStaleOnFetchRejection"); /** * {@link LRUCache.OptionsBase.ignoreFetchAbort} */ __publicField(this, "ignoreFetchAbort"); // computed properties __privateAdd(this, _size); __privateAdd(this, _calculatedSize); __privateAdd(this, _keyMap); __privateAdd(this, _keyList); __privateAdd(this, _valList); __privateAdd(this, _next); __privateAdd(this, _prev); __privateAdd(this, _head); __privateAdd(this, _tail); __privateAdd(this, _free); __privateAdd(this, _disposed); __privateAdd(this, _sizes); __privateAdd(this, _starts); __privateAdd(this, _ttls); __privateAdd(this, _hasDispose); __privateAdd(this, _hasFetchMethod); __privateAdd(this, _hasDisposeAfter); // conditionally set private methods related to TTL __privateAdd(this, _updateItemAge, () => { }); __privateAdd(this, _statusTTL, () => { }); __privateAdd(this, _setItemTTL, () => { }); /* c8 ignore stop */ __privateAdd(this, _isStale, () => false); __privateAdd(this, _removeItemSize, (_i) => { }); __privateAdd(this, _addItemSize, (_i, _s, _st) => { }); __privateAdd(this, _requireSize, (_k, _v, size, sizeCalculation) => { if (size || sizeCalculation) { throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache"); } return 0; }); /** * A String value that is used in the creation of the default string * description of an object. Called by the built-in method * `Object.prototype.toString`. */ __publicField(this, _a4, "LRUCache"); const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort } = options; if (max !== 0 && !isPosInt(max)) { throw new TypeError("max option must be a nonnegative integer"); } const UintArray = max ? getUintArray(max) : Array; if (!UintArray) { throw new Error("invalid max value: " + max); } __privateSet(this, _max, max); __privateSet(this, _maxSize, maxSize); this.maxEntrySize = maxEntrySize || __privateGet(this, _maxSize); this.sizeCalculation = sizeCalculation; if (this.sizeCalculation) { if (!__privateGet(this, _maxSize) && !this.maxEntrySize) { throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize"); } if (typeof this.sizeCalculation !== "function") { throw new TypeError("sizeCalculation set to non-function"); } } if (memoMethod !== void 0 && typeof memoMethod !== "function") { throw new TypeError("memoMethod must be a function if defined"); } __privateSet(this, _memoMethod, memoMethod); if (fetchMethod !== void 0 && typeof fetchMethod !== "function") { throw new TypeError("fetchMethod must be a function if specified"); } __privateSet(this, _fetchMethod, fetchMethod); __privateSet(this, _hasFetchMethod, !!fetchMethod); __privateSet(this, _keyMap, /* @__PURE__ */ new Map()); __privateSet(this, _keyList, new Array(max).fill(void 0)); __privateSet(this, _valList, new Array(max).fill(void 0)); __privateSet(this, _next, new UintArray(max)); __privateSet(this, _prev, new UintArray(max)); __privateSet(this, _head, 0); __privateSet(this, _tail, 0); __privateSet(this, _free, Stack.create(max)); __privateSet(this, _size, 0); __privateSet(this, _calculatedSize, 0); if (typeof dispose === "function") { __privateSet(this, _dispose, dispose); } if (typeof disposeAfter === "function") { __privateSet(this, _disposeAfter, disposeAfter); __privateSet(this, _disposed, []); } else { __privateSet(this, _disposeAfter, void 0); __privateSet(this, _disposed, void 0); } __privateSet(this, _hasDispose, !!__privateGet(this, _dispose)); __privateSet(this, _hasDisposeAfter, !!__privateGet(this, _disposeAfter)); this.noDisposeOnSet = !!noDisposeOnSet; this.noUpdateTTL = !!noUpdateTTL; this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection; this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection; this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort; this.ignoreFetchAbort = !!ignoreFetchAbort; if (this.maxEntrySize !== 0) { if (__privateGet(this, _maxSize) !== 0) { if (!isPosInt(__privateGet(this, _maxSize))) { throw new TypeError("maxSize must be a positive integer if specified"); } } if (!isPosInt(this.maxEntrySize)) { throw new TypeError("maxEntrySize must be a positive integer if specified"); } __privateMethod(this, _LRUCache_instances, initializeSizeTracking_fn).call(this); } this.allowStale = !!allowStale; this.noDeleteOnStaleGet = !!noDeleteOnStaleGet; this.updateAgeOnGet = !!updateAgeOnGet; this.updateAgeOnHas = !!updateAgeOnHas; this.ttlResolution = isPosInt(ttlResolution) || ttlResolution === 0 ? ttlResolution : 1; this.ttlAutopurge = !!ttlAutopurge; this.ttl = ttl || 0; if (this.ttl) { if (!isPosInt(this.ttl)) { throw new TypeError("ttl must be a positive integer if specified"); } __privateMethod(this, _LRUCache_instances, initializeTTLTracking_fn).call(this); } if (__privateGet(this, _max) === 0 && this.ttl === 0 && __privateGet(this, _maxSize) === 0) { throw new TypeError("At least one of max, maxSize, or ttl is required"); } if (!this.ttlAutopurge && !__privateGet(this, _max) && !__privateGet(this, _maxSize)) { const code = "LRU_CACHE_UNBOUNDED"; if (shouldWarn(code)) { warned.add(code); const msg = "TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption."; emitWarning(msg, "UnboundedCacheWarning", code, _LRUCache); } } } /** * Do not call this method unless you need to inspect the * inner workings of the cache. If anything returned by this * object is modified in any way, strange breakage may occur. * * These fields are private for a reason! * * @internal */ static unsafeExposeInternals(c) { return { // properties starts: __privateGet(c, _starts), ttls: __privateGet(c, _ttls), sizes: __privateGet(c, _sizes), keyMap: __privateGet(c, _keyMap), keyList: __privateGet(c, _keyList), valList: __privateGet(c, _valList), next: __privateGet(c, _next), prev: __privateGet(c, _prev), get head() { return __privateGet(c, _head); }, get tail() { return __privateGet(c, _tail); }, free: __privateGet(c, _free), // methods isBackgroundFetch: (p) => { var _a5; return __privateMethod(_a5 = c, _LRUCache_instances, isBackgroundFetch_fn).call(_a5, p); }, backgroundFetch: (k, index, options, context) => { var _a5; return __privateMethod(_a5 = c, _LRUCache_instances, backgroundFetch_fn).call(_a5, k, index, options, context); }, moveToTail: (index) => { var _a5; return __privateMethod(_a5 = c, _LRUCache_instances, moveToTail_fn).call(_a5, index); }, indexes: (options) => { var _a5; return __privateMethod(_a5 = c, _LRUCache_instances, indexes_fn).call(_a5, options); }, rindexes: (options) => { var _a5; return __privateMethod(_a5 = c, _LRUCache_instances, rindexes_fn).call(_a5, options); }, isStale: (index) => { var _a5; return __privateGet(_a5 = c, _isStale).call(_a5, index); } }; } // Protected read-only members /** * {@link LRUCache.OptionsBase.max} (read-only) */ get max() { return __privateGet(this, _max); } /** * {@link LRUCache.OptionsBase.maxSize} (read-only) */ get maxSize() { return __privateGet(this, _maxSize); } /** * The total computed size of items in the cache (read-only) */ get calculatedSize() { return __privateGet(this, _calculatedSize); } /** * The number of items stored in the cache (read-only) */ get size() { return __privateGet(this, _size); } /** * {@link LRUCache.OptionsBase.fetchMethod} (read-only) */ get fetchMethod() { return __privateGet(this, _fetchMethod); } get memoMethod() { return __privateGet(this, _memoMethod); } /** * {@link LRUCache.OptionsBase.dispose} (read-only) */ get dispose() { return __privateGet(this, _dispose); } /** * {@link LRUCache.OptionsBase.disposeAfter} (read-only) */ get disposeAfter() { return __privateGet(this, _disposeAfter); } /** * Return the number of ms left in the item's TTL. If item is not in cache, * returns `0`. Returns `Infinity` if item is in cache without a defined TTL. */ getRemainingTTL(key) { return __privateGet(this, _keyMap).has(key) ? Infinity : 0; } /** * Return a generator yielding `[key, value]` pairs, * in order from most recently used to least recently used. */ *entries() { for (const i2 of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this)) { if (__privateGet(this, _valList)[i2] !== void 0 && __privateGet(this, _keyList)[i2] !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i2])) { yield [__privateGet(this, _keyList)[i2], __privateGet(this, _valList)[i2]]; } } } /** * Inverse order version of {@link LRUCache.entries} * * Return a generator yielding `[key, value]` pairs, * in order from least recently used to most recently used. */ *rentries() { for (const i2 of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this)) { if (__privateGet(this, _valList)[i2] !== void 0 && __privateGet(this, _keyList)[i2] !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i2])) { yield [__privateGet(this, _keyList)[i2], __privateGet(this, _valList)[i2]]; } } } /** * Return a generator yielding the keys in the cache, * in order from most recently used to least recently used. */ *keys() { for (const i2 of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this)) { const k = __privateGet(this, _keyList)[i2]; if (k !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i2])) { yield k; } } } /** * Inverse order version of {@link LRUCache.keys} * * Return a generator yielding the keys in the cache, * in order from least recently used to most recently used. */ *rkeys() { for (const i2 of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this)) { const k = __privateGet(this, _keyList)[i2]; if (k !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i2])) { yield k; } } } /** * Return a generator yielding the values in the cache, * in order from most recently used to least recently used. */ *values() { for (const i2 of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this)) { const v = __privateGet(this, _valList)[i2]; if (v !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i2])) { yield __privateGet(this, _valList)[i2]; } } } /** * Inverse order version of {@link LRUCache.values} * * Return a generator yielding the values in the cache, * in order from least recently used to most recently used. */ *rvalues() { for (const i2 of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this)) { const v = __privateGet(this, _valList)[i2]; if (v !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i2])) { yield __privateGet(this, _valList)[i2]; } } } /** * Iterating over the cache itself yields the same results as * {@link LRUCache.entries} */ [(_b = Symbol.iterator, _a4 = Symbol.toStringTag, _b)]() { return this.entries(); } /** * Find a value for which the supplied fn method returns a truthy value, * similar to `Array.find()`. fn is called as `fn(value, key, cache)`. */ find(fn, getOptions = {}) { for (const i2 of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this)) { const v = __privateGet(this, _valList)[i2]; const value = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v; if (value === void 0) continue; if (fn(value, __privateGet(this, _keyList)[i2], this)) { return this.get(__privateGet(this, _keyList)[i2], getOptions); } } } /** * Call the supplied function on each item in the cache, in order from most * recently used to least recently used. * * `fn` is called as `fn(value, key, cache)`. * * If `thisp` is provided, function will be called in the `this`-context of * the provided object, or the cache if no `thisp` object is provided. * * Does not update age or recenty of use, or iterate over stale values. */ forEach(fn, thisp = this) { for (const i2 of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this)) { const v = __privateGet(this, _valList)[i2]; const value = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v; if (value === void 0) continue; fn.call(thisp, value, __privateGet(this, _keyList)[i2], this); } } /** * The same as {@link LRUCache.forEach} but items are iterated over in * reverse order. (ie, less recently used items are iterated over first.) */ rforEach(fn, thisp = this) { for (const i2 of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this)) { const v = __privateGet(this, _valList)[i2]; const value = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v; if (value === void 0) continue; fn.call(thisp, value, __privateGet(this, _keyList)[i2], this); } } /** * Delete any stale entries. Returns true if anything was removed, * false otherwise. */ purgeStale() { let deleted = false; for (const i2 of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this, { allowStale: true })) { if (__privateGet(this, _isStale).call(this, i2)) { __privateMethod(this, _LRUCache_instances, delete_fn).call(this, __privateGet(this, _keyList)[i2], "expire"); deleted = true; } } return deleted; } /** * Get the extended info about a given entry, to get its value, size, and * TTL info simultaneously. Returns `undefined` if the key is not present. * * Unlike {@link LRUCache#dump}, which is designed to be portable and survive * serialization, the `start` value is always the current timestamp, and the * `ttl` is a calculated remaining time to live (negative if expired). * * Always returns stale values, if their info is found in the cache, so be * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl}) * if relevant. */ info(key) { const i2 = __privateGet(this, _keyMap).get(key); if (i2 === void 0) return void 0; const v = __privateGet(this, _valList)[i2]; const value = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v; if (value === void 0) return void 0; const entry = { value }; if (__privateGet(this, _ttls) && __privateGet(this, _starts)) { const ttl = __privateGet(this, _ttls)[i2]; const start = __privateGet(this, _starts)[i2]; if (ttl && start) { const remain = ttl - (perf.now() - start); entry.ttl = remain; entry.start = Date.now(); } } if (__privateGet(this, _sizes)) { entry.size = __privateGet(this, _sizes)[i2]; } return entry; } /** * Return an array of [key, {@link LRUCache.Entry}] tuples which can be * passed to {@link LRUCache#load}. * * The `start` fields are calculated relative to a portable `Date.now()` * timestamp, even if `performance.now()` is available. * * Stale entries are always included in the `dump`, even if * {@link LRUCache.OptionsBase.allowStale} is false. * * Note: this returns an actual array, not a generator, so it can be more * easily passed around. */ dump() { const arr = []; for (const i2 of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this, { allowStale: true })) { const key = __privateGet(this, _keyList)[i2]; const v = __privateGet(this, _valList)[i2]; const value = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v; if (value === void 0 || key === void 0) continue; const entry = { value }; if (__privateGet(this, _ttls) && __privateGet(this, _starts)) { entry.ttl = __privateGet(this, _ttls)[i2]; const age = perf.now() - __privateGet(this, _starts)[i2]; entry.start = Math.floor(Date.now() - age); } if (__privateGet(this, _sizes)) { entry.size = __privateGet(this, _sizes)[i2]; } arr.unshift([key, entry]); } return arr; } /** * Reset the cache and load in the items in entries in the order listed. * * The shape of the resulting cache may be different if the same options are * not used in both caches. * * The `start` fields are assumed to be calculated relative to a portable * `Date.now()` timestamp, even if `performance.now()` is available. */ load(arr) { this.clear(); for (const [key, entry] of arr) { if (entry.start) { const age = Date.now() - entry.start; entry.start = perf.now() - age; } this.set(key, entry.value, entry); } } /** * Add a value to the cache. * * Note: if `undefined` is specified as a value, this is an alias for * {@link LRUCache#delete} * * Fields on the {@link LRUCache.SetOptions} options param will override * their corresponding values in the constructor options for the scope * of this single `set()` operation. * * If `start` is provided, then that will set the effective start * time for the TTL calculation. Note that this must be a previous * value of `performance.now()` if supported, or a previous value of * `Date.now()` if not. * * Options object may also include `size`, which will prevent * calling the `sizeCalculation` function and just use the specified * number if it is a positive integer, and `noDisposeOnSet` which * will prevent calling a `dispose` function in the case of * overwrites. * * If the `size` (or return value of `sizeCalculation`) for a given * entry is greater than `maxEntrySize`, then the item will not be * added to the cache. * * Will update the recency of the entry. * * If the value is `undefined`, then this is an alias for * `cache.delete(key)`. `undefined` is never stored in the cache. */ set(k, v, setOptions = {}) { var _a5, _b2, _c, _d, _e; if (v === void 0) { this.delete(k); return this; } const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status } = setOptions; let { noUpdateTTL = this.noUpdateTTL } = setOptions; const size = __privateGet(this, _requireSize).call(this, k, v, setOptions.size || 0, sizeCalculation); if (this.maxEntrySize && size > this.maxEntrySize) { if (status) { status.set = "miss"; status.maxEntrySizeExceeded = true; } __privateMethod(this, _LRUCache_instances, delete_fn).call(this, k, "set"); return this; } let index = __privateGet(this, _size) === 0 ? void 0 : __privateGet(this, _keyMap).get(k); if (index === void 0) { index = __privateGet(this, _size) === 0 ? __privateGet(this, _tail) : __privateGet(this, _free).length !== 0 ? __privateGet(this, _free).pop() : __privateGet(this, _size) === __privateGet(this, _max) ? __privateMethod(this, _LRUCache_instances, evict_fn).call(this, false) : __privateGet(this, _size); __privateGet(this, _keyList)[index] = k; __privateGet(this, _valList)[index] = v; __privateGet(this, _keyMap).set(k, index); __privateGet(this, _next)[__privateGet(this, _tail)] = index; __privateGet(this, _prev)[index] = __privateGet(this, _tail); __privateSet(this, _tail, index); __privateWrapper(this, _size)._++; __privateGet(this, _addItemSize).call(this, index, size, status); if (status) status.set = "add"; noUpdateTTL = false; } else { __privateMethod(this, _LRUCache_instances, moveToTail_fn).call(this, index); const oldVal = __privateGet(this, _valList)[index]; if (v !== oldVal) { if (__privateGet(this, _hasFetchMethod) && __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, oldVal)) { oldVal.__abortController.abort(new Error("replaced")); const { __staleWhileFetching: s } = oldVal; if (s !== void 0 && !noDisposeOnSet) { if (__privateGet(this, _hasDispose)) { (_a5 = __privateGet(this, _dispose)) == null ? void 0 : _a5.call(this, s, k, "set"); } if (__privateGet(this, _hasDisposeAfter)) { (_b2 = __privateGet(this, _disposed)) == null ? void 0 : _b2.push([s, k, "set"]); } } } else if (!noDisposeOnSet) { if (__privateGet(this, _hasDispose)) { (_c = __privateGet(this, _dispose)) == null ? void 0 : _c.call(this, oldVal, k, "set"); } if (__privateGet(this, _hasDisposeAfter)) { (_d = __privateGet(this, _disposed)) == null ? void 0 : _d.push([oldVal, k, "set"]); } } __privateGet(this, _removeItemSize).call(this, index); __privateGet(this, _addItemSize).call(this, index, size, status); __privateGet(this, _valList)[index] = v; if (status) { status.set = "replace"; const oldValue = oldVal && __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, oldVal) ? oldVal.__staleWhileFetching : oldVal; if (oldValue !== void 0) status.oldValue = oldValue; } } else if (status) { status.set = "update"; } } if (ttl !== 0 && !__privateGet(this, _ttls)) { __privateMethod(this, _LRUCache_instances, initializeTTLTracking_fn).call(this); } if (__privateGet(this, _ttls)) { if (!noUpdateTTL) { __privateGet(this, _setItemTTL).call(this, index, ttl, start); } if (status) __privateGet(this, _statusTTL).call(this, status, index); } if (!noDisposeOnSet && __privateGet(this, _hasDisposeAfter) && __privateGet(this, _disposed)) { const dt = __privateGet(this, _disposed); let task; while (task = dt == null ? void 0 : dt.shift()) { (_e = __privateGet(this, _disposeAfter)) == null ? void 0 : _e.call(this, ...task); } } return this; } /** * Evict the least recently used item, returning its value or * `undefined` if cache is empty. */ pop() { var _a5; try { while (__privateGet(this, _size)) { const val = __privateGet(this, _valList)[__privateGet(this, _head)]; __privateMethod(this, _LRUCache_instances, evict_fn).call(this, true); if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, val)) { if (val.__staleWhileFetching) { return val.__staleWhileFetching; } } else if (val !== void 0) { return val; } } } finally { if (__privateGet(this, _hasDisposeAfter) && __privateGet(this, _disposed)) { const dt = __privateGet(this, _disposed); let task; while (task = dt == null ? void 0 : dt.shift()) { (_a5 = __privateGet(this, _disposeAfter)) == null ? void 0 : _a5.call(this, ...task); } } } } /** * Check if a key is in the cache, without updating the recency of use. * Will return false if the item is stale, even though it is technically * in the cache. * * Check if a key is in the cache, without updating the recency of * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set * to `true` in either the options or the constructor. * * Will return `false` if the item is stale, even though it is technically in * the cache. The difference can be determined (if it matters) by using a * `status` argument, and inspecting the `has` field. * * Will not update item age unless * {@link LRUCache.OptionsBase.updateAgeOnHas} is set. */ has(k, hasOptions = {}) { const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions; const index = __privateGet(this, _keyMap).get(k); if (index !== void 0) { const v = __privateGet(this, _valList)[index]; if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) && v.__staleWhileFetching === void 0) { return false; } if (!__privateGet(this, _isStale).call(this, index)) { if (updateAgeOnHas) { __privateGet(this, _updateItemAge).call(this, index); } if (status) { status.has = "hit"; __privateGet(this, _statusTTL).call(this, status, index); } return true; } else if (status) { status.has = "stale"; __privateGet(this, _statusTTL).call(this, status, index); } } else if (status) { status.has = "miss"; } return false; } /** * Like {@link LRUCache#get} but doesn't update recency or delete stale * items. * * Returns `undefined` if the item is stale, unless * {@link LRUCache.OptionsBase.allowStale} is set. */ peek(k, peekOptions = {}) { const { allowStale = this.allowStale } = peekOptions; const index = __privateGet(this, _keyMap).get(k); if (index === void 0 || !allowStale && __privateGet(this, _isStale).call(this, index)) { return; } const v = __privateGet(this, _valList)[index]; return __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v; } async fetch(k, fetchOptions = {}) { const { // get options allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, // set options ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL, // fetch exclusive options noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal } = fetchOptions; if (!__privateGet(this, _hasFetchMethod)) { if (status) status.fetch = "get"; return this.get(k, { allowStale, updateAgeOnGet, noDeleteOnStaleGet, status }); } const options = { allowStale, updateAgeOnGet, noDeleteOnStaleGet, ttl, noDisposeOnSet, size, sizeCalculation, noUpdateTTL, noDeleteOnFetchRejection, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, status, signal }; let index = __privateGet(this, _keyMap).get(k); if (index === void 0) { if (status) status.fetch = "miss"; const p = __privateMethod(this, _LRUCache_instances, backgroundFetch_fn).call(this, k, index, options, context); return p.__returned = p; } else { const v = __privateGet(this, _valList)[index]; if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) { const stale = allowStale && v.__staleWhileFetching !== void 0; if (status) { status.fetch = "inflight"; if (stale) status.returnedStale = true; } return stale ? v.__staleWhileFetching : v.__returned = v; } const isStale = __privateGet(this, _isStale).call(this, index); if (!forceRefresh && !isStale) { if (status) status.fetch = "hit"; __privateMethod(this, _LRUCache_instances, moveToTail_fn).call(this, index); if (updateAgeOnGet) { __privateGet(this, _updateItemAge).call(this, index); } if (status) __privateGet(this, _statusTTL).call(this, status, index); return v; } const p = __privateMethod(this, _LRUCache_instances, backgroundFetch_fn).call(this, k, index, options, context); const hasStale = p.__staleWhileFetching !== void 0; const staleVal = hasStale && allowStale; if (status) { status.fetch = isStale ? "stale" : "refresh"; if (staleVal && isStale) status.returnedStale = true; } return staleVal ? p.__staleWhileFetching : p.__returned = p; } } async forceFetch(k, fetchOptions = {}) { const v = await this.fetch(k, fetchOptions); if (v === void 0) throw new Error("fetch() returned undefined"); return v; } memo(k, memoOptions = {}) { const memoMethod = __privateGet(this, _memoMethod); if (!memoMethod) { throw new Error("no memoMethod provided to constructor"); } const { context, forceRefresh, ...options } = memoOptions; const v = this.get(k, options); if (!forceRefresh && v !== void 0) return v; const vv = memoMethod(k, v, { options, context }); this.set(k, vv, options); return vv; } /** * Return a value from the cache. Will update the recency of the cache * entry found. * * If the key is not found, get() will return `undefined`. */ get(k, getOptions = {}) { const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status } = getOptions; const index = __privateGet(this, _keyMap).get(k); if (index !== void 0) { const value = __privateGet(this, _valList)[index]; const fetching = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, value); if (status) __privateGet(this, _statusTTL).call(this, status, index); if (__privateGet(this, _isStale).call(this, index)) { if (status) status.get = "stale"; if (!fetching) { if (!noDeleteOnStaleGet) { __privateMethod(this, _LRUCache_instances, delete_fn).call(this, k, "expire"); } if (status && allowStale) status.returnedStale = true; return allowStale ? value : void 0; } else { if (status && allowStale && value.__staleWhileFetching !== void 0) { status.returnedStale = true; } return allowStale ? value.__staleWhileFetching : void 0; } } else { if (status) status.get = "hit"; if (fetching) { return value.__staleWhileFetching; } __privateMethod(this, _LRUCache_instances, moveToTail_fn).call(this, index); if (updateAgeOnGet) { __privateGet(this, _updateItemAge).call(this, index); } return value; } } else if (status) { status.get = "miss"; } } /** * Deletes a key out of the cache. * * Returns true if the key was deleted, false otherwise. */ delete(k) { return __privateMethod(this, _LRUCache_instances, delete_fn).call(this, k, "delete"); } /** * Clear the cache entirely, throwing away all values. */ clear() { return __privateMethod(this, _LRUCache_instances, clear_fn).call(this, "delete"); } }; _max = new WeakMap(); _maxSize = new WeakMap(); _dispose = new WeakMap(); _disposeAfter = new WeakMap(); _fetchMethod = new WeakMap(); _memoMethod = new WeakMap(); _size = new WeakMap(); _calculatedSize = new WeakMap(); _keyMap = new WeakMap(); _keyList = new WeakMap(); _valList = new WeakMap(); _next = new WeakMap(); _prev = new WeakMap(); _head = new WeakMap(); _tail = new WeakMap(); _free = new WeakMap(); _disposed = new WeakMap(); _sizes = new WeakMap(); _starts = new WeakMap(); _ttls = new WeakMap(); _hasDispose = new WeakMap(); _hasFetchMethod = new WeakMap(); _hasDisposeAfter = new WeakMap(); _LRUCache_instances = new WeakSet(); initializeTTLTracking_fn = function() { const ttls = new ZeroArray(__privateGet(this, _max)); const starts = new ZeroArray(__privateGet(this, _max)); __privateSet(this, _ttls, ttls); __privateSet(this, _starts, starts); __privateSet(this, _setItemTTL, (index, ttl, start = perf.now()) => { starts[index] = ttl !== 0 ? start : 0; ttls[index] = ttl; if (ttl !== 0 && this.ttlAutopurge) { const t2 = setTimeout(() => { if (__privateGet(this, _isStale).call(this, index)) { __privateMethod(this, _LRUCache_instances, delete_fn).call(this, __privateGet(this, _keyList)[index], "expire"); } }, ttl + 1); if (t2.unref) { t2.unref(); } } }); __privateSet(this, _updateItemAge, (index) => { starts[index] = ttls[index] !== 0 ? perf.now() : 0; }); __privateSet(this, _statusTTL, (status, index) => { if (ttls[index]) { const ttl = ttls[index]; const start = starts[index]; if (!ttl || !start) return; status.ttl = ttl; status.start = start; status.now = cachedNow || getNow(); const age = status.now - start; status.remainingTTL = ttl - age; } }); let cachedNow = 0; const getNow = () => { const n2 = perf.now(); if (this.ttlResolution > 0) { cachedNow = n2; const t2 = setTimeout(() => cachedNow = 0, this.ttlResolution); if (t2.unref) { t2.unref(); } } return n2; }; this.getRemainingTTL = (key) => { const index = __privateGet(this, _keyMap).get(key); if (index === void 0) { return 0; } const ttl = ttls[index]; const start = starts[index]; if (!ttl || !start) { return Infinity; } const age = (cachedNow || getNow()) - start; return ttl - age; }; __privateSet(this, _isStale, (index) => { const s = starts[index]; const t2 = ttls[index]; return !!t2 && !!s && (cachedNow || getNow()) - s > t2; }); }; _updateItemAge = new WeakMap(); _statusTTL = new WeakMap(); _setItemTTL = new WeakMap(); _isStale = new WeakMap(); initializeSizeTracking_fn = function() { const sizes = new ZeroArray(__privateGet(this, _max)); __privateSet(this, _calculatedSize, 0); __privateSet(this, _sizes, sizes); __privateSet(this, _removeItemSize, (index) => { __privateSet(this, _calculatedSize, __privateGet(this, _calculatedSize) - sizes[index]); sizes[index] = 0; }); __privateSet(this, _requireSize, (k, v, size, sizeCalculation) => { if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) { return 0; } if (!isPosInt(size)) { if (sizeCalculation) { if (typeof sizeCalculation !== "function") { throw new TypeError("sizeCalculation must be a function"); } size = sizeCalculation(v, k); if (!isPosInt(size)) { throw new TypeError("sizeCalculation return invalid (expect positive integer)"); } } else { throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set."); } } return size; }); __privateSet(this, _addItemSize, (index, size, status) => { sizes[index] = size; if (__privateGet(this, _maxSize)) { const maxSize = __privateGet(this, _maxSize) - sizes[index]; while (__privateGet(this, _calculatedSize) > maxSize) { __privateMethod(this, _LRUCache_instances, evict_fn).call(this, true); } } __privateSet(this, _calculatedSize, __privateGet(this, _calculatedSize) + sizes[index]); if (status) { status.entrySize = size; status.totalCalculatedSize = __privateGet(this, _calculatedSize); } }); }; _removeItemSize = new WeakMap(); _addItemSize = new WeakMap(); _requireSize = new WeakMap(); indexes_fn = function* ({ allowStale = this.allowStale } = {}) { if (__privateGet(this, _size)) { for (let i2 = __privateGet(this, _tail); true; ) { if (!__privateMethod(this, _LRUCache_instances, isValidIndex_fn).call(this, i2)) { break; } if (allowStale || !__privateGet(this, _isStale).call(this, i2)) { yield i2; } if (i2 === __privateGet(this, _head)) { break; } else { i2 = __privateGet(this, _prev)[i2]; } } } }; rindexes_fn = function* ({ allowStale = this.allowStale } = {}) { if (__privateGet(this, _size)) { for (let i2 = __privateGet(this, _head); true; ) { if (!__privateMethod(this, _LRUCache_instances, isValidIndex_fn).call(this, i2)) { break; } if (allowStale || !__privateGet(this, _isStale).call(this, i2)) { yield i2; } if (i2 === __privateGet(this, _tail)) { break; } else { i2 = __privateGet(this, _next)[i2]; } } } }; isValidIndex_fn = function(index) { return index !== void 0 && __privateGet(this, _keyMap).get(__privateGet(this, _keyList)[index]) === index; }; evict_fn = function(free) { var _a5, _b2; const head = __privateGet(this, _head); const k = __privateGet(this, _keyList)[head]; const v = __privateGet(this, _valList)[head]; if (__privateGet(this, _hasFetchMethod) && __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) { v.__abortController.abort(new Error("evicted")); } else if (__privateGet(this, _hasDispose) || __privateGet(this, _hasDisposeAfter)) { if (__privateGet(this, _hasDispose)) { (_a5 = __privateGet(this, _dispose)) == null ? void 0 : _a5.call(this, v, k, "evict"); } if (__privateGet(this, _hasDisposeAfter)) { (_b2 = __privateGet(this, _disposed)) == null ? void 0 : _b2.push([v, k, "evict"]); } } __privateGet(this, _removeItemSize).call(this, head); if (free) { __privateGet(this, _keyList)[head] = void 0; __privateGet(this, _valList)[head] = void 0; __privateGet(this, _free).push(head); } if (__privateGet(this, _size) === 1) { __privateSet(this, _head, __privateSet(this, _tail, 0)); __privateGet(this, _free).length = 0; } else { __privateSet(this, _head, __privateGet(this, _next)[head]); } __privateGet(this, _keyMap).delete(k); __privateWrapper(this, _size)._--; return head; }; backgroundFetch_fn = function(k, index, options, context) { const v = index === void 0 ? void 0 : __privateGet(this, _valList)[index]; if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) { return v; } const ac = new AC(); const { signal } = options; signal == null ? void 0 : signal.addEventListener("abort", () => ac.abort(signal.reason), { signal: ac.signal }); const fetchOpts = { signal: ac.signal, options, context }; const cb = (v2, updateCache = false) => { const { aborted } = ac.signal; const ignoreAbort = options.ignoreFetchAbort && v2 !== void 0; if (options.status) { if (aborted && !updateCache) { options.status.fetchAborted = true; options.status.fetchError = ac.signal.reason; if (ignoreAbort) options.status.fetchAbortIgnored = true; } else { options.status.fetchResolved = true; } } if (aborted && !ignoreAbort && !updateCache) { return fetchFail(ac.signal.reason); } const bf2 = p; if (__privateGet(this, _valList)[index] === p) { if (v2 === void 0) { if (bf2.__staleWhileFetching) { __privateGet(this, _valList)[index] = bf2.__staleWhileFetching; } else { __privateMethod(this, _LRUCache_instances, delete_fn).call(this, k, "fetch"); } } else { if (options.status) options.status.fetchUpdated = true; this.set(k, v2, fetchOpts.options); } } return v2; }; const eb = (er) => { if (options.status) { options.status.fetchRejected = true; options.status.fetchError = er; } return fetchFail(er); }; const fetchFail = (er) => { const { aborted } = ac.signal; const allowStaleAborted = aborted && options.allowStaleOnFetchAbort; const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection; const noDelete = allowStale || options.noDeleteOnFetchRejection; const bf2 = p; if (__privateGet(this, _valList)[index] === p) { const del = !noDelete || bf2.__staleWhileFetching === void 0; if (del) { __privateMethod(this, _LRUCache_instances, delete_fn).call(this, k, "fetch"); } else if (!allowStaleAborted) { __privateGet(this, _valList)[index] = bf2.__staleWhileFetching; } } if (allowStale) { if (options.status && bf2.__staleWhileFetching !== void 0) { options.status.returnedStale = true; } return bf2.__staleWhileFetching; } else if (bf2.__returned === bf2) { throw er; } }; const pcall = (res, rej) => { var _a5; const fmp = (_a5 = __privateGet(this, _fetchMethod)) == null ? void 0 : _a5.call(this, k, v, fetchOpts); if (fmp && fmp instanceof Promise) { fmp.then((v2) => res(v2 === void 0 ? void 0 : v2), rej); } ac.signal.addEventListener("abort", () => { if (!options.ignoreFetchAbort || options.allowStaleOnFetchAbort) { res(void 0); if (options.allowStaleOnFetchAbort) { res = (v2) => cb(v2, true); } } }); }; if (options.status) options.status.fetchDispatched = true; const p = new Promise(pcall).then(cb, eb); const bf = Object.assign(p, { __abortController: ac, __staleWhileFetching: v, __returned: void 0 }); if (index === void 0) { this.set(k, bf, { ...fetchOpts.options, status: void 0 }); index = __privateGet(this, _keyMap).get(k); } else { __privateGet(this, _valList)[index] = bf; } return bf; }; isBackgroundFetch_fn = function(p) { if (!__privateGet(this, _hasFetchMethod)) return false; const b = p; return !!b && b instanceof Promise && b.hasOwnProperty("__staleWhileFetching") && b.__abortController instanceof AC; }; connect_fn = function(p, n2) { __privateGet(this, _prev)[n2] = p; __privateGet(this, _next)[p] = n2; }; moveToTail_fn = function(index) { if (index !== __privateGet(this, _tail)) { if (index === __privateGet(this, _head)) { __privateSet(this, _head, __privateGet(this, _next)[index]); } else { __privateMethod(this, _LRUCache_instances, connect_fn).call(this, __privateGet(this, _prev)[index], __privateGet(this, _next)[index]); } __privateMethod(this, _LRUCache_instances, connect_fn).call(this, __privateGet(this, _tail), index); __privateSet(this, _tail, index); } }; delete_fn = function(k, reason) { var _a5, _b2, _c, _d; let deleted = false; if (__privateGet(this, _size) !== 0) { const index = __privateGet(this, _keyMap).get(k); if (index !== void 0) { deleted = true; if (__privateGet(this, _size) === 1) { __privateMethod(this, _LRUCache_instances, clear_fn).call(this, reason); } else { __privateGet(this, _removeItemSize).call(this, index); const v = __privateGet(this, _valList)[index]; if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) { v.__abortController.abort(new Error("deleted")); } else if (__privateGet(this, _hasDispose) || __privateGet(this, _hasDisposeAfter)) { if (__privateGet(this, _hasDispose)) { (_a5 = __privateGet(this, _dispose)) == null ? void 0 : _a5.call(this, v, k, reason); } if (__privateGet(this, _hasDisposeAfter)) { (_b2 = __privateGet(this, _disposed)) == null ? void 0 : _b2.push([v, k, reason]); } } __privateGet(this, _keyMap).delete(k); __privateGet(this, _keyList)[index] = void 0; __privateGet(this, _valList)[index] = void 0; if (index === __privateGet(this, _tail)) { __privateSet(this, _tail, __privateGet(this, _prev)[index]); } else if (index === __privateGet(this, _head)) { __privateSet(this, _head, __privateGet(this, _next)[index]); } else { const pi = __privateGet(this, _prev)[index]; __privateGet(this, _next)[pi] = __privateGet(this, _next)[index]; const ni = __privateGet(this, _next)[index]; __privateGet(this, _prev)[ni] = __privateGet(this, _prev)[index]; } __privateWrapper(this, _size)._--; __privateGet(this, _free).push(index); } } } if (__privateGet(this, _hasDisposeAfter) && ((_c = __privateGet(this, _disposed)) == null ? void 0 : _c.length)) { const dt = __privateGet(this, _disposed); let task; while (task = dt == null ? void 0 : dt.shift()) { (_d = __privateGet(this, _disposeAfter)) == null ? void 0 : _d.call(this, ...task); } } return deleted; }; clear_fn = function(reason) { var _a5, _b2, _c; for (const index of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this, { allowStale: true })) { const v = __privateGet(this, _valList)[index]; if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) { v.__abortController.abort(new Error("deleted")); } else { const k = __privateGet(this, _keyList)[index]; if (__privateGet(this, _hasDispose)) { (_a5 = __privateGet(this, _dispose)) == null ? void 0 : _a5.call(this, v, k, reason); } if (__privateGet(this, _hasDisposeAfter)) { (_b2 = __privateGet(this, _disposed)) == null ? void 0 : _b2.push([v, k, reason]); } } } __privateGet(this, _keyMap).clear(); __privateGet(this, _valList).fill(void 0); __privateGet(this, _keyList).fill(void 0); if (__privateGet(this, _ttls) && __privateGet(this, _starts)) { __privateGet(this, _ttls).fill(0); __privateGet(this, _starts).fill(0); } if (__privateGet(this, _sizes)) { __privateGet(this, _sizes).fill(0); } __privateSet(this, _head, 0); __privateSet(this, _tail, 0); __privateGet(this, _free).length = 0; __privateSet(this, _calculatedSize, 0); __privateSet(this, _size, 0); if (__privateGet(this, _hasDisposeAfter) && __privateGet(this, _disposed)) { const dt = __privateGet(this, _disposed); let task; while (task = dt == null ? void 0 : dt.shift()) { (_c = __privateGet(this, _disposeAfter)) == null ? void 0 : _c.call(this, ...task); } } }; var LRUCache = _LRUCache; exports.LRUCache = LRUCache; } }); // node_modules/.pnpm/@octokit+auth-app@6.1.3/node_modules/@octokit/auth-app/dist-node/index.js var require_dist_node = __commonJS({ "node_modules/.pnpm/@octokit+auth-app@6.1.3/node_modules/@octokit/auth-app/dist-node/index.js"(exports, module) { "use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export2 = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS2 = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var dist_src_exports2 = {}; __export2(dist_src_exports2, { createAppAuth: () => createAppAuth4, createOAuthUserAuth: () => import_auth_oauth_user22.createOAuthUserAuth }); module.exports = __toCommonJS2(dist_src_exports2); var import_universal_user_agent8 = (init_dist_web(), __toCommonJS(dist_web_exports)); var import_request18 = (init_dist_web5(), __toCommonJS(dist_web_exports4)); var import_auth_oauth_app = (init_dist_web12(), __toCommonJS(dist_web_exports7)); var import_deprecation2 = (init_dist_web3(), __toCommonJS(dist_web_exports2)); var OAuthAppAuth = __toESM2((init_dist_web12(), __toCommonJS(dist_web_exports7))); var import_universal_github_app_jwt = (init_index_bundled(), __toCommonJS(index_bundled_exports)); async function getAppAuthentication({ appId, privateKey, timeDifference }) { try { const appAuthentication = await (0, import_universal_github_app_jwt.githubAppJwt)({ id: +appId, privateKey, now: timeDifference && Math.floor(Date.now() / 1e3) + timeDifference }); return { type: "app", token: appAuthentication.token, appId: appAuthentication.appId, expiresAt: new Date(appAuthentication.expiration * 1e3).toISOString() }; } catch (error) { if (privateKey === "-----BEGIN RSA PRIVATE KEY-----") { throw new Error( "The 'privateKey` option contains only the first line '-----BEGIN RSA PRIVATE KEY-----'. If you are setting it using a `.env` file, make sure it is set on a single line with newlines replaced by '\n'" ); } else { throw error; } } } var import_lru_cache = require_commonjs(); function getCache() { return new import_lru_cache.LRUCache({ // cache max. 15000 tokens, that will use less than 10mb memory max: 15e3, // Cache for 1 minute less than GitHub expiry ttl: 1e3 * 60 * 59 }); } async function get2(cache, options) { const cacheKey = optionsToCacheKey(options); const result = await cache.get(cacheKey); if (!result) { return; } const [ token, createdAt, expiresAt, repositorySelection, permissionsString, singleFileName ] = result.split("|"); const permissions = options.permissions || permissionsString.split(/,/).reduce((permissions2, string) => { if (/!$/.test(string)) { permissions2[string.slice(0, -1)] = "write"; } else { permissions2[string] = "read"; } return permissions2; }, {}); return { token, createdAt, expiresAt, permissions, repositoryIds: options.repositoryIds, repositoryNames: options.repositoryNames, singleFileName, repositorySelection }; } async function set2(cache, options, data) { const key = optionsToCacheKey(options); const permissionsString = options.permissions ? "" : Object.keys(data.permissions).map( (name) => `${name}${data.permissions[name] === "write" ? "!" : ""}` ).join(","); const value = [ data.token, data.createdAt, data.expiresAt, data.repositorySelection, permissionsString, data.singleFileName ].join("|"); await cache.set(key, value); } function optionsToCacheKey({ installationId, permissions = {}, repositoryIds = [], repositoryNames = [] }) { const permissionsString = Object.keys(permissions).sort().map((name) => permissions[name] === "read" ? name : `${name}!`).join(","); const repositoryIdsString = repositoryIds.sort().join(","); const repositoryNamesString = repositoryNames.join(","); return [ installationId, repositoryIdsString, repositoryNamesString, permissionsString ].filter(Boolean).join("|"); } function toTokenAuthentication({ installationId, token, createdAt, expiresAt, repositorySelection, permissions, repositoryIds, repositoryNames, singleFileName }) { return Object.assign( { type: "token", tokenType: "installation", token, installationId, permissions, createdAt, expiresAt, repositorySelection }, repositoryIds ? { repositoryIds } : null, repositoryNames ? { repositoryNames } : null, singleFileName ? { singleFileName } : null ); } async function getInstallationAuthentication(state, options, customRequest) { const installationId = Number(options.installationId || state.installationId); if (!installationId) { throw new Error( "[@octokit/auth-app] installationId option is required for installation authentication." ); } if (options.factory) { const { type, factory, oauthApp, ...factoryAuthOptions } = { ...state, ...options }; return factory(factoryAuthOptions); } const optionsWithInstallationTokenFromState = Object.assign( { installationId }, options ); if (!options.refresh) { const result = await get2( state.cache, optionsWithInstallationTokenFromState ); if (result) { const { token: token2, createdAt: createdAt2, expiresAt: expiresAt2, permissions: permissions2, repositoryIds: repositoryIds2, repositoryNames: repositoryNames2, singleFileName: singleFileName2, repositorySelection: repositorySelection2 } = result; return toTokenAuthentication({ installationId, token: token2, createdAt: createdAt2, expiresAt: expiresAt2, permissions: permissions2, repositorySelection: repositorySelection2, repositoryIds: repositoryIds2, repositoryNames: repositoryNames2, singleFileName: singleFileName2 }); } } const appAuthentication = await getAppAuthentication(state); const request2 = customRequest || state.request; const { data: { token, expires_at: expiresAt, repositories, permissions: permissionsOptional, repository_selection: repositorySelectionOptional, single_file: singleFileName } } = await request2("POST /app/installations/{installation_id}/access_tokens", { installation_id: installationId, repository_ids: options.repositoryIds, repositories: options.repositoryNames, permissions: options.permissions, mediaType: { previews: ["machine-man"] }, headers: { authorization: `bearer ${appAuthentication.token}` } }); const permissions = permissionsOptional || {}; const repositorySelection = repositorySelectionOptional || "all"; const repositoryIds = repositories ? repositories.map((r2) => r2.id) : void 0; const repositoryNames = repositories ? repositories.map((repo) => repo.name) : void 0; const createdAt = (/* @__PURE__ */ new Date()).toISOString(); await set2(state.cache, optionsWithInstallationTokenFromState, { token, createdAt, expiresAt, repositorySelection, permissions, repositoryIds, repositoryNames, singleFileName }); return toTokenAuthentication({ installationId, token, createdAt, expiresAt, repositorySelection, permissions, repositoryIds, repositoryNames, singleFileName }); } async function auth6(state, authOptions) { switch (authOptions.type) { case "app": return getAppAuthentication(state); case "oauth": state.log.warn( // @ts-expect-error `log.warn()` expects string new import_deprecation2.Deprecation( `[@octokit/auth-app] {type: "oauth"} is deprecated. Use {type: "oauth-app"} instead` ) ); case "oauth-app": return state.oauthApp({ type: "oauth-app" }); case "installation": authOptions; return getInstallationAuthentication(state, { ...authOptions, type: "installation" }); case "oauth-user": return state.oauthApp(authOptions); default: throw new Error(`Invalid auth type: ${authOptions.type}`); } } var import_auth_oauth_user4 = (init_dist_web11(), __toCommonJS(dist_web_exports6)); var import_request_error7 = (init_dist_web4(), __toCommonJS(dist_web_exports3)); var PATHS = [ "/app", "/app/hook/config", "/app/hook/deliveries", "/app/hook/deliveries/{delivery_id}", "/app/hook/deliveries/{delivery_id}/attempts", "/app/installations", "/app/installations/{installation_id}", "/app/installations/{installation_id}/access_tokens", "/app/installations/{installation_id}/suspended", "/app/installation-requests", "/marketplace_listing/accounts/{account_id}", "/marketplace_listing/plan", "/marketplace_listing/plans", "/marketplace_listing/plans/{plan_id}/accounts", "/marketplace_listing/stubbed/accounts/{account_id}", "/marketplace_listing/stubbed/plan", "/marketplace_listing/stubbed/plans", "/marketplace_listing/stubbed/plans/{plan_id}/accounts", "/orgs/{org}/installation", "/repos/{owner}/{repo}/installation", "/users/{username}/installation" ]; function routeMatcher2(paths) { const regexes = paths.map( (p) => p.split("/").map((c) => c.startsWith("{") ? "(?:.+?)" : c).join("/") ); const regex2 = `^(?:${regexes.map((r2) => `(?:${r2})`).join("|")})$`; return new RegExp(regex2, "i"); } var REGEX = routeMatcher2(PATHS); function requiresAppAuth(url) { return !!url && REGEX.test(url.split("?")[0]); } var FIVE_SECONDS_IN_MS = 5 * 1e3; function isNotTimeSkewError(error) { return !(error.message.match( /'Expiration time' claim \('exp'\) must be a numeric value representing the future time at which the assertion expires/ ) || error.message.match( /'Issued at' claim \('iat'\) must be an Integer representing the time that the assertion was issued/ )); } async function hook6(state, request2, route, parameters) { const endpoint2 = request2.endpoint.merge(route, parameters); const url = endpoint2.url; if (/\/login\/oauth\/access_token$/.test(url)) { return request2(endpoint2); } if (requiresAppAuth(url.replace(request2.endpoint.DEFAULTS.baseUrl, ""))) { const { token: token2 } = await getAppAuthentication(state); endpoint2.headers.authorization = `bearer ${token2}`; let response; try { response = await request2(endpoint2); } catch (error) { if (isNotTimeSkewError(error)) { throw error; } if (typeof error.response.headers.date === "undefined") { throw error; } const diff = Math.floor( (Date.parse(error.response.headers.date) - Date.parse((/* @__PURE__ */ new Date()).toString())) / 1e3 ); state.log.warn(error.message); state.log.warn( `[@octokit/auth-app] GitHub API time and system time are different by ${diff} seconds. Retrying request with the difference accounted for.` ); const { token: token3 } = await getAppAuthentication({ ...state, timeDifference: diff }); endpoint2.headers.authorization = `bearer ${token3}`; return request2(endpoint2); } return response; } if ((0, import_auth_oauth_user4.requiresBasicAuth)(url)) { const authentication = await state.oauthApp({ type: "oauth-app" }); endpoint2.headers.authorization = authentication.headers.authorization; return request2(endpoint2); } const { token, createdAt } = await getInstallationAuthentication( state, // @ts-expect-error TBD {}, request2.defaults({ baseUrl: endpoint2.baseUrl }) ); endpoint2.headers.authorization = `token ${token}`; return sendRequestWithRetries( state, request2, endpoint2, createdAt ); } async function sendRequestWithRetries(state, request2, options, createdAt, retries = 0) { const timeSinceTokenCreationInMs = +/* @__PURE__ */ new Date() - +new Date(createdAt); try { return await request2(options); } catch (error) { if (error.status !== 401) { throw error; } if (timeSinceTokenCreationInMs >= FIVE_SECONDS_IN_MS) { if (retries > 0) { error.message = `After ${retries} retries within ${timeSinceTokenCreationInMs / 1e3}s of creating the installation access token, the response remains 401. At this point, the cause may be an authentication problem or a system outage. Please check https://www.githubstatus.com for status information`; } throw error; } ++retries; const awaitTime = retries * 1e3; state.log.warn( `[@octokit/auth-app] Retrying after 401 response to account for token replication delay (retry: ${retries}, wait: ${awaitTime / 1e3}s)` ); await new Promise((resolve) => setTimeout(resolve, awaitTime)); return sendRequestWithRetries(state, request2, options, createdAt, retries); } } var VERSION16 = "6.1.3"; var import_auth_oauth_user22 = (init_dist_web11(), __toCommonJS(dist_web_exports6)); function createAppAuth4(options) { if (!options.appId) { throw new Error("[@octokit/auth-app] appId option is required"); } if (!Number.isFinite(+options.appId)) { throw new Error( "[@octokit/auth-app] appId option must be a number or numeric string" ); } if (!options.privateKey) { throw new Error("[@octokit/auth-app] privateKey option is required"); } if ("installationId" in options && !options.installationId) { throw new Error( "[@octokit/auth-app] installationId is set to a falsy value" ); } const log = Object.assign( { warn: console.warn.bind(console) }, options.log ); const request2 = options.request || import_request18.request.defaults({ headers: { "user-agent": `octokit-auth-app.js/${VERSION16} ${(0, import_universal_user_agent8.getUserAgent)()}` } }); const state = Object.assign( { request: request2, cache: getCache() }, options, options.installationId ? { installationId: Number(options.installationId) } : {}, { log, oauthApp: (0, import_auth_oauth_app.createOAuthAppAuth)({ clientType: "github-app", clientId: options.clientId || "", clientSecret: options.clientSecret || "", request: request2 }) } ); return Object.assign(auth6.bind(null, state), { hook: hook6.bind(null, state) }); } } }); // node_modules/.pnpm/@octokit+auth-unauthenticated@5.0.1/node_modules/@octokit/auth-unauthenticated/dist-web/index.js var dist_web_exports8 = {}; __export(dist_web_exports8, { createUnauthenticatedAuth: () => createUnauthenticatedAuth }); async function auth5(reason) { return { type: "unauthenticated", reason }; } function isRateLimitError(error) { if (error.status !== 403) { return false; } if (!error.response) { return false; } return error.response.headers["x-ratelimit-remaining"] === "0"; } function isAbuseLimitError(error) { if (error.status !== 403) { return false; } return REGEX_ABUSE_LIMIT_MESSAGE.test(error.message); } async function hook5(reason, request2, route, parameters) { const endpoint2 = request2.endpoint.merge( route, parameters ); return request2(endpoint2).catch((error) => { if (error.status === 404) { error.message = `Not found. May be due to lack of authentication. Reason: ${reason}`; throw error; } if (isRateLimitError(error)) { error.message = `API rate limit exceeded. This maybe caused by the lack of authentication. Reason: ${reason}`; throw error; } if (isAbuseLimitError(error)) { error.message = `You have triggered an abuse detection mechanism. This maybe caused by the lack of authentication. Reason: ${reason}`; throw error; } if (error.status === 401) { error.message = `Unauthorized. "${endpoint2.method} ${endpoint2.url}" failed most likely due to lack of authentication. Reason: ${reason}`; throw error; } if (error.status >= 400 && error.status < 500) { error.message = error.message.replace( /\.?$/, `. May be caused by lack of authentication (${reason}).` ); } throw error; }); } var REGEX_ABUSE_LIMIT_MESSAGE, createUnauthenticatedAuth; var init_dist_web13 = __esm({ "node_modules/.pnpm/@octokit+auth-unauthenticated@5.0.1/node_modules/@octokit/auth-unauthenticated/dist-web/index.js"() { init_dist_web4(); init_dist_web4(); REGEX_ABUSE_LIMIT_MESSAGE = /\babuse\b/i; createUnauthenticatedAuth = function createUnauthenticatedAuth2(options) { if (!options || !options.reason) { throw new Error( "[@octokit/auth-unauthenticated] No reason passed to createUnauthenticatedAuth" ); } return Object.assign(auth5.bind(null, options.reason), { hook: hook5.bind(null, options.reason) }); }; } }); // node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-node/index.js var require_dist_node2 = __commonJS({ "node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-node/index.js"(exports, module) { "use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export2 = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS2 = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var dist_src_exports2 = {}; __export2(dist_src_exports2, { OAuthApp: () => OAuthApp3, createAWSLambdaAPIGatewayV2Handler: () => createAWSLambdaAPIGatewayV2Handler, createNodeMiddleware: () => createNodeMiddleware3, createWebWorkerHandler: () => createWebWorkerHandler, handleRequest: () => handleRequest, sendNodeResponse: () => sendResponse, unknownRouteResponse: () => unknownRouteResponse2 }); module.exports = __toCommonJS2(dist_src_exports2); var import_auth_oauth_app = (init_dist_web12(), __toCommonJS(dist_web_exports7)); var VERSION16 = "6.1.0"; function addEventHandler(state, eventName, eventHandler) { if (Array.isArray(eventName)) { for (const singleEventName of eventName) { addEventHandler(state, singleEventName, eventHandler); } return; } if (!state.eventHandlers[eventName]) { state.eventHandlers[eventName] = []; } state.eventHandlers[eventName].push(eventHandler); } var import_core5 = (init_dist_web8(), __toCommonJS(dist_web_exports5)); var import_universal_user_agent8 = (init_dist_web(), __toCommonJS(dist_web_exports)); var OAuthAppOctokit = import_core5.Octokit.defaults({ userAgent: `octokit-oauth-app.js/${VERSION16} ${(0, import_universal_user_agent8.getUserAgent)()}` }); var import_auth_oauth_user4 = (init_dist_web11(), __toCommonJS(dist_web_exports6)); async function emitEvent(state, context) { const { name, action } = context; if (state.eventHandlers[`${name}.${action}`]) { for (const eventHandler of state.eventHandlers[`${name}.${action}`]) { await eventHandler(context); } } if (state.eventHandlers[name]) { for (const eventHandler of state.eventHandlers[name]) { await eventHandler(context); } } } async function getUserOctokitWithState(state, options) { return state.octokit.auth({ type: "oauth-user", ...options, async factory(options2) { const octokit = new state.Octokit({ authStrategy: import_auth_oauth_user4.createOAuthUserAuth, auth: options2 }); const authentication = await octokit.auth({ type: "get" }); await emitEvent(state, { name: "token", action: "created", token: authentication.token, scopes: authentication.scopes, authentication, octokit }); return octokit; } }); } var OAuthMethods = __toESM2((init_dist_src(), __toCommonJS(dist_src_exports))); function getWebFlowAuthorizationUrlWithState(state, options) { const optionsWithDefaults = { clientId: state.clientId, request: state.octokit.request, ...options, allowSignup: state.allowSignup ?? options.allowSignup, redirectUrl: options.redirectUrl ?? state.redirectUrl, scopes: options.scopes ?? state.defaultScopes }; return OAuthMethods.getWebFlowAuthorizationUrl({ clientType: state.clientType, ...optionsWithDefaults }); } var OAuthAppAuth = __toESM2((init_dist_web12(), __toCommonJS(dist_web_exports7))); async function createTokenWithState(state, options) { const authentication = await state.octokit.auth({ type: "oauth-user", ...options }); await emitEvent(state, { name: "token", action: "created", token: authentication.token, scopes: authentication.scopes, authentication, octokit: new state.Octokit({ authStrategy: OAuthAppAuth.createOAuthUserAuth, auth: { clientType: state.clientType, clientId: state.clientId, clientSecret: state.clientSecret, token: authentication.token, scopes: authentication.scopes, refreshToken: authentication.refreshToken, expiresAt: authentication.expiresAt, refreshTokenExpiresAt: authentication.refreshTokenExpiresAt } }) }); return { authentication }; } var OAuthMethods2 = __toESM2((init_dist_src(), __toCommonJS(dist_src_exports))); async function checkTokenWithState(state, options) { const result = await OAuthMethods2.checkToken({ // @ts-expect-error not worth the extra code to appease TS clientType: state.clientType, clientId: state.clientId, clientSecret: state.clientSecret, request: state.octokit.request, ...options }); Object.assign(result.authentication, { type: "token", tokenType: "oauth" }); return result; } var OAuthMethods3 = __toESM2((init_dist_src(), __toCommonJS(dist_src_exports))); var import_auth_oauth_user22 = (init_dist_web11(), __toCommonJS(dist_web_exports6)); async function resetTokenWithState(state, options) { const optionsWithDefaults = { clientId: state.clientId, clientSecret: state.clientSecret, request: state.octokit.request, ...options }; if (state.clientType === "oauth-app") { const response2 = await OAuthMethods3.resetToken({ clientType: "oauth-app", ...optionsWithDefaults }); const authentication2 = Object.assign(response2.authentication, { type: "token", tokenType: "oauth" }); await emitEvent(state, { name: "token", action: "reset", token: response2.authentication.token, scopes: response2.authentication.scopes || void 0, authentication: authentication2, octokit: new state.Octokit({ authStrategy: import_auth_oauth_user22.createOAuthUserAuth, auth: { clientType: state.clientType, clientId: state.clientId, clientSecret: state.clientSecret, token: response2.authentication.token, scopes: response2.authentication.scopes } }) }); return { ...response2, authentication: authentication2 }; } const response = await OAuthMethods3.resetToken({ clientType: "github-app", ...optionsWithDefaults }); const authentication = Object.assign(response.authentication, { type: "token", tokenType: "oauth" }); await emitEvent(state, { name: "token", action: "reset", token: response.authentication.token, authentication, octokit: new state.Octokit({ authStrategy: import_auth_oauth_user22.createOAuthUserAuth, auth: { clientType: state.clientType, clientId: state.clientId, clientSecret: state.clientSecret, token: response.authentication.token } }) }); return { ...response, authentication }; } var OAuthMethods4 = __toESM2((init_dist_src(), __toCommonJS(dist_src_exports))); var import_auth_oauth_user32 = (init_dist_web11(), __toCommonJS(dist_web_exports6)); async function refreshTokenWithState(state, options) { if (state.clientType === "oauth-app") { throw new Error( "[@octokit/oauth-app] app.refreshToken() is not supported for OAuth Apps" ); } const response = await OAuthMethods4.refreshToken({ clientType: "github-app", clientId: state.clientId, clientSecret: state.clientSecret, request: state.octokit.request, refreshToken: options.refreshToken }); const authentication = Object.assign(response.authentication, { type: "token", tokenType: "oauth" }); await emitEvent(state, { name: "token", action: "refreshed", token: response.authentication.token, authentication, octokit: new state.Octokit({ authStrategy: import_auth_oauth_user32.createOAuthUserAuth, auth: { clientType: state.clientType, clientId: state.clientId, clientSecret: state.clientSecret, token: response.authentication.token } }) }); return { ...response, authentication }; } var OAuthMethods5 = __toESM2((init_dist_src(), __toCommonJS(dist_src_exports))); var import_auth_oauth_user42 = (init_dist_web11(), __toCommonJS(dist_web_exports6)); async function scopeTokenWithState(state, options) { if (state.clientType === "oauth-app") { throw new Error( "[@octokit/oauth-app] app.scopeToken() is not supported for OAuth Apps" ); } const response = await OAuthMethods5.scopeToken({ clientType: "github-app", clientId: state.clientId, clientSecret: state.clientSecret, request: state.octokit.request, ...options }); const authentication = Object.assign(response.authentication, { type: "token", tokenType: "oauth" }); await emitEvent(state, { name: "token", action: "scoped", token: response.authentication.token, authentication, octokit: new state.Octokit({ authStrategy: import_auth_oauth_user42.createOAuthUserAuth, auth: { clientType: state.clientType, clientId: state.clientId, clientSecret: state.clientSecret, token: response.authentication.token } }) }); return { ...response, authentication }; } var OAuthMethods6 = __toESM2((init_dist_src(), __toCommonJS(dist_src_exports))); var import_auth_unauthenticated2 = (init_dist_web13(), __toCommonJS(dist_web_exports8)); async function deleteTokenWithState(state, options) { const optionsWithDefaults = { clientId: state.clientId, clientSecret: state.clientSecret, request: state.octokit.request, ...options }; const response = state.clientType === "oauth-app" ? await OAuthMethods6.deleteToken({ clientType: "oauth-app", ...optionsWithDefaults }) : ( // istanbul ignore next await OAuthMethods6.deleteToken({ clientType: "github-app", ...optionsWithDefaults }) ); await emitEvent(state, { name: "token", action: "deleted", token: options.token, octokit: new state.Octokit({ authStrategy: import_auth_unauthenticated2.createUnauthenticatedAuth, auth: { reason: `Handling "token.deleted" event. The access for the token has been revoked.` } }) }); return response; } var OAuthMethods7 = __toESM2((init_dist_src(), __toCommonJS(dist_src_exports))); var import_auth_unauthenticated22 = (init_dist_web13(), __toCommonJS(dist_web_exports8)); async function deleteAuthorizationWithState(state, options) { const optionsWithDefaults = { clientId: state.clientId, clientSecret: state.clientSecret, request: state.octokit.request, ...options }; const response = state.clientType === "oauth-app" ? await OAuthMethods7.deleteAuthorization({ clientType: "oauth-app", ...optionsWithDefaults }) : ( // istanbul ignore next await OAuthMethods7.deleteAuthorization({ clientType: "github-app", ...optionsWithDefaults }) ); await emitEvent(state, { name: "token", action: "deleted", token: options.token, octokit: new state.Octokit({ authStrategy: import_auth_unauthenticated22.createUnauthenticatedAuth, auth: { reason: `Handling "token.deleted" event. The access for the token has been revoked.` } }) }); await emitEvent(state, { name: "authorization", action: "deleted", token: options.token, octokit: new state.Octokit({ authStrategy: import_auth_unauthenticated22.createUnauthenticatedAuth, auth: { reason: `Handling "authorization.deleted" event. The access for the app has been revoked.` } }) }); return response; } function unknownRouteResponse2(request2) { return { status: 404, headers: { "content-type": "application/json" }, text: JSON.stringify({ error: `Unknown route: ${request2.method} ${request2.url}` }) }; } async function handleRequest(app, { pathPrefix = "/api/github/oauth" }, request2) { var _a4, _b, _c, _d, _e, _f; if (request2.method === "OPTIONS") { return { status: 200, headers: { "access-control-allow-origin": "*", "access-control-allow-methods": "*", "access-control-allow-headers": "Content-Type, User-Agent, Authorization" } }; } let { pathname } = new URL(request2.url, "http://localhost"); if (!pathname.startsWith(`${pathPrefix}/`)) { return void 0; } pathname = pathname.slice(pathPrefix.length + 1); const route = [request2.method, pathname].join(" "); const routes = { getLogin: `GET login`, getCallback: `GET callback`, createToken: `POST token`, getToken: `GET token`, patchToken: `PATCH token`, patchRefreshToken: `PATCH refresh-token`, scopeToken: `POST token/scoped`, deleteToken: `DELETE token`, deleteGrant: `DELETE grant` }; if (!Object.values(routes).includes(route)) { return unknownRouteResponse2(request2); } let json; try { const text = await request2.text(); json = text ? JSON.parse(text) : {}; } catch (error) { return { status: 400, headers: { "content-type": "application/json", "access-control-allow-origin": "*" }, text: JSON.stringify({ error: "[@octokit/oauth-app] request error" }) }; } const { searchParams } = new URL(request2.url, "http://localhost"); const query = Object.fromEntries(searchParams); const headers = request2.headers; try { if (route === routes.getLogin) { const { url } = app.getWebFlowAuthorizationUrl({ state: query.state, scopes: query.scopes ? query.scopes.split(",") : void 0, allowSignup: query.allowSignup ? query.allowSignup === "true" : void 0, redirectUrl: query.redirectUrl }); return { status: 302, headers: { location: url } }; } if (route === routes.getCallback) { if (query.error) { throw new Error( `[@octokit/oauth-app] ${query.error} ${query.error_description}` ); } if (!query.code) { throw new Error('[@octokit/oauth-app] "code" parameter is required'); } const { authentication: { token: token2 } } = await app.createToken({ code: query.code }); return { status: 200, headers: { "content-type": "text/html" }, text: `

Token created successfully

Your token is: ${token2}. Copy it now as it cannot be shown again.

` }; } if (route === routes.createToken) { const { code, redirectUrl } = json; if (!code) { throw new Error('[@octokit/oauth-app] "code" parameter is required'); } const result = await app.createToken({ code, redirectUrl }); delete result.authentication.clientSecret; return { status: 201, headers: { "content-type": "application/json", "access-control-allow-origin": "*" }, text: JSON.stringify(result) }; } if (route === routes.getToken) { const token2 = (_a4 = headers.authorization) == null ? void 0 : _a4.substr("token ".length); if (!token2) { throw new Error( '[@octokit/oauth-app] "Authorization" header is required' ); } const result = await app.checkToken({ token: token2 }); delete result.authentication.clientSecret; return { status: 200, headers: { "content-type": "application/json", "access-control-allow-origin": "*" }, text: JSON.stringify(result) }; } if (route === routes.patchToken) { const token2 = (_b = headers.authorization) == null ? void 0 : _b.substr("token ".length); if (!token2) { throw new Error( '[@octokit/oauth-app] "Authorization" header is required' ); } const result = await app.resetToken({ token: token2 }); delete result.authentication.clientSecret; return { status: 200, headers: { "content-type": "application/json", "access-control-allow-origin": "*" }, text: JSON.stringify(result) }; } if (route === routes.patchRefreshToken) { const token2 = (_c = headers.authorization) == null ? void 0 : _c.substr("token ".length); if (!token2) { throw new Error( '[@octokit/oauth-app] "Authorization" header is required' ); } const { refreshToken: refreshToken2 } = json; if (!refreshToken2) { throw new Error( "[@octokit/oauth-app] refreshToken must be sent in request body" ); } const result = await app.refreshToken({ refreshToken: refreshToken2 }); delete result.authentication.clientSecret; return { status: 200, headers: { "content-type": "application/json", "access-control-allow-origin": "*" }, text: JSON.stringify(result) }; } if (route === routes.scopeToken) { const token2 = (_d = headers.authorization) == null ? void 0 : _d.substr("token ".length); if (!token2) { throw new Error( '[@octokit/oauth-app] "Authorization" header is required' ); } const result = await app.scopeToken({ token: token2, ...json }); delete result.authentication.clientSecret; return { status: 200, headers: { "content-type": "application/json", "access-control-allow-origin": "*" }, text: JSON.stringify(result) }; } if (route === routes.deleteToken) { const token2 = (_e = headers.authorization) == null ? void 0 : _e.substr("token ".length); if (!token2) { throw new Error( '[@octokit/oauth-app] "Authorization" header is required' ); } await app.deleteToken({ token: token2 }); return { status: 204, headers: { "access-control-allow-origin": "*" } }; } const token = (_f = headers.authorization) == null ? void 0 : _f.substr("token ".length); if (!token) { throw new Error( '[@octokit/oauth-app] "Authorization" header is required' ); } await app.deleteAuthorization({ token }); return { status: 204, headers: { "access-control-allow-origin": "*" } }; } catch (error) { return { status: 400, headers: { "content-type": "application/json", "access-control-allow-origin": "*" }, text: JSON.stringify({ error: error.message }) }; } } function parseRequest(request2) { const { method, url, headers } = request2; async function text() { const text2 = await new Promise((resolve, reject) => { let bodyChunks = []; request2.on("error", reject).on("data", (chunk) => bodyChunks.push(chunk)).on("end", () => resolve(Buffer.concat(bodyChunks).toString())); }); return text2; } return { method, url, headers, text }; } function sendResponse(octokitResponse, response) { response.writeHead(octokitResponse.status, octokitResponse.headers); response.end(octokitResponse.text); } function createNodeMiddleware3(app, options = {}) { return async function(request2, response, next) { const octokitRequest = await parseRequest(request2); const octokitResponse = await handleRequest(app, options, octokitRequest); if (octokitResponse) { sendResponse(octokitResponse, response); return true; } else { next == null ? void 0 : next(); return false; } }; } function parseRequest2(request2) { const headers = Object.fromEntries(request2.headers.entries()); return { method: request2.method, url: request2.url, headers, text: () => request2.text() }; } function sendResponse2(octokitResponse) { return new Response(octokitResponse.text, { status: octokitResponse.status, headers: octokitResponse.headers }); } function createWebWorkerHandler(app, options = {}) { return async function(request2) { const octokitRequest = await parseRequest2(request2); const octokitResponse = await handleRequest(app, options, octokitRequest); return octokitResponse ? sendResponse2(octokitResponse) : void 0; }; } function parseRequest3(request2) { const { method } = request2.requestContext.http; let url = request2.rawPath; const { stage } = request2.requestContext; if (url.startsWith("/" + stage)) url = url.substring(stage.length + 1); if (request2.rawQueryString) url += "?" + request2.rawQueryString; const headers = request2.headers; const text = async () => request2.body || ""; return { method, url, headers, text }; } function sendResponse3(octokitResponse) { return { statusCode: octokitResponse.status, headers: octokitResponse.headers, body: octokitResponse.text }; } function createAWSLambdaAPIGatewayV2Handler(app, options = {}) { return async function(event) { const request2 = parseRequest3(event); const response = await handleRequest(app, options, request2); return response ? sendResponse3(response) : void 0; }; } var _a3; var OAuthApp3 = (_a3 = class { static defaults(defaults) { const OAuthAppWithDefaults = class extends this { constructor(...args) { super({ ...defaults, ...args[0] }); } }; return OAuthAppWithDefaults; } constructor(options) { const Octokit22 = options.Octokit || OAuthAppOctokit; this.type = options.clientType || "oauth-app"; const octokit = new Octokit22({ authStrategy: import_auth_oauth_app.createOAuthAppAuth, auth: { clientType: this.type, clientId: options.clientId, clientSecret: options.clientSecret } }); const state = { clientType: this.type, clientId: options.clientId, clientSecret: options.clientSecret, // @ts-expect-error defaultScopes not permitted for GitHub Apps defaultScopes: options.defaultScopes || [], allowSignup: options.allowSignup, baseUrl: options.baseUrl, redirectUrl: options.redirectUrl, log: options.log, Octokit: Octokit22, octokit, eventHandlers: {} }; this.on = addEventHandler.bind(null, state); this.octokit = octokit; this.getUserOctokit = getUserOctokitWithState.bind(null, state); this.getWebFlowAuthorizationUrl = getWebFlowAuthorizationUrlWithState.bind( null, state ); this.createToken = createTokenWithState.bind( null, state ); this.checkToken = checkTokenWithState.bind( null, state ); this.resetToken = resetTokenWithState.bind( null, state ); this.refreshToken = refreshTokenWithState.bind( null, state ); this.scopeToken = scopeTokenWithState.bind( null, state ); this.deleteToken = deleteTokenWithState.bind(null, state); this.deleteAuthorization = deleteAuthorizationWithState.bind(null, state); } }, _a3.VERSION = VERSION16, _a3); } }); // node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.js var require_indent_string = __commonJS({ "node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.js"(exports, module) { "use strict"; module.exports = (string, count = 1, options) => { options = { indent: " ", includeEmptyLines: false, ...options }; if (typeof string !== "string") { throw new TypeError( `Expected \`input\` to be a \`string\`, got \`${typeof string}\`` ); } if (typeof count !== "number") { throw new TypeError( `Expected \`count\` to be a \`number\`, got \`${typeof count}\`` ); } if (typeof options.indent !== "string") { throw new TypeError( `Expected \`options.indent\` to be a \`string\`, got \`${typeof options.indent}\`` ); } if (count === 0) { return string; } const regex2 = options.includeEmptyLines ? /^/gm : /^(?!\s*$)/gm; return string.replace(regex2, options.indent.repeat(count)); }; } }); // browser-external:os var require_os = __commonJS({ "browser-external:os"(exports, module) { module.exports = Object.create(new Proxy({}, { get(_, key) { if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { console.warn(`Module "os" has been externalized for browser compatibility. Cannot access "os.${key}" in client code. See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); } } })); } }); // node_modules/.pnpm/clean-stack@2.2.0/node_modules/clean-stack/index.js var require_clean_stack = __commonJS({ "node_modules/.pnpm/clean-stack@2.2.0/node_modules/clean-stack/index.js"(exports, module) { "use strict"; var os = require_os(); var extractPathRegex = /\s+at.*(?:\(|\s)(.*)\)?/; var pathRegex = /^(?:(?:(?:node|(?:internal\/[\w/]*|.*node_modules\/(?:babel-polyfill|pirates)\/.*)?\w+)\.js:\d+:\d+)|native)/; var homeDir = typeof os.homedir === "undefined" ? "" : os.homedir(); module.exports = (stack, options) => { options = Object.assign({ pretty: false }, options); return stack.replace(/\\/g, "/").split("\n").filter((line) => { const pathMatches = line.match(extractPathRegex); if (pathMatches === null || !pathMatches[1]) { return true; } const match = pathMatches[1]; if (match.includes(".app/Contents/Resources/electron.asar") || match.includes(".app/Contents/Resources/default_app.asar")) { return false; } return !pathRegex.test(match); }).filter((line) => line.trim() !== "").map((line) => { if (options.pretty) { return line.replace(extractPathRegex, (m, p1) => m.replace(p1, p1.replace(homeDir, "~"))); } return line; }).join("\n"); }; } }); // node_modules/.pnpm/aggregate-error@3.1.0/node_modules/aggregate-error/index.js var require_aggregate_error = __commonJS({ "node_modules/.pnpm/aggregate-error@3.1.0/node_modules/aggregate-error/index.js"(exports, module) { "use strict"; var indentString = require_indent_string(); var cleanStack = require_clean_stack(); var cleanInternalStack = (stack) => stack.replace(/\s+at .*aggregate-error\/index.js:\d+:\d+\)?/g, ""); var AggregateError4 = class extends Error { constructor(errors) { if (!Array.isArray(errors)) { throw new TypeError(`Expected input to be an Array, got ${typeof errors}`); } errors = [...errors].map((error) => { if (error instanceof Error) { return error; } if (error !== null && typeof error === "object") { return Object.assign(new Error(error.message), error); } return new Error(error); }); let message = errors.map((error) => { return typeof error.stack === "string" ? cleanInternalStack(cleanStack(error.stack)) : String(error); }).join("\n"); message = "\n" + indentString(message, 4); super(message); this.name = "AggregateError"; Object.defineProperty(this, "_errors", { value: errors }); } *[Symbol.iterator]() { for (const error of this._errors) { yield error; } } }; module.exports = AggregateError4; } }); // node_modules/.pnpm/octokit@3.2.1/node_modules/octokit/dist-web/index.js init_dist_web8(); // node_modules/.pnpm/@octokit+plugin-paginate-rest@11.3.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js var VERSION5 = "11.3.1"; function normalizePaginatedListResponse(response) { if (!response.data) { return { ...response, data: [] }; } const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); if (!responseNeedsNormalization) return response; const incompleteResults = response.data.incomplete_results; const repositorySelection = response.data.repository_selection; const totalCount = response.data.total_count; delete response.data.incomplete_results; delete response.data.repository_selection; delete response.data.total_count; const namespaceKey = Object.keys(response.data)[0]; const data = response.data[namespaceKey]; response.data = data; if (typeof incompleteResults !== "undefined") { response.data.incomplete_results = incompleteResults; } if (typeof repositorySelection !== "undefined") { response.data.repository_selection = repositorySelection; } response.data.total_count = totalCount; return response; } function iterator(octokit, route, parameters) { const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); const requestMethod = typeof route === "function" ? route : octokit.request; const method = options.method; const headers = options.headers; let url = options.url; return { [Symbol.asyncIterator]: () => ({ async next() { if (!url) return { done: true }; try { const response = await requestMethod({ method, url, headers }); const normalizedResponse = normalizePaginatedListResponse(response); url = ((normalizedResponse.headers.link || "").match( /<([^>]+)>;\s*rel="next"/ ) || [])[1]; return { value: normalizedResponse }; } catch (error) { if (error.status !== 409) throw error; url = ""; return { value: { status: 200, headers: {}, data: [] } }; } } }) }; } function paginate(octokit, route, parameters, mapFn) { if (typeof parameters === "function") { mapFn = parameters; parameters = void 0; } return gather( octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn ); } function gather(octokit, results, iterator22, mapFn) { return iterator22.next().then((result) => { if (result.done) { return results; } let earlyExit = false; function done() { earlyExit = true; } results = results.concat( mapFn ? mapFn(result.value, done) : result.value.data ); if (earlyExit) { return results; } return gather(octokit, results, iterator22, mapFn); }); } var composePaginateRest = Object.assign(paginate, { iterator }); function paginateRest(octokit) { return { paginate: Object.assign(paginate.bind(null, octokit), { iterator: iterator.bind(null, octokit) }) }; } paginateRest.VERSION = VERSION5; // node_modules/.pnpm/@octokit+plugin-paginate-graphql@4.0.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-graphql/dist-web/index.js var generateMessage = (path, cursorValue) => `The cursor at "${path.join( "," )}" did not change its value "${cursorValue}" after a page transition. Please make sure your that your query is set up correctly.`; var MissingCursorChange = class extends Error { constructor(pageInfo, cursorValue) { super(generateMessage(pageInfo.pathInQuery, cursorValue)); this.pageInfo = pageInfo; this.cursorValue = cursorValue; this.name = "MissingCursorChangeError"; if (Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor); } } }; var MissingPageInfo = class extends Error { constructor(response) { super( `No pageInfo property found in response. Please make sure to specify the pageInfo in your query. Response-Data: ${JSON.stringify( response, null, 2 )}` ); this.response = response; this.name = "MissingPageInfo"; if (Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor); } } }; var isObject = (value) => Object.prototype.toString.call(value) === "[object Object]"; function findPaginatedResourcePath(responseData) { const paginatedResourcePath = deepFindPathToProperty( responseData, "pageInfo" ); if (paginatedResourcePath.length === 0) { throw new MissingPageInfo(responseData); } return paginatedResourcePath; } var deepFindPathToProperty = (object, searchProp, path = []) => { for (const key of Object.keys(object)) { const currentPath = [...path, key]; const currentValue = object[key]; if (currentValue.hasOwnProperty(searchProp)) { return currentPath; } if (isObject(currentValue)) { const result = deepFindPathToProperty( currentValue, searchProp, currentPath ); if (result.length > 0) { return result; } } } return []; }; var get = (object, path) => { return path.reduce((current, nextProperty) => current[nextProperty], object); }; var set = (object, path, mutator) => { const lastProperty = path[path.length - 1]; const parentPath = [...path].slice(0, -1); const parent = get(object, parentPath); if (typeof mutator === "function") { parent[lastProperty] = mutator(parent[lastProperty]); } else { parent[lastProperty] = mutator; } }; var extractPageInfos = (responseData) => { const pageInfoPath = findPaginatedResourcePath(responseData); return { pathInQuery: pageInfoPath, pageInfo: get(responseData, [...pageInfoPath, "pageInfo"]) }; }; var isForwardSearch = (givenPageInfo) => { return givenPageInfo.hasOwnProperty("hasNextPage"); }; var getCursorFrom = (pageInfo) => isForwardSearch(pageInfo) ? pageInfo.endCursor : pageInfo.startCursor; var hasAnotherPage = (pageInfo) => isForwardSearch(pageInfo) ? pageInfo.hasNextPage : pageInfo.hasPreviousPage; var createIterator = (octokit) => { return (query, initialParameters = {}) => { let nextPageExists = true; let parameters = { ...initialParameters }; return { [Symbol.asyncIterator]: () => ({ async next() { if (!nextPageExists) return { done: true, value: {} }; const response = await octokit.graphql( query, parameters ); const pageInfoContext = extractPageInfos(response); const nextCursorValue = getCursorFrom(pageInfoContext.pageInfo); nextPageExists = hasAnotherPage(pageInfoContext.pageInfo); if (nextPageExists && nextCursorValue === parameters.cursor) { throw new MissingCursorChange(pageInfoContext, nextCursorValue); } parameters = { ...parameters, cursor: nextCursorValue }; return { done: false, value: response }; } }) }; }; }; var mergeResponses = (response1, response2) => { if (Object.keys(response1).length === 0) { return Object.assign(response1, response2); } const path = findPaginatedResourcePath(response1); const nodesPath = [...path, "nodes"]; const newNodes = get(response2, nodesPath); if (newNodes) { set(response1, nodesPath, (values) => { return [...values, ...newNodes]; }); } const edgesPath = [...path, "edges"]; const newEdges = get(response2, edgesPath); if (newEdges) { set(response1, edgesPath, (values) => { return [...values, ...newEdges]; }); } const pageInfoPath = [...path, "pageInfo"]; set(response1, pageInfoPath, get(response2, pageInfoPath)); return response1; }; var createPaginate = (octokit) => { const iterator3 = createIterator(octokit); return async (query, initialParameters = {}) => { let mergedResponse = {}; for await (const response of iterator3( query, initialParameters )) { mergedResponse = mergeResponses(mergedResponse, response); } return mergedResponse; }; }; function paginateGraphql(octokit) { octokit.graphql; return { graphql: Object.assign(octokit.graphql, { paginate: Object.assign(createPaginate(octokit), { iterator: createIterator(octokit) }) }) }; } // node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@13.2.2_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js var VERSION6 = "13.2.2"; var Endpoints = { actions: { addCustomLabelsToSelfHostedRunnerForOrg: [ "POST /orgs/{org}/actions/runners/{runner_id}/labels" ], addCustomLabelsToSelfHostedRunnerForRepo: [ "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" ], addSelectedRepoToOrgSecret: [ "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" ], addSelectedRepoToOrgVariable: [ "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" ], approveWorkflowRun: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" ], cancelWorkflowRun: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" ], createEnvironmentVariable: [ "POST /repos/{owner}/{repo}/environments/{environment_name}/variables" ], createOrUpdateEnvironmentSecret: [ "PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" ], createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], createOrUpdateRepoSecret: [ "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" ], createOrgVariable: ["POST /orgs/{org}/actions/variables"], createRegistrationTokenForOrg: [ "POST /orgs/{org}/actions/runners/registration-token" ], createRegistrationTokenForRepo: [ "POST /repos/{owner}/{repo}/actions/runners/registration-token" ], createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], createRemoveTokenForRepo: [ "POST /repos/{owner}/{repo}/actions/runners/remove-token" ], createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], createWorkflowDispatch: [ "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" ], deleteActionsCacheById: [ "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" ], deleteActionsCacheByKey: [ "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" ], deleteArtifact: [ "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" ], deleteEnvironmentSecret: [ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" ], deleteEnvironmentVariable: [ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" ], deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], deleteRepoSecret: [ "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" ], deleteRepoVariable: [ "DELETE /repos/{owner}/{repo}/actions/variables/{name}" ], deleteSelfHostedRunnerFromOrg: [ "DELETE /orgs/{org}/actions/runners/{runner_id}" ], deleteSelfHostedRunnerFromRepo: [ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" ], deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], deleteWorkflowRunLogs: [ "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" ], disableSelectedRepositoryGithubActionsOrganization: [ "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" ], disableWorkflow: [ "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" ], downloadArtifact: [ "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" ], downloadJobLogsForWorkflowRun: [ "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" ], downloadWorkflowRunAttemptLogs: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" ], downloadWorkflowRunLogs: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" ], enableSelectedRepositoryGithubActionsOrganization: [ "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" ], enableWorkflow: [ "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" ], forceCancelWorkflowRun: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" ], generateRunnerJitconfigForOrg: [ "POST /orgs/{org}/actions/runners/generate-jitconfig" ], generateRunnerJitconfigForRepo: [ "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" ], getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], getActionsCacheUsageByRepoForOrg: [ "GET /orgs/{org}/actions/cache/usage-by-repository" ], getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], getAllowedActionsOrganization: [ "GET /orgs/{org}/actions/permissions/selected-actions" ], getAllowedActionsRepository: [ "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" ], getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], getCustomOidcSubClaimForRepo: [ "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" ], getEnvironmentPublicKey: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key" ], getEnvironmentSecret: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" ], getEnvironmentVariable: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" ], getGithubActionsDefaultWorkflowPermissionsOrganization: [ "GET /orgs/{org}/actions/permissions/workflow" ], getGithubActionsDefaultWorkflowPermissionsRepository: [ "GET /repos/{owner}/{repo}/actions/permissions/workflow" ], getGithubActionsPermissionsOrganization: [ "GET /orgs/{org}/actions/permissions" ], getGithubActionsPermissionsRepository: [ "GET /repos/{owner}/{repo}/actions/permissions" ], getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], getPendingDeploymentsForRun: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" ], getRepoPermissions: [ "GET /repos/{owner}/{repo}/actions/permissions", {}, { renamed: ["actions", "getGithubActionsPermissionsRepository"] } ], getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], getReviewsForRun: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" ], getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], getSelfHostedRunnerForRepo: [ "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" ], getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], getWorkflowAccessToRepository: [ "GET /repos/{owner}/{repo}/actions/permissions/access" ], getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], getWorkflowRunAttempt: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" ], getWorkflowRunUsage: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" ], getWorkflowUsage: [ "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" ], listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], listEnvironmentSecrets: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets" ], listEnvironmentVariables: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/variables" ], listJobsForWorkflowRun: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" ], listJobsForWorkflowRunAttempt: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" ], listLabelsForSelfHostedRunnerForOrg: [ "GET /orgs/{org}/actions/runners/{runner_id}/labels" ], listLabelsForSelfHostedRunnerForRepo: [ "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" ], listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], listOrgVariables: ["GET /orgs/{org}/actions/variables"], listRepoOrganizationSecrets: [ "GET /repos/{owner}/{repo}/actions/organization-secrets" ], listRepoOrganizationVariables: [ "GET /repos/{owner}/{repo}/actions/organization-variables" ], listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], listRunnerApplicationsForRepo: [ "GET /repos/{owner}/{repo}/actions/runners/downloads" ], listSelectedReposForOrgSecret: [ "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" ], listSelectedReposForOrgVariable: [ "GET /orgs/{org}/actions/variables/{name}/repositories" ], listSelectedRepositoriesEnabledGithubActionsOrganization: [ "GET /orgs/{org}/actions/permissions/repositories" ], listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], listWorkflowRunArtifacts: [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" ], listWorkflowRuns: [ "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" ], listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], reRunJobForWorkflowRun: [ "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" ], reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], reRunWorkflowFailedJobs: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" ], removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" ], removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" ], removeCustomLabelFromSelfHostedRunnerForOrg: [ "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" ], removeCustomLabelFromSelfHostedRunnerForRepo: [ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" ], removeSelectedRepoFromOrgSecret: [ "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" ], removeSelectedRepoFromOrgVariable: [ "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" ], reviewCustomGatesForRun: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" ], reviewPendingDeploymentsForRun: [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" ], setAllowedActionsOrganization: [ "PUT /orgs/{org}/actions/permissions/selected-actions" ], setAllowedActionsRepository: [ "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" ], setCustomLabelsForSelfHostedRunnerForOrg: [ "PUT /orgs/{org}/actions/runners/{runner_id}/labels" ], setCustomLabelsForSelfHostedRunnerForRepo: [ "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" ], setCustomOidcSubClaimForRepo: [ "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" ], setGithubActionsDefaultWorkflowPermissionsOrganization: [ "PUT /orgs/{org}/actions/permissions/workflow" ], setGithubActionsDefaultWorkflowPermissionsRepository: [ "PUT /repos/{owner}/{repo}/actions/permissions/workflow" ], setGithubActionsPermissionsOrganization: [ "PUT /orgs/{org}/actions/permissions" ], setGithubActionsPermissionsRepository: [ "PUT /repos/{owner}/{repo}/actions/permissions" ], setSelectedReposForOrgSecret: [ "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" ], setSelectedReposForOrgVariable: [ "PUT /orgs/{org}/actions/variables/{name}/repositories" ], setSelectedRepositoriesEnabledGithubActionsOrganization: [ "PUT /orgs/{org}/actions/permissions/repositories" ], setWorkflowAccessToRepository: [ "PUT /repos/{owner}/{repo}/actions/permissions/access" ], updateEnvironmentVariable: [ "PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" ], updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], updateRepoVariable: [ "PATCH /repos/{owner}/{repo}/actions/variables/{name}" ] }, activity: { checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], deleteThreadSubscription: [ "DELETE /notifications/threads/{thread_id}/subscription" ], getFeeds: ["GET /feeds"], getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], getThread: ["GET /notifications/threads/{thread_id}"], getThreadSubscriptionForAuthenticatedUser: [ "GET /notifications/threads/{thread_id}/subscription" ], listEventsForAuthenticatedUser: ["GET /users/{username}/events"], listNotificationsForAuthenticatedUser: ["GET /notifications"], listOrgEventsForAuthenticatedUser: [ "GET /users/{username}/events/orgs/{org}" ], listPublicEvents: ["GET /events"], listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], listPublicEventsForUser: ["GET /users/{username}/events/public"], listPublicOrgEvents: ["GET /orgs/{org}/events"], listReceivedEventsForUser: ["GET /users/{username}/received_events"], listReceivedPublicEventsForUser: [ "GET /users/{username}/received_events/public" ], listRepoEvents: ["GET /repos/{owner}/{repo}/events"], listRepoNotificationsForAuthenticatedUser: [ "GET /repos/{owner}/{repo}/notifications" ], listReposStarredByAuthenticatedUser: ["GET /user/starred"], listReposStarredByUser: ["GET /users/{username}/starred"], listReposWatchedByUser: ["GET /users/{username}/subscriptions"], listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], markNotificationsAsRead: ["PUT /notifications"], markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], setThreadSubscription: [ "PUT /notifications/threads/{thread_id}/subscription" ], starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] }, apps: { addRepoToInstallation: [ "PUT /user/installations/{installation_id}/repositories/{repository_id}", {}, { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } ], addRepoToInstallationForAuthenticatedUser: [ "PUT /user/installations/{installation_id}/repositories/{repository_id}" ], checkToken: ["POST /applications/{client_id}/token"], createFromManifest: ["POST /app-manifests/{code}/conversions"], createInstallationAccessToken: [ "POST /app/installations/{installation_id}/access_tokens" ], deleteAuthorization: ["DELETE /applications/{client_id}/grant"], deleteInstallation: ["DELETE /app/installations/{installation_id}"], deleteToken: ["DELETE /applications/{client_id}/token"], getAuthenticated: ["GET /app"], getBySlug: ["GET /apps/{app_slug}"], getInstallation: ["GET /app/installations/{installation_id}"], getOrgInstallation: ["GET /orgs/{org}/installation"], getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], getSubscriptionPlanForAccount: [ "GET /marketplace_listing/accounts/{account_id}" ], getSubscriptionPlanForAccountStubbed: [ "GET /marketplace_listing/stubbed/accounts/{account_id}" ], getUserInstallation: ["GET /users/{username}/installation"], getWebhookConfigForApp: ["GET /app/hook/config"], getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], listAccountsForPlanStubbed: [ "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" ], listInstallationReposForAuthenticatedUser: [ "GET /user/installations/{installation_id}/repositories" ], listInstallationRequestsForAuthenticatedApp: [ "GET /app/installation-requests" ], listInstallations: ["GET /app/installations"], listInstallationsForAuthenticatedUser: ["GET /user/installations"], listPlans: ["GET /marketplace_listing/plans"], listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], listReposAccessibleToInstallation: ["GET /installation/repositories"], listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], listSubscriptionsForAuthenticatedUserStubbed: [ "GET /user/marketplace_purchases/stubbed" ], listWebhookDeliveries: ["GET /app/hook/deliveries"], redeliverWebhookDelivery: [ "POST /app/hook/deliveries/{delivery_id}/attempts" ], removeRepoFromInstallation: [ "DELETE /user/installations/{installation_id}/repositories/{repository_id}", {}, { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } ], removeRepoFromInstallationForAuthenticatedUser: [ "DELETE /user/installations/{installation_id}/repositories/{repository_id}" ], resetToken: ["PATCH /applications/{client_id}/token"], revokeInstallationAccessToken: ["DELETE /installation/token"], scopeToken: ["POST /applications/{client_id}/token/scoped"], suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], unsuspendInstallation: [ "DELETE /app/installations/{installation_id}/suspended" ], updateWebhookConfigForApp: ["PATCH /app/hook/config"] }, billing: { getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], getGithubActionsBillingUser: [ "GET /users/{username}/settings/billing/actions" ], getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], getGithubPackagesBillingUser: [ "GET /users/{username}/settings/billing/packages" ], getSharedStorageBillingOrg: [ "GET /orgs/{org}/settings/billing/shared-storage" ], getSharedStorageBillingUser: [ "GET /users/{username}/settings/billing/shared-storage" ] }, checks: { create: ["POST /repos/{owner}/{repo}/check-runs"], createSuite: ["POST /repos/{owner}/{repo}/check-suites"], get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], listAnnotations: [ "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" ], listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], listForSuite: [ "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" ], listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], rerequestRun: [ "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" ], rerequestSuite: [ "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" ], setSuitesPreferences: [ "PATCH /repos/{owner}/{repo}/check-suites/preferences" ], update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] }, codeScanning: { deleteAnalysis: [ "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" ], getAlert: [ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", {}, { renamedParameters: { alert_id: "alert_number" } } ], getAnalysis: [ "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" ], getCodeqlDatabase: [ "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" ], getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], listAlertInstances: [ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" ], listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], listAlertsInstances: [ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", {}, { renamed: ["codeScanning", "listAlertInstances"] } ], listCodeqlDatabases: [ "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" ], listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], updateAlert: [ "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" ], updateDefaultSetup: [ "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" ], uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] }, codesOfConduct: { getAllCodesOfConduct: ["GET /codes_of_conduct"], getConductCode: ["GET /codes_of_conduct/{key}"] }, codespaces: { addRepositoryForSecretForAuthenticatedUser: [ "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" ], addSelectedRepoToOrgSecret: [ "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" ], checkPermissionsForDevcontainer: [ "GET /repos/{owner}/{repo}/codespaces/permissions_check" ], codespaceMachinesForAuthenticatedUser: [ "GET /user/codespaces/{codespace_name}/machines" ], createForAuthenticatedUser: ["POST /user/codespaces"], createOrUpdateOrgSecret: [ "PUT /orgs/{org}/codespaces/secrets/{secret_name}" ], createOrUpdateRepoSecret: [ "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" ], createOrUpdateSecretForAuthenticatedUser: [ "PUT /user/codespaces/secrets/{secret_name}" ], createWithPrForAuthenticatedUser: [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" ], createWithRepoForAuthenticatedUser: [ "POST /repos/{owner}/{repo}/codespaces" ], deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], deleteFromOrganization: [ "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" ], deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], deleteRepoSecret: [ "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" ], deleteSecretForAuthenticatedUser: [ "DELETE /user/codespaces/secrets/{secret_name}" ], exportForAuthenticatedUser: [ "POST /user/codespaces/{codespace_name}/exports" ], getCodespacesForUserInOrg: [ "GET /orgs/{org}/members/{username}/codespaces" ], getExportDetailsForAuthenticatedUser: [ "GET /user/codespaces/{codespace_name}/exports/{export_id}" ], getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], getPublicKeyForAuthenticatedUser: [ "GET /user/codespaces/secrets/public-key" ], getRepoPublicKey: [ "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" ], getRepoSecret: [ "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" ], getSecretForAuthenticatedUser: [ "GET /user/codespaces/secrets/{secret_name}" ], listDevcontainersInRepositoryForAuthenticatedUser: [ "GET /repos/{owner}/{repo}/codespaces/devcontainers" ], listForAuthenticatedUser: ["GET /user/codespaces"], listInOrganization: [ "GET /orgs/{org}/codespaces", {}, { renamedParameters: { org_id: "org" } } ], listInRepositoryForAuthenticatedUser: [ "GET /repos/{owner}/{repo}/codespaces" ], listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], listRepositoriesForSecretForAuthenticatedUser: [ "GET /user/codespaces/secrets/{secret_name}/repositories" ], listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], listSelectedReposForOrgSecret: [ "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" ], preFlightWithRepoForAuthenticatedUser: [ "GET /repos/{owner}/{repo}/codespaces/new" ], publishForAuthenticatedUser: [ "POST /user/codespaces/{codespace_name}/publish" ], removeRepositoryForSecretForAuthenticatedUser: [ "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" ], removeSelectedRepoFromOrgSecret: [ "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" ], repoMachinesForAuthenticatedUser: [ "GET /repos/{owner}/{repo}/codespaces/machines" ], setRepositoriesForSecretForAuthenticatedUser: [ "PUT /user/codespaces/secrets/{secret_name}/repositories" ], setSelectedReposForOrgSecret: [ "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" ], startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], stopInOrganization: [ "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" ], updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] }, copilot: { addCopilotSeatsForTeams: [ "POST /orgs/{org}/copilot/billing/selected_teams" ], addCopilotSeatsForUsers: [ "POST /orgs/{org}/copilot/billing/selected_users" ], cancelCopilotSeatAssignmentForTeams: [ "DELETE /orgs/{org}/copilot/billing/selected_teams" ], cancelCopilotSeatAssignmentForUsers: [ "DELETE /orgs/{org}/copilot/billing/selected_users" ], getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], getCopilotSeatDetailsForUser: [ "GET /orgs/{org}/members/{username}/copilot" ], listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"], usageMetricsForEnterprise: ["GET /enterprises/{enterprise}/copilot/usage"], usageMetricsForOrg: ["GET /orgs/{org}/copilot/usage"], usageMetricsForTeam: ["GET /orgs/{org}/team/{team_slug}/copilot/usage"] }, dependabot: { addSelectedRepoToOrgSecret: [ "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" ], createOrUpdateOrgSecret: [ "PUT /orgs/{org}/dependabot/secrets/{secret_name}" ], createOrUpdateRepoSecret: [ "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" ], deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], deleteRepoSecret: [ "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" ], getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], getRepoPublicKey: [ "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" ], getRepoSecret: [ "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" ], listAlertsForEnterprise: [ "GET /enterprises/{enterprise}/dependabot/alerts" ], listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], listSelectedReposForOrgSecret: [ "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" ], removeSelectedRepoFromOrgSecret: [ "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" ], setSelectedReposForOrgSecret: [ "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" ], updateAlert: [ "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" ] }, dependencyGraph: { createRepositorySnapshot: [ "POST /repos/{owner}/{repo}/dependency-graph/snapshots" ], diffRange: [ "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" ], exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] }, emojis: { get: ["GET /emojis"] }, gists: { checkIsStarred: ["GET /gists/{gist_id}/star"], create: ["POST /gists"], createComment: ["POST /gists/{gist_id}/comments"], delete: ["DELETE /gists/{gist_id}"], deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], fork: ["POST /gists/{gist_id}/forks"], get: ["GET /gists/{gist_id}"], getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], getRevision: ["GET /gists/{gist_id}/{sha}"], list: ["GET /gists"], listComments: ["GET /gists/{gist_id}/comments"], listCommits: ["GET /gists/{gist_id}/commits"], listForUser: ["GET /users/{username}/gists"], listForks: ["GET /gists/{gist_id}/forks"], listPublic: ["GET /gists/public"], listStarred: ["GET /gists/starred"], star: ["PUT /gists/{gist_id}/star"], unstar: ["DELETE /gists/{gist_id}/star"], update: ["PATCH /gists/{gist_id}"], updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] }, git: { createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], createCommit: ["POST /repos/{owner}/{repo}/git/commits"], createRef: ["POST /repos/{owner}/{repo}/git/refs"], createTag: ["POST /repos/{owner}/{repo}/git/tags"], createTree: ["POST /repos/{owner}/{repo}/git/trees"], deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] }, gitignore: { getAllTemplates: ["GET /gitignore/templates"], getTemplate: ["GET /gitignore/templates/{name}"] }, interactions: { getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], getRestrictionsForYourPublicRepos: [ "GET /user/interaction-limits", {}, { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } ], removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], removeRestrictionsForRepo: [ "DELETE /repos/{owner}/{repo}/interaction-limits" ], removeRestrictionsForYourPublicRepos: [ "DELETE /user/interaction-limits", {}, { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } ], setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], setRestrictionsForYourPublicRepos: [ "PUT /user/interaction-limits", {}, { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } ] }, issues: { addAssignees: [ "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" ], addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], checkUserCanBeAssignedToIssue: [ "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" ], create: ["POST /repos/{owner}/{repo}/issues"], createComment: [ "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" ], createLabel: ["POST /repos/{owner}/{repo}/labels"], createMilestone: ["POST /repos/{owner}/{repo}/milestones"], deleteComment: [ "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" ], deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], deleteMilestone: [ "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" ], get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], list: ["GET /issues"], listAssignees: ["GET /repos/{owner}/{repo}/assignees"], listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], listEventsForTimeline: [ "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" ], listForAuthenticatedUser: ["GET /user/issues"], listForOrg: ["GET /orgs/{org}/issues"], listForRepo: ["GET /repos/{owner}/{repo}/issues"], listLabelsForMilestone: [ "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" ], listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], listLabelsOnIssue: [ "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" ], listMilestones: ["GET /repos/{owner}/{repo}/milestones"], lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], removeAllLabels: [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" ], removeAssignees: [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" ], removeLabel: [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" ], setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], updateMilestone: [ "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" ] }, licenses: { get: ["GET /licenses/{license}"], getAllCommonlyUsed: ["GET /licenses"], getForRepo: ["GET /repos/{owner}/{repo}/license"] }, markdown: { render: ["POST /markdown"], renderRaw: [ "POST /markdown/raw", { headers: { "content-type": "text/plain; charset=utf-8" } } ] }, meta: { get: ["GET /meta"], getAllVersions: ["GET /versions"], getOctocat: ["GET /octocat"], getZen: ["GET /zen"], root: ["GET /"] }, migrations: { deleteArchiveForAuthenticatedUser: [ "DELETE /user/migrations/{migration_id}/archive" ], deleteArchiveForOrg: [ "DELETE /orgs/{org}/migrations/{migration_id}/archive" ], downloadArchiveForOrg: [ "GET /orgs/{org}/migrations/{migration_id}/archive" ], getArchiveForAuthenticatedUser: [ "GET /user/migrations/{migration_id}/archive" ], getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], listForAuthenticatedUser: ["GET /user/migrations"], listForOrg: ["GET /orgs/{org}/migrations"], listReposForAuthenticatedUser: [ "GET /user/migrations/{migration_id}/repositories" ], listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], listReposForUser: [ "GET /user/migrations/{migration_id}/repositories", {}, { renamed: ["migrations", "listReposForAuthenticatedUser"] } ], startForAuthenticatedUser: ["POST /user/migrations"], startForOrg: ["POST /orgs/{org}/migrations"], unlockRepoForAuthenticatedUser: [ "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" ], unlockRepoForOrg: [ "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" ] }, oidc: { getOidcCustomSubTemplateForOrg: [ "GET /orgs/{org}/actions/oidc/customization/sub" ], updateOidcCustomSubTemplateForOrg: [ "PUT /orgs/{org}/actions/oidc/customization/sub" ] }, orgs: { addSecurityManagerTeam: [ "PUT /orgs/{org}/security-managers/teams/{team_slug}" ], assignTeamToOrgRole: [ "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" ], assignUserToOrgRole: [ "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" ], blockUser: ["PUT /orgs/{org}/blocks/{username}"], cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], convertMemberToOutsideCollaborator: [ "PUT /orgs/{org}/outside_collaborators/{username}" ], createCustomOrganizationRole: ["POST /orgs/{org}/organization-roles"], createInvitation: ["POST /orgs/{org}/invitations"], createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], createOrUpdateCustomPropertiesValuesForRepos: [ "PATCH /orgs/{org}/properties/values" ], createOrUpdateCustomProperty: [ "PUT /orgs/{org}/properties/schema/{custom_property_name}" ], createWebhook: ["POST /orgs/{org}/hooks"], delete: ["DELETE /orgs/{org}"], deleteCustomOrganizationRole: [ "DELETE /orgs/{org}/organization-roles/{role_id}" ], deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], enableOrDisableSecurityProductOnAllOrgRepos: [ "POST /orgs/{org}/{security_product}/{enablement}" ], get: ["GET /orgs/{org}"], getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], getCustomProperty: [ "GET /orgs/{org}/properties/schema/{custom_property_name}" ], getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], getWebhookDelivery: [ "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" ], list: ["GET /organizations"], listAppInstallations: ["GET /orgs/{org}/installations"], listBlockedUsers: ["GET /orgs/{org}/blocks"], listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], listForAuthenticatedUser: ["GET /user/orgs"], listForUser: ["GET /users/{username}/orgs"], listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], listMembers: ["GET /orgs/{org}/members"], listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], listOrgRoles: ["GET /orgs/{org}/organization-roles"], listOrganizationFineGrainedPermissions: [ "GET /orgs/{org}/organization-fine-grained-permissions" ], listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], listPatGrantRepositories: [ "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" ], listPatGrantRequestRepositories: [ "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" ], listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], listPendingInvitations: ["GET /orgs/{org}/invitations"], listPublicMembers: ["GET /orgs/{org}/public_members"], listSecurityManagerTeams: ["GET /orgs/{org}/security-managers"], listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], listWebhooks: ["GET /orgs/{org}/hooks"], patchCustomOrganizationRole: [ "PATCH /orgs/{org}/organization-roles/{role_id}" ], pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], redeliverWebhookDelivery: [ "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" ], removeCustomProperty: [ "DELETE /orgs/{org}/properties/schema/{custom_property_name}" ], removeMember: ["DELETE /orgs/{org}/members/{username}"], removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], removeOutsideCollaborator: [ "DELETE /orgs/{org}/outside_collaborators/{username}" ], removePublicMembershipForAuthenticatedUser: [ "DELETE /orgs/{org}/public_members/{username}" ], removeSecurityManagerTeam: [ "DELETE /orgs/{org}/security-managers/teams/{team_slug}" ], reviewPatGrantRequest: [ "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" ], reviewPatGrantRequestsInBulk: [ "POST /orgs/{org}/personal-access-token-requests" ], revokeAllOrgRolesTeam: [ "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" ], revokeAllOrgRolesUser: [ "DELETE /orgs/{org}/organization-roles/users/{username}" ], revokeOrgRoleTeam: [ "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" ], revokeOrgRoleUser: [ "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" ], setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], setPublicMembershipForAuthenticatedUser: [ "PUT /orgs/{org}/public_members/{username}" ], unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], update: ["PATCH /orgs/{org}"], updateMembershipForAuthenticatedUser: [ "PATCH /user/memberships/orgs/{org}" ], updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] }, packages: { deletePackageForAuthenticatedUser: [ "DELETE /user/packages/{package_type}/{package_name}" ], deletePackageForOrg: [ "DELETE /orgs/{org}/packages/{package_type}/{package_name}" ], deletePackageForUser: [ "DELETE /users/{username}/packages/{package_type}/{package_name}" ], deletePackageVersionForAuthenticatedUser: [ "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" ], deletePackageVersionForOrg: [ "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" ], deletePackageVersionForUser: [ "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" ], getAllPackageVersionsForAPackageOwnedByAnOrg: [ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", {}, { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } ], getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ "GET /user/packages/{package_type}/{package_name}/versions", {}, { renamed: [ "packages", "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" ] } ], getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ "GET /user/packages/{package_type}/{package_name}/versions" ], getAllPackageVersionsForPackageOwnedByOrg: [ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" ], getAllPackageVersionsForPackageOwnedByUser: [ "GET /users/{username}/packages/{package_type}/{package_name}/versions" ], getPackageForAuthenticatedUser: [ "GET /user/packages/{package_type}/{package_name}" ], getPackageForOrganization: [ "GET /orgs/{org}/packages/{package_type}/{package_name}" ], getPackageForUser: [ "GET /users/{username}/packages/{package_type}/{package_name}" ], getPackageVersionForAuthenticatedUser: [ "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" ], getPackageVersionForOrganization: [ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" ], getPackageVersionForUser: [ "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" ], listDockerMigrationConflictingPackagesForAuthenticatedUser: [ "GET /user/docker/conflicts" ], listDockerMigrationConflictingPackagesForOrganization: [ "GET /orgs/{org}/docker/conflicts" ], listDockerMigrationConflictingPackagesForUser: [ "GET /users/{username}/docker/conflicts" ], listPackagesForAuthenticatedUser: ["GET /user/packages"], listPackagesForOrganization: ["GET /orgs/{org}/packages"], listPackagesForUser: ["GET /users/{username}/packages"], restorePackageForAuthenticatedUser: [ "POST /user/packages/{package_type}/{package_name}/restore{?token}" ], restorePackageForOrg: [ "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" ], restorePackageForUser: [ "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" ], restorePackageVersionForAuthenticatedUser: [ "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" ], restorePackageVersionForOrg: [ "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" ], restorePackageVersionForUser: [ "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" ] }, projects: { addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], createCard: ["POST /projects/columns/{column_id}/cards"], createColumn: ["POST /projects/{project_id}/columns"], createForAuthenticatedUser: ["POST /user/projects"], createForOrg: ["POST /orgs/{org}/projects"], createForRepo: ["POST /repos/{owner}/{repo}/projects"], delete: ["DELETE /projects/{project_id}"], deleteCard: ["DELETE /projects/columns/cards/{card_id}"], deleteColumn: ["DELETE /projects/columns/{column_id}"], get: ["GET /projects/{project_id}"], getCard: ["GET /projects/columns/cards/{card_id}"], getColumn: ["GET /projects/columns/{column_id}"], getPermissionForUser: [ "GET /projects/{project_id}/collaborators/{username}/permission" ], listCards: ["GET /projects/columns/{column_id}/cards"], listCollaborators: ["GET /projects/{project_id}/collaborators"], listColumns: ["GET /projects/{project_id}/columns"], listForOrg: ["GET /orgs/{org}/projects"], listForRepo: ["GET /repos/{owner}/{repo}/projects"], listForUser: ["GET /users/{username}/projects"], moveCard: ["POST /projects/columns/cards/{card_id}/moves"], moveColumn: ["POST /projects/columns/{column_id}/moves"], removeCollaborator: [ "DELETE /projects/{project_id}/collaborators/{username}" ], update: ["PATCH /projects/{project_id}"], updateCard: ["PATCH /projects/columns/cards/{card_id}"], updateColumn: ["PATCH /projects/columns/{column_id}"] }, pulls: { checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], create: ["POST /repos/{owner}/{repo}/pulls"], createReplyForReviewComment: [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" ], createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], createReviewComment: [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" ], deletePendingReview: [ "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" ], deleteReviewComment: [ "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" ], dismissReview: [ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" ], get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], getReview: [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" ], getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], list: ["GET /repos/{owner}/{repo}/pulls"], listCommentsForReview: [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" ], listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], listRequestedReviewers: [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" ], listReviewComments: [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" ], listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], removeRequestedReviewers: [ "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" ], requestReviewers: [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" ], submitReview: [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" ], update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], updateBranch: [ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" ], updateReview: [ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" ], updateReviewComment: [ "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" ] }, rateLimit: { get: ["GET /rate_limit"] }, reactions: { createForCommitComment: [ "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" ], createForIssue: [ "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" ], createForIssueComment: [ "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" ], createForPullRequestReviewComment: [ "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" ], createForRelease: [ "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" ], createForTeamDiscussionCommentInOrg: [ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" ], createForTeamDiscussionInOrg: [ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" ], deleteForCommitComment: [ "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" ], deleteForIssue: [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" ], deleteForIssueComment: [ "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" ], deleteForPullRequestComment: [ "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" ], deleteForRelease: [ "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" ], deleteForTeamDiscussion: [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" ], deleteForTeamDiscussionComment: [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" ], listForCommitComment: [ "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" ], listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], listForIssueComment: [ "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" ], listForPullRequestReviewComment: [ "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" ], listForRelease: [ "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" ], listForTeamDiscussionCommentInOrg: [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" ], listForTeamDiscussionInOrg: [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" ] }, repos: { acceptInvitation: [ "PATCH /user/repository_invitations/{invitation_id}", {}, { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } ], acceptInvitationForAuthenticatedUser: [ "PATCH /user/repository_invitations/{invitation_id}" ], addAppAccessRestrictions: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { mapToData: "apps" } ], addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], addStatusCheckContexts: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { mapToData: "contexts" } ], addTeamAccessRestrictions: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { mapToData: "teams" } ], addUserAccessRestrictions: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { mapToData: "users" } ], cancelPagesDeployment: [ "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" ], checkAutomatedSecurityFixes: [ "GET /repos/{owner}/{repo}/automated-security-fixes" ], checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], checkPrivateVulnerabilityReporting: [ "GET /repos/{owner}/{repo}/private-vulnerability-reporting" ], checkVulnerabilityAlerts: [ "GET /repos/{owner}/{repo}/vulnerability-alerts" ], codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], compareCommitsWithBasehead: [ "GET /repos/{owner}/{repo}/compare/{basehead}" ], createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], createCommitComment: [ "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" ], createCommitSignatureProtection: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" ], createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], createDeployKey: ["POST /repos/{owner}/{repo}/keys"], createDeployment: ["POST /repos/{owner}/{repo}/deployments"], createDeploymentBranchPolicy: [ "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" ], createDeploymentProtectionRule: [ "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" ], createDeploymentStatus: [ "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" ], createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], createForAuthenticatedUser: ["POST /user/repos"], createFork: ["POST /repos/{owner}/{repo}/forks"], createInOrg: ["POST /orgs/{org}/repos"], createOrUpdateCustomPropertiesValues: [ "PATCH /repos/{owner}/{repo}/properties/values" ], createOrUpdateEnvironment: [ "PUT /repos/{owner}/{repo}/environments/{environment_name}" ], createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], createOrgRuleset: ["POST /orgs/{org}/rulesets"], createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], createPagesSite: ["POST /repos/{owner}/{repo}/pages"], createRelease: ["POST /repos/{owner}/{repo}/releases"], createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], createUsingTemplate: [ "POST /repos/{template_owner}/{template_repo}/generate" ], createWebhook: ["POST /repos/{owner}/{repo}/hooks"], declineInvitation: [ "DELETE /user/repository_invitations/{invitation_id}", {}, { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } ], declineInvitationForAuthenticatedUser: [ "DELETE /user/repository_invitations/{invitation_id}" ], delete: ["DELETE /repos/{owner}/{repo}"], deleteAccessRestrictions: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" ], deleteAdminBranchProtection: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" ], deleteAnEnvironment: [ "DELETE /repos/{owner}/{repo}/environments/{environment_name}" ], deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], deleteBranchProtection: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" ], deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], deleteCommitSignatureProtection: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" ], deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], deleteDeployment: [ "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" ], deleteDeploymentBranchPolicy: [ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" ], deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], deleteInvitation: [ "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" ], deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], deletePullRequestReviewProtection: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" ], deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], deleteReleaseAsset: [ "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" ], deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], deleteTagProtection: [ "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}" ], deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], disableAutomatedSecurityFixes: [ "DELETE /repos/{owner}/{repo}/automated-security-fixes" ], disableDeploymentProtectionRule: [ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" ], disablePrivateVulnerabilityReporting: [ "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" ], disableVulnerabilityAlerts: [ "DELETE /repos/{owner}/{repo}/vulnerability-alerts" ], downloadArchive: [ "GET /repos/{owner}/{repo}/zipball/{ref}", {}, { renamed: ["repos", "downloadZipballArchive"] } ], downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], enableAutomatedSecurityFixes: [ "PUT /repos/{owner}/{repo}/automated-security-fixes" ], enablePrivateVulnerabilityReporting: [ "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" ], enableVulnerabilityAlerts: [ "PUT /repos/{owner}/{repo}/vulnerability-alerts" ], generateReleaseNotes: [ "POST /repos/{owner}/{repo}/releases/generate-notes" ], get: ["GET /repos/{owner}/{repo}"], getAccessRestrictions: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" ], getAdminBranchProtection: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" ], getAllDeploymentProtectionRules: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" ], getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], getAllStatusCheckContexts: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" ], getAllTopics: ["GET /repos/{owner}/{repo}/topics"], getAppsWithAccessToProtectedBranch: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" ], getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], getBranchProtection: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection" ], getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], getCollaboratorPermissionLevel: [ "GET /repos/{owner}/{repo}/collaborators/{username}/permission" ], getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], getCommitSignatureProtection: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" ], getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], getCustomDeploymentProtectionRule: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" ], getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], getDeploymentBranchPolicy: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" ], getDeploymentStatus: [ "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" ], getEnvironment: [ "GET /repos/{owner}/{repo}/environments/{environment_name}" ], getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], getOrgRulesets: ["GET /orgs/{org}/rulesets"], getPages: ["GET /repos/{owner}/{repo}/pages"], getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], getPagesDeployment: [ "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" ], getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], getPullRequestReviewProtection: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" ], getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], getReadme: ["GET /repos/{owner}/{repo}/readme"], getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], getRepoRuleSuite: [ "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" ], getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], getStatusChecksProtection: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" ], getTeamsWithAccessToProtectedBranch: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" ], getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], getUsersWithAccessToProtectedBranch: [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" ], getViews: ["GET /repos/{owner}/{repo}/traffic/views"], getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], getWebhookConfigForRepo: [ "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" ], getWebhookDelivery: [ "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" ], listActivities: ["GET /repos/{owner}/{repo}/activity"], listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], listBranches: ["GET /repos/{owner}/{repo}/branches"], listBranchesForHeadCommit: [ "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" ], listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], listCommentsForCommit: [ "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" ], listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], listCommitStatusesForRef: [ "GET /repos/{owner}/{repo}/commits/{ref}/statuses" ], listCommits: ["GET /repos/{owner}/{repo}/commits"], listContributors: ["GET /repos/{owner}/{repo}/contributors"], listCustomDeploymentRuleIntegrations: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" ], listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], listDeploymentBranchPolicies: [ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" ], listDeploymentStatuses: [ "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" ], listDeployments: ["GET /repos/{owner}/{repo}/deployments"], listForAuthenticatedUser: ["GET /user/repos"], listForOrg: ["GET /orgs/{org}/repos"], listForUser: ["GET /users/{username}/repos"], listForks: ["GET /repos/{owner}/{repo}/forks"], listInvitations: ["GET /repos/{owner}/{repo}/invitations"], listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], listLanguages: ["GET /repos/{owner}/{repo}/languages"], listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], listPublic: ["GET /repositories"], listPullRequestsAssociatedWithCommit: [ "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" ], listReleaseAssets: [ "GET /repos/{owner}/{repo}/releases/{release_id}/assets" ], listReleases: ["GET /repos/{owner}/{repo}/releases"], listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], listTags: ["GET /repos/{owner}/{repo}/tags"], listTeams: ["GET /repos/{owner}/{repo}/teams"], listWebhookDeliveries: [ "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" ], listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], merge: ["POST /repos/{owner}/{repo}/merges"], mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], redeliverWebhookDelivery: [ "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" ], removeAppAccessRestrictions: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { mapToData: "apps" } ], removeCollaborator: [ "DELETE /repos/{owner}/{repo}/collaborators/{username}" ], removeStatusCheckContexts: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { mapToData: "contexts" } ], removeStatusCheckProtection: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" ], removeTeamAccessRestrictions: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { mapToData: "teams" } ], removeUserAccessRestrictions: [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { mapToData: "users" } ], renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], setAdminBranchProtection: [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" ], setAppAccessRestrictions: [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { mapToData: "apps" } ], setStatusCheckContexts: [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { mapToData: "contexts" } ], setTeamAccessRestrictions: [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { mapToData: "teams" } ], setUserAccessRestrictions: [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { mapToData: "users" } ], testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], transfer: ["POST /repos/{owner}/{repo}/transfer"], update: ["PATCH /repos/{owner}/{repo}"], updateBranchProtection: [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection" ], updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], updateDeploymentBranchPolicy: [ "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" ], updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], updateInvitation: [ "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" ], updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], updatePullRequestReviewProtection: [ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" ], updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], updateReleaseAsset: [ "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" ], updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], updateStatusCheckPotection: [ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", {}, { renamed: ["repos", "updateStatusCheckProtection"] } ], updateStatusCheckProtection: [ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" ], updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], updateWebhookConfigForRepo: [ "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" ], uploadReleaseAsset: [ "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", { baseUrl: "https://uploads.github.com" } ] }, search: { code: ["GET /search/code"], commits: ["GET /search/commits"], issuesAndPullRequests: ["GET /search/issues"], labels: ["GET /search/labels"], repos: ["GET /search/repositories"], topics: ["GET /search/topics"], users: ["GET /search/users"] }, secretScanning: { getAlert: [ "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" ], listAlertsForEnterprise: [ "GET /enterprises/{enterprise}/secret-scanning/alerts" ], listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], listLocationsForAlert: [ "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" ], updateAlert: [ "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" ] }, securityAdvisories: { createFork: [ "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" ], createPrivateVulnerabilityReport: [ "POST /repos/{owner}/{repo}/security-advisories/reports" ], createRepositoryAdvisory: [ "POST /repos/{owner}/{repo}/security-advisories" ], createRepositoryAdvisoryCveRequest: [ "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" ], getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], getRepositoryAdvisory: [ "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" ], listGlobalAdvisories: ["GET /advisories"], listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], updateRepositoryAdvisory: [ "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" ] }, teams: { addOrUpdateMembershipForUserInOrg: [ "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" ], addOrUpdateProjectPermissionsInOrg: [ "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" ], addOrUpdateRepoPermissionsInOrg: [ "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" ], checkPermissionsForProjectInOrg: [ "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" ], checkPermissionsForRepoInOrg: [ "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" ], create: ["POST /orgs/{org}/teams"], createDiscussionCommentInOrg: [ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" ], createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], deleteDiscussionCommentInOrg: [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" ], deleteDiscussionInOrg: [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" ], deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], getByName: ["GET /orgs/{org}/teams/{team_slug}"], getDiscussionCommentInOrg: [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" ], getDiscussionInOrg: [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" ], getMembershipForUserInOrg: [ "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" ], list: ["GET /orgs/{org}/teams"], listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], listDiscussionCommentsInOrg: [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" ], listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], listForAuthenticatedUser: ["GET /user/teams"], listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], listPendingInvitationsInOrg: [ "GET /orgs/{org}/teams/{team_slug}/invitations" ], listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], removeMembershipForUserInOrg: [ "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" ], removeProjectInOrg: [ "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" ], removeRepoInOrg: [ "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" ], updateDiscussionCommentInOrg: [ "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" ], updateDiscussionInOrg: [ "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" ], updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] }, users: { addEmailForAuthenticated: [ "POST /user/emails", {}, { renamed: ["users", "addEmailForAuthenticatedUser"] } ], addEmailForAuthenticatedUser: ["POST /user/emails"], addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], block: ["PUT /user/blocks/{username}"], checkBlocked: ["GET /user/blocks/{username}"], checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], createGpgKeyForAuthenticated: [ "POST /user/gpg_keys", {}, { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } ], createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], createPublicSshKeyForAuthenticated: [ "POST /user/keys", {}, { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } ], createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], deleteEmailForAuthenticated: [ "DELETE /user/emails", {}, { renamed: ["users", "deleteEmailForAuthenticatedUser"] } ], deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], deleteGpgKeyForAuthenticated: [ "DELETE /user/gpg_keys/{gpg_key_id}", {}, { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } ], deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], deletePublicSshKeyForAuthenticated: [ "DELETE /user/keys/{key_id}", {}, { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } ], deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], deleteSshSigningKeyForAuthenticatedUser: [ "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" ], follow: ["PUT /user/following/{username}"], getAuthenticated: ["GET /user"], getByUsername: ["GET /users/{username}"], getContextForUser: ["GET /users/{username}/hovercard"], getGpgKeyForAuthenticated: [ "GET /user/gpg_keys/{gpg_key_id}", {}, { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } ], getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], getPublicSshKeyForAuthenticated: [ "GET /user/keys/{key_id}", {}, { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } ], getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], getSshSigningKeyForAuthenticatedUser: [ "GET /user/ssh_signing_keys/{ssh_signing_key_id}" ], list: ["GET /users"], listBlockedByAuthenticated: [ "GET /user/blocks", {}, { renamed: ["users", "listBlockedByAuthenticatedUser"] } ], listBlockedByAuthenticatedUser: ["GET /user/blocks"], listEmailsForAuthenticated: [ "GET /user/emails", {}, { renamed: ["users", "listEmailsForAuthenticatedUser"] } ], listEmailsForAuthenticatedUser: ["GET /user/emails"], listFollowedByAuthenticated: [ "GET /user/following", {}, { renamed: ["users", "listFollowedByAuthenticatedUser"] } ], listFollowedByAuthenticatedUser: ["GET /user/following"], listFollowersForAuthenticatedUser: ["GET /user/followers"], listFollowersForUser: ["GET /users/{username}/followers"], listFollowingForUser: ["GET /users/{username}/following"], listGpgKeysForAuthenticated: [ "GET /user/gpg_keys", {}, { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } ], listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], listPublicEmailsForAuthenticated: [ "GET /user/public_emails", {}, { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } ], listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], listPublicKeysForUser: ["GET /users/{username}/keys"], listPublicSshKeysForAuthenticated: [ "GET /user/keys", {}, { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } ], listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], setPrimaryEmailVisibilityForAuthenticated: [ "PATCH /user/email/visibility", {}, { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } ], setPrimaryEmailVisibilityForAuthenticatedUser: [ "PATCH /user/email/visibility" ], unblock: ["DELETE /user/blocks/{username}"], unfollow: ["DELETE /user/following/{username}"], updateAuthenticated: ["PATCH /user"] } }; var endpoints_default = Endpoints; var endpointMethodsMap = /* @__PURE__ */ new Map(); for (const [scope, endpoints] of Object.entries(endpoints_default)) { for (const [methodName, endpoint2] of Object.entries(endpoints)) { const [route, defaults, decorations] = endpoint2; const [method, url] = route.split(/ /); const endpointDefaults = Object.assign( { method, url }, defaults ); if (!endpointMethodsMap.has(scope)) { endpointMethodsMap.set(scope, /* @__PURE__ */ new Map()); } endpointMethodsMap.get(scope).set(methodName, { scope, methodName, endpointDefaults, decorations }); } } var handler = { has({ scope }, methodName) { return endpointMethodsMap.get(scope).has(methodName); }, getOwnPropertyDescriptor(target, methodName) { return { value: this.get(target, methodName), // ensures method is in the cache configurable: true, writable: true, enumerable: true }; }, defineProperty(target, methodName, descriptor) { Object.defineProperty(target.cache, methodName, descriptor); return true; }, deleteProperty(target, methodName) { delete target.cache[methodName]; return true; }, ownKeys({ scope }) { return [...endpointMethodsMap.get(scope).keys()]; }, set(target, methodName, value) { return target.cache[methodName] = value; }, get({ octokit, scope, cache }, methodName) { if (cache[methodName]) { return cache[methodName]; } const method = endpointMethodsMap.get(scope).get(methodName); if (!method) { return void 0; } const { endpointDefaults, decorations } = method; if (decorations) { cache[methodName] = decorate( octokit, scope, methodName, endpointDefaults, decorations ); } else { cache[methodName] = octokit.request.defaults(endpointDefaults); } return cache[methodName]; } }; function endpointsToMethods(octokit) { const newMethods = {}; for (const scope of endpointMethodsMap.keys()) { newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler); } return newMethods; } function decorate(octokit, scope, methodName, defaults, decorations) { const requestWithDefaults = octokit.request.defaults(defaults); function withDecorations(...args) { let options = requestWithDefaults.endpoint.merge(...args); if (decorations.mapToData) { options = Object.assign({}, options, { data: options[decorations.mapToData], [decorations.mapToData]: void 0 }); return requestWithDefaults(options); } if (decorations.renamed) { const [newScope, newMethodName] = decorations.renamed; octokit.log.warn( `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` ); } if (decorations.deprecated) { octokit.log.warn(decorations.deprecated); } if (decorations.renamedParameters) { const options2 = requestWithDefaults.endpoint.merge(...args); for (const [name, alias] of Object.entries( decorations.renamedParameters )) { if (name in options2) { octokit.log.warn( `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` ); if (!(alias in options2)) { options2[alias] = options2[name]; } delete options2[name]; } } return requestWithDefaults(options2); } return requestWithDefaults(...args); } return Object.assign(withDecorations, requestWithDefaults); } function restEndpointMethods(octokit) { const api = endpointsToMethods(octokit); return { rest: api }; } restEndpointMethods.VERSION = VERSION6; function legacyRestEndpointMethods(octokit) { const api = endpointsToMethods(octokit); return { ...api, rest: api }; } legacyRestEndpointMethods.VERSION = VERSION6; // node_modules/.pnpm/@octokit+plugin-retry@6.1.0_@octokit+core@5.2.0/node_modules/@octokit/plugin-retry/dist-web/index.js init_dist_web8(); var import_light = __toESM(require_light()); init_dist_web4(); async function errorRequest(state, octokit, error, options) { if (!error.request || !error.request.request) { throw error; } if (error.status >= 400 && !state.doNotRetry.includes(error.status)) { const retries = options.request.retries != null ? options.request.retries : state.retries; const retryAfter = Math.pow((options.request.retryCount || 0) + 1, 2); throw octokit.retry.retryRequest(error, retries, retryAfter); } throw error; } async function wrapRequest(state, octokit, request2, options) { const limiter = new import_light.default(); limiter.on("failed", function(error, info) { const maxRetries = ~~error.request.request.retries; const after = ~~error.request.request.retryAfter; options.request.retryCount = info.retryCount + 1; if (maxRetries > info.retryCount) { return after * state.retryAfterBaseValue; } }); return limiter.schedule( requestWithGraphqlErrorHandling.bind(null, state, octokit, request2), options ); } async function requestWithGraphqlErrorHandling(state, octokit, request2, options) { const response = await request2(request2, options); if (response.data && response.data.errors && response.data.errors.length > 0 && /Something went wrong while executing your query/.test( response.data.errors[0].message )) { const error = new RequestError(response.data.errors[0].message, 500, { request: options, response }); return errorRequest(state, octokit, error, options); } return response; } var VERSION7 = "6.1.0"; function retry(octokit, octokitOptions) { const state = Object.assign( { enabled: true, retryAfterBaseValue: 1e3, doNotRetry: [400, 401, 403, 404, 422, 451], retries: 3 }, octokitOptions.retry ); if (state.enabled) { octokit.hook.error("request", errorRequest.bind(null, state, octokit)); octokit.hook.wrap("request", wrapRequest.bind(null, state, octokit)); } return { retry: { retryRequest: (error, retries, retryAfter) => { error.request.request = Object.assign({}, error.request.request, { retries, retryAfter }); return error; } } }; } retry.VERSION = VERSION7; // node_modules/.pnpm/@octokit+plugin-throttling@8.2.0_@octokit+core@5.2.0/node_modules/@octokit/plugin-throttling/dist-web/index.js var import_light2 = __toESM(require_light()); init_dist_web8(); var VERSION8 = "8.2.0"; var noop2 = () => Promise.resolve(); function wrapRequest2(state, request2, options) { return state.retryLimiter.schedule(doRequest, state, request2, options); } async function doRequest(state, request2, options) { const isWrite = options.method !== "GET" && options.method !== "HEAD"; const { pathname } = new URL(options.url, "http://github.test"); const isSearch = options.method === "GET" && pathname.startsWith("/search/"); const isGraphQL = pathname.startsWith("/graphql"); const retryCount = ~~request2.retryCount; const jobOptions = retryCount > 0 ? { priority: 0, weight: 0 } : {}; if (state.clustering) { jobOptions.expiration = 1e3 * 60; } if (isWrite || isGraphQL) { await state.write.key(state.id).schedule(jobOptions, noop2); } if (isWrite && state.triggersNotification(pathname)) { await state.notifications.key(state.id).schedule(jobOptions, noop2); } if (isSearch) { await state.search.key(state.id).schedule(jobOptions, noop2); } const req = state.global.key(state.id).schedule(jobOptions, request2, options); if (isGraphQL) { const res = await req; if (res.data.errors != null && res.data.errors.some((error) => error.type === "RATE_LIMITED")) { const error = Object.assign(new Error("GraphQL Rate Limit Exceeded"), { response: res, data: res.data }); throw error; } } return req; } var triggers_notification_paths_default = [ "/orgs/{org}/invitations", "/orgs/{org}/invitations/{invitation_id}", "/orgs/{org}/teams/{team_slug}/discussions", "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "/repos/{owner}/{repo}/collaborators/{username}", "/repos/{owner}/{repo}/commits/{commit_sha}/comments", "/repos/{owner}/{repo}/issues", "/repos/{owner}/{repo}/issues/{issue_number}/comments", "/repos/{owner}/{repo}/pulls", "/repos/{owner}/{repo}/pulls/{pull_number}/comments", "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", "/repos/{owner}/{repo}/pulls/{pull_number}/merge", "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "/repos/{owner}/{repo}/pulls/{pull_number}/reviews", "/repos/{owner}/{repo}/releases", "/teams/{team_id}/discussions", "/teams/{team_id}/discussions/{discussion_number}/comments" ]; function routeMatcher(paths) { const regexes = paths.map( (path) => path.split("/").map((c) => c.startsWith("{") ? "(?:.+?)" : c).join("/") ); const regex2 = `^(?:${regexes.map((r2) => `(?:${r2})`).join("|")})[^/]*$`; return new RegExp(regex2, "i"); } var regex = routeMatcher(triggers_notification_paths_default); var triggersNotification = regex.test.bind(regex); var groups = {}; var createGroups = function(Bottleneck2, common) { groups.global = new Bottleneck2.Group({ id: "octokit-global", maxConcurrent: 10, ...common }); groups.search = new Bottleneck2.Group({ id: "octokit-search", maxConcurrent: 1, minTime: 2e3, ...common }); groups.write = new Bottleneck2.Group({ id: "octokit-write", maxConcurrent: 1, minTime: 1e3, ...common }); groups.notifications = new Bottleneck2.Group({ id: "octokit-notifications", maxConcurrent: 1, minTime: 3e3, ...common }); }; function throttling(octokit, octokitOptions) { const { enabled = true, Bottleneck: Bottleneck2 = import_light2.default, id = "no-id", timeout = 1e3 * 60 * 2, // Redis TTL: 2 minutes connection } = octokitOptions.throttle || {}; if (!enabled) { return {}; } const common = { connection, timeout }; if (groups.global == null) { createGroups(Bottleneck2, common); } const state = Object.assign( { clustering: connection != null, triggersNotification, fallbackSecondaryRateRetryAfter: 60, retryAfterBaseValue: 1e3, retryLimiter: new Bottleneck2(), id, ...groups }, octokitOptions.throttle ); if (typeof state.onSecondaryRateLimit !== "function" || typeof state.onRateLimit !== "function") { throw new Error(`octokit/plugin-throttling error: You must pass the onSecondaryRateLimit and onRateLimit error handlers. See https://octokit.github.io/rest.js/#throttling const octokit = new Octokit({ throttle: { onSecondaryRateLimit: (retryAfter, options) => {/* ... */}, onRateLimit: (retryAfter, options) => {/* ... */} } }) `); } const events = {}; const emitter = new Bottleneck2.Events(events); events.on("secondary-limit", state.onSecondaryRateLimit); events.on("rate-limit", state.onRateLimit); events.on( "error", (e2) => octokit.log.warn("Error in throttling-plugin limit handler", e2) ); state.retryLimiter.on("failed", async function(error, info) { const [state2, request2, options] = info.args; const { pathname } = new URL(options.url, "http://github.test"); const shouldRetryGraphQL = pathname.startsWith("/graphql") && error.status !== 401; if (!(shouldRetryGraphQL || error.status === 403)) { return; } const retryCount = ~~request2.retryCount; request2.retryCount = retryCount; options.request.retryCount = retryCount; const { wantRetry, retryAfter = 0 } = await async function() { var _a3; if (/\bsecondary rate\b/i.test(error.message)) { const retryAfter2 = Number(error.response.headers["retry-after"]) || state2.fallbackSecondaryRateRetryAfter; const wantRetry2 = await emitter.trigger( "secondary-limit", retryAfter2, options, octokit, retryCount ); return { wantRetry: wantRetry2, retryAfter: retryAfter2 }; } if (error.response.headers != null && error.response.headers["x-ratelimit-remaining"] === "0" || (((_a3 = error.response.data) == null ? void 0 : _a3.errors) ?? []).some( (error2) => error2.type === "RATE_LIMITED" )) { const rateLimitReset = new Date( ~~error.response.headers["x-ratelimit-reset"] * 1e3 ).getTime(); const retryAfter2 = Math.max( // Add one second so we retry _after_ the reset time // https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#exceeding-the-rate-limit Math.ceil((rateLimitReset - Date.now()) / 1e3) + 1, 0 ); const wantRetry2 = await emitter.trigger( "rate-limit", retryAfter2, options, octokit, retryCount ); return { wantRetry: wantRetry2, retryAfter: retryAfter2 }; } return {}; }(); if (wantRetry) { request2.retryCount++; return retryAfter * state2.retryAfterBaseValue; } }); octokit.hook.wrap("request", wrapRequest2.bind(null, state)); return {}; } throttling.VERSION = VERSION8; throttling.triggersNotification = triggersNotification; // node_modules/.pnpm/octokit@3.2.1/node_modules/octokit/dist-web/index.js init_dist_web4(); // node_modules/.pnpm/@octokit+app@14.1.0/node_modules/@octokit/app/dist-web/index.js init_dist_web8(); var import_auth_app = __toESM(require_dist_node()); var import_oauth_app = __toESM(require_dist_node2()); var import_auth_app2 = __toESM(require_dist_node()); init_dist_web13(); // node_modules/.pnpm/@octokit+webhooks@12.3.1/node_modules/@octokit/webhooks/dist-web/index.js var import_aggregate_error = __toESM(require_aggregate_error()); // node_modules/.pnpm/@octokit+webhooks-methods@4.1.0/node_modules/@octokit/webhooks-methods/dist-web/index.js var Algorithm = ((Algorithm2) => { Algorithm2["SHA1"] = "sha1"; Algorithm2["SHA256"] = "sha256"; return Algorithm2; })(Algorithm || {}); var getAlgorithm = (signature) => { return signature.startsWith("sha256=") ? "sha256" : "sha1"; }; var enc = new TextEncoder(); function hexToUInt8Array(string) { const pairs = string.match(/[\dA-F]{2}/gi); const integers = pairs.map(function(s) { return parseInt(s, 16); }); return new Uint8Array(integers); } function UInt8ArrayToHex(signature) { return Array.prototype.map.call(new Uint8Array(signature), (x) => x.toString(16).padStart(2, "0")).join(""); } function getHMACHashName(algorithm) { return { [Algorithm.SHA1]: "SHA-1", [Algorithm.SHA256]: "SHA-256" }[algorithm]; } async function importKey(secret, algorithm) { return crypto.subtle.importKey( "raw", // raw format of the key - should be Uint8Array enc.encode(secret), { // algorithm details name: "HMAC", hash: { name: getHMACHashName(algorithm) } }, false, // export = false ["sign", "verify"] // what this key can do ); } async function sign(options, payload) { const { secret, algorithm } = typeof options === "object" ? { secret: options.secret, algorithm: options.algorithm || Algorithm.SHA256 } : { secret: options, algorithm: Algorithm.SHA256 }; if (!secret || !payload) { throw new TypeError( "[@octokit/webhooks-methods] secret & payload required for sign()" ); } if (typeof payload !== "string") { throw new TypeError("[@octokit/webhooks-methods] payload must be a string"); } if (!Object.values(Algorithm).includes(algorithm)) { throw new TypeError( `[@octokit/webhooks] Algorithm ${algorithm} is not supported. Must be 'sha1' or 'sha256'` ); } const signature = await crypto.subtle.sign( "HMAC", await importKey(secret, algorithm), enc.encode(payload) ); return `${algorithm}=${UInt8ArrayToHex(signature)}`; } async function verify(secret, eventPayload, signature) { if (!secret || !eventPayload || !signature) { throw new TypeError( "[@octokit/webhooks-methods] secret, eventPayload & signature required" ); } if (typeof eventPayload !== "string") { throw new TypeError( "[@octokit/webhooks-methods] eventPayload must be a string" ); } const algorithm = getAlgorithm(signature); return await crypto.subtle.verify( "HMAC", await importKey(secret, algorithm), hexToUInt8Array(signature.replace(`${algorithm}=`, "")), enc.encode(eventPayload) ); } // node_modules/.pnpm/@octokit+webhooks@12.3.1/node_modules/@octokit/webhooks/dist-web/index.js var import_aggregate_error2 = __toESM(require_aggregate_error()); var import_aggregate_error3 = __toESM(require_aggregate_error()); var createLogger = (logger) => ({ debug: () => { }, info: () => { }, warn: console.warn.bind(console), error: console.error.bind(console), ...logger }); var emitterEventNames = [ "branch_protection_configuration", "branch_protection_configuration.disabled", "branch_protection_configuration.enabled", "branch_protection_rule", "branch_protection_rule.created", "branch_protection_rule.deleted", "branch_protection_rule.edited", "check_run", "check_run.completed", "check_run.created", "check_run.requested_action", "check_run.rerequested", "check_suite", "check_suite.completed", "check_suite.requested", "check_suite.rerequested", "code_scanning_alert", "code_scanning_alert.appeared_in_branch", "code_scanning_alert.closed_by_user", "code_scanning_alert.created", "code_scanning_alert.fixed", "code_scanning_alert.reopened", "code_scanning_alert.reopened_by_user", "commit_comment", "commit_comment.created", "create", "custom_property", "custom_property.created", "custom_property.deleted", "custom_property_values", "custom_property_values.updated", "delete", "dependabot_alert", "dependabot_alert.created", "dependabot_alert.dismissed", "dependabot_alert.fixed", "dependabot_alert.reintroduced", "dependabot_alert.reopened", "deploy_key", "deploy_key.created", "deploy_key.deleted", "deployment", "deployment.created", "deployment_protection_rule", "deployment_protection_rule.requested", "deployment_review", "deployment_review.approved", "deployment_review.rejected", "deployment_review.requested", "deployment_status", "deployment_status.created", "discussion", "discussion.answered", "discussion.category_changed", "discussion.created", "discussion.deleted", "discussion.edited", "discussion.labeled", "discussion.locked", "discussion.pinned", "discussion.transferred", "discussion.unanswered", "discussion.unlabeled", "discussion.unlocked", "discussion.unpinned", "discussion_comment", "discussion_comment.created", "discussion_comment.deleted", "discussion_comment.edited", "fork", "github_app_authorization", "github_app_authorization.revoked", "gollum", "installation", "installation.created", "installation.deleted", "installation.new_permissions_accepted", "installation.suspend", "installation.unsuspend", "installation_repositories", "installation_repositories.added", "installation_repositories.removed", "installation_target", "installation_target.renamed", "issue_comment", "issue_comment.created", "issue_comment.deleted", "issue_comment.edited", "issues", "issues.assigned", "issues.closed", "issues.deleted", "issues.demilestoned", "issues.edited", "issues.labeled", "issues.locked", "issues.milestoned", "issues.opened", "issues.pinned", "issues.reopened", "issues.transferred", "issues.unassigned", "issues.unlabeled", "issues.unlocked", "issues.unpinned", "label", "label.created", "label.deleted", "label.edited", "marketplace_purchase", "marketplace_purchase.cancelled", "marketplace_purchase.changed", "marketplace_purchase.pending_change", "marketplace_purchase.pending_change_cancelled", "marketplace_purchase.purchased", "member", "member.added", "member.edited", "member.removed", "membership", "membership.added", "membership.removed", "merge_group", "merge_group.checks_requested", "merge_group.destroyed", "meta", "meta.deleted", "milestone", "milestone.closed", "milestone.created", "milestone.deleted", "milestone.edited", "milestone.opened", "org_block", "org_block.blocked", "org_block.unblocked", "organization", "organization.deleted", "organization.member_added", "organization.member_invited", "organization.member_removed", "organization.renamed", "package", "package.published", "package.updated", "page_build", "ping", "project", "project.closed", "project.created", "project.deleted", "project.edited", "project.reopened", "project_card", "project_card.converted", "project_card.created", "project_card.deleted", "project_card.edited", "project_card.moved", "project_column", "project_column.created", "project_column.deleted", "project_column.edited", "project_column.moved", "projects_v2_item", "projects_v2_item.archived", "projects_v2_item.converted", "projects_v2_item.created", "projects_v2_item.deleted", "projects_v2_item.edited", "projects_v2_item.reordered", "projects_v2_item.restored", "public", "pull_request", "pull_request.assigned", "pull_request.auto_merge_disabled", "pull_request.auto_merge_enabled", "pull_request.closed", "pull_request.converted_to_draft", "pull_request.demilestoned", "pull_request.dequeued", "pull_request.edited", "pull_request.enqueued", "pull_request.labeled", "pull_request.locked", "pull_request.milestoned", "pull_request.opened", "pull_request.ready_for_review", "pull_request.reopened", "pull_request.review_request_removed", "pull_request.review_requested", "pull_request.synchronize", "pull_request.unassigned", "pull_request.unlabeled", "pull_request.unlocked", "pull_request_review", "pull_request_review.dismissed", "pull_request_review.edited", "pull_request_review.submitted", "pull_request_review_comment", "pull_request_review_comment.created", "pull_request_review_comment.deleted", "pull_request_review_comment.edited", "pull_request_review_thread", "pull_request_review_thread.resolved", "pull_request_review_thread.unresolved", "push", "registry_package", "registry_package.published", "registry_package.updated", "release", "release.created", "release.deleted", "release.edited", "release.prereleased", "release.published", "release.released", "release.unpublished", "repository", "repository.archived", "repository.created", "repository.deleted", "repository.edited", "repository.privatized", "repository.publicized", "repository.renamed", "repository.transferred", "repository.unarchived", "repository_dispatch", "repository_import", "repository_vulnerability_alert", "repository_vulnerability_alert.create", "repository_vulnerability_alert.dismiss", "repository_vulnerability_alert.reopen", "repository_vulnerability_alert.resolve", "secret_scanning_alert", "secret_scanning_alert.created", "secret_scanning_alert.reopened", "secret_scanning_alert.resolved", "secret_scanning_alert.revoked", "secret_scanning_alert_location", "secret_scanning_alert_location.created", "security_advisory", "security_advisory.performed", "security_advisory.published", "security_advisory.updated", "security_advisory.withdrawn", "sponsorship", "sponsorship.cancelled", "sponsorship.created", "sponsorship.edited", "sponsorship.pending_cancellation", "sponsorship.pending_tier_change", "sponsorship.tier_changed", "star", "star.created", "star.deleted", "status", "team", "team.added_to_repository", "team.created", "team.deleted", "team.edited", "team.removed_from_repository", "team_add", "watch", "watch.started", "workflow_dispatch", "workflow_job", "workflow_job.completed", "workflow_job.in_progress", "workflow_job.queued", "workflow_job.waiting", "workflow_run", "workflow_run.completed", "workflow_run.in_progress", "workflow_run.requested" ]; function handleEventHandlers(state, webhookName, handler2) { if (!state.hooks[webhookName]) { state.hooks[webhookName] = []; } state.hooks[webhookName].push(handler2); } function receiverOn(state, webhookNameOrNames, handler2) { if (Array.isArray(webhookNameOrNames)) { webhookNameOrNames.forEach( (webhookName) => receiverOn(state, webhookName, handler2) ); return; } if (["*", "error"].includes(webhookNameOrNames)) { const webhookName = webhookNameOrNames === "*" ? "any" : webhookNameOrNames; const message = `Using the "${webhookNameOrNames}" event with the regular Webhooks.on() function is not supported. Please use the Webhooks.on${webhookName.charAt(0).toUpperCase() + webhookName.slice(1)}() method instead`; throw new Error(message); } if (!emitterEventNames.includes(webhookNameOrNames)) { state.log.warn( `"${webhookNameOrNames}" is not a known webhook name (https://developer.github.com/v3/activity/events/types/)` ); } handleEventHandlers(state, webhookNameOrNames, handler2); } function receiverOnAny(state, handler2) { handleEventHandlers(state, "*", handler2); } function receiverOnError(state, handler2) { handleEventHandlers(state, "error", handler2); } function wrapErrorHandler(handler2, error) { let returnValue; try { returnValue = handler2(error); } catch (error2) { console.log('FATAL: Error occurred in "error" event handler'); console.log(error2); } if (returnValue && returnValue.catch) { returnValue.catch((error2) => { console.log('FATAL: Error occurred in "error" event handler'); console.log(error2); }); } } function getHooks(state, eventPayloadAction, eventName) { const hooks = [state.hooks[eventName], state.hooks["*"]]; if (eventPayloadAction) { hooks.unshift(state.hooks[`${eventName}.${eventPayloadAction}`]); } return [].concat(...hooks.filter(Boolean)); } function receiverHandle(state, event) { const errorHandlers = state.hooks.error || []; if (event instanceof Error) { const error = Object.assign(new import_aggregate_error.default([event]), { event, errors: [event] }); errorHandlers.forEach((handler2) => wrapErrorHandler(handler2, error)); return Promise.reject(error); } if (!event || !event.name) { throw new import_aggregate_error.default(["Event name not passed"]); } if (!event.payload) { throw new import_aggregate_error.default(["Event payload not passed"]); } const hooks = getHooks( state, "action" in event.payload ? event.payload.action : null, event.name ); if (hooks.length === 0) { return Promise.resolve(); } const errors = []; const promises = hooks.map((handler2) => { let promise = Promise.resolve(event); if (state.transform) { promise = promise.then(state.transform); } return promise.then((event2) => { return handler2(event2); }).catch((error) => errors.push(Object.assign(error, { event }))); }); return Promise.all(promises).then(() => { if (errors.length === 0) { return; } const error = new import_aggregate_error.default(errors); Object.assign(error, { event, errors }); errorHandlers.forEach((handler2) => wrapErrorHandler(handler2, error)); throw error; }); } function removeListener(state, webhookNameOrNames, handler2) { if (Array.isArray(webhookNameOrNames)) { webhookNameOrNames.forEach( (webhookName) => removeListener(state, webhookName, handler2) ); return; } if (!state.hooks[webhookNameOrNames]) { return; } for (let i2 = state.hooks[webhookNameOrNames].length - 1; i2 >= 0; i2--) { if (state.hooks[webhookNameOrNames][i2] === handler2) { state.hooks[webhookNameOrNames].splice(i2, 1); return; } } } function createEventHandler(options) { const state = { hooks: {}, log: createLogger(options && options.log) }; if (options && options.transform) { state.transform = options.transform; } return { on: receiverOn.bind(null, state), onAny: receiverOnAny.bind(null, state), onError: receiverOnError.bind(null, state), removeListener: removeListener.bind(null, state), receive: receiverHandle.bind(null, state) }; } async function verifyAndReceive(state, event) { const matchesSignature = await verify( state.secret, event.payload, event.signature ).catch(() => false); if (!matchesSignature) { const error = new Error( "[@octokit/webhooks] signature does not match event payload and secret" ); return state.eventHandler.receive( Object.assign(error, { event, status: 400 }) ); } let payload; try { payload = JSON.parse(event.payload); } catch (error) { error.message = "Invalid JSON"; error.status = 400; throw new import_aggregate_error2.default([error]); } return state.eventHandler.receive({ id: event.id, name: event.name, payload }); } var WEBHOOK_HEADERS = [ "x-github-event", "x-hub-signature-256", "x-github-delivery" ]; function getMissingHeaders(request2) { return WEBHOOK_HEADERS.filter((header) => !(header in request2.headers)); } function getPayload(request2) { if ("body" in request2) { if (typeof request2.body === "object" && "rawBody" in request2 && request2.rawBody instanceof Buffer) { return Promise.resolve(request2.rawBody.toString("utf8")); } else { return Promise.resolve(request2.body); } } return new Promise((resolve, reject) => { let data = []; request2.on("error", (error) => reject(new import_aggregate_error3.default([error]))); request2.on("data", (chunk) => data.push(chunk)); request2.on( "end", () => ( // setImmediate improves the throughput by reducing the pressure from // the event loop setImmediate( resolve, data.length === 1 ? data[0].toString("utf8") : Buffer.concat(data).toString("utf8") ) ) ); }); } function onUnhandledRequestDefault(request2, response) { response.writeHead(404, { "content-type": "application/json" }); response.end( JSON.stringify({ error: `Unknown route: ${request2.method} ${request2.url}` }) ); } async function middleware(webhooks2, options, request2, response, next) { let pathname; try { pathname = new URL(request2.url, "http://localhost").pathname; } catch (error) { response.writeHead(422, { "content-type": "application/json" }); response.end( JSON.stringify({ error: `Request URL could not be parsed: ${request2.url}` }) ); return true; } if (pathname !== options.path) { next == null ? void 0 : next(); return false; } else if (request2.method !== "POST") { onUnhandledRequestDefault(request2, response); return true; } if (!request2.headers["content-type"] || !request2.headers["content-type"].startsWith("application/json")) { response.writeHead(415, { "content-type": "application/json", accept: "application/json" }); response.end( JSON.stringify({ error: `Unsupported "Content-Type" header value. Must be "application/json"` }) ); return true; } const missingHeaders = getMissingHeaders(request2).join(", "); if (missingHeaders) { response.writeHead(400, { "content-type": "application/json" }); response.end( JSON.stringify({ error: `Required headers missing: ${missingHeaders}` }) ); return true; } const eventName = request2.headers["x-github-event"]; const signatureSHA256 = request2.headers["x-hub-signature-256"]; const id = request2.headers["x-github-delivery"]; options.log.debug(`${eventName} event received (id: ${id})`); let didTimeout = false; const timeout = setTimeout(() => { didTimeout = true; response.statusCode = 202; response.end("still processing\n"); }, 9e3).unref(); try { const payload = await getPayload(request2); await webhooks2.verifyAndReceive({ id, name: eventName, payload, signature: signatureSHA256 }); clearTimeout(timeout); if (didTimeout) return true; response.end("ok\n"); return true; } catch (error) { clearTimeout(timeout); if (didTimeout) return true; const err = Array.from(error)[0]; const errorMessage = err.message ? `${err.name}: ${err.message}` : "Error: An Unspecified error occurred"; response.statusCode = typeof err.status !== "undefined" ? err.status : 500; options.log.error(error); response.end( JSON.stringify({ error: errorMessage }) ); return true; } } function createNodeMiddleware(webhooks2, { path = "/api/github/webhooks", log = createLogger() } = {}) { return middleware.bind(null, webhooks2, { path, log }); } var Webhooks = class { constructor(options) { if (!options || !options.secret) { throw new Error("[@octokit/webhooks] options.secret required"); } const state = { eventHandler: createEventHandler(options), secret: options.secret, hooks: {}, log: createLogger(options.log) }; this.sign = sign.bind(null, options.secret); this.verify = verify.bind(null, options.secret); this.on = state.eventHandler.on; this.onAny = state.eventHandler.onAny; this.onError = state.eventHandler.onError; this.removeListener = state.eventHandler.removeListener; this.receive = state.eventHandler.receive; this.verifyAndReceive = verifyAndReceive.bind(null, state); } }; // node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js var VERSION13 = "9.2.1"; function normalizePaginatedListResponse2(response) { if (!response.data) { return { ...response, data: [] }; } const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); if (!responseNeedsNormalization) return response; const incompleteResults = response.data.incomplete_results; const repositorySelection = response.data.repository_selection; const totalCount = response.data.total_count; delete response.data.incomplete_results; delete response.data.repository_selection; delete response.data.total_count; const namespaceKey = Object.keys(response.data)[0]; const data = response.data[namespaceKey]; response.data = data; if (typeof incompleteResults !== "undefined") { response.data.incomplete_results = incompleteResults; } if (typeof repositorySelection !== "undefined") { response.data.repository_selection = repositorySelection; } response.data.total_count = totalCount; return response; } function iterator2(octokit, route, parameters) { const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); const requestMethod = typeof route === "function" ? route : octokit.request; const method = options.method; const headers = options.headers; let url = options.url; return { [Symbol.asyncIterator]: () => ({ async next() { if (!url) return { done: true }; try { const response = await requestMethod({ method, url, headers }); const normalizedResponse = normalizePaginatedListResponse2(response); url = ((normalizedResponse.headers.link || "").match( /<([^>]+)>;\s*rel="next"/ ) || [])[1]; return { value: normalizedResponse }; } catch (error) { if (error.status !== 409) throw error; url = ""; return { value: { status: 200, headers: {}, data: [] } }; } } }) }; } function paginate2(octokit, route, parameters, mapFn) { if (typeof parameters === "function") { mapFn = parameters; parameters = void 0; } return gather2( octokit, [], iterator2(octokit, route, parameters)[Symbol.asyncIterator](), mapFn ); } function gather2(octokit, results, iterator22, mapFn) { return iterator22.next().then((result) => { if (result.done) { return results; } let earlyExit = false; function done() { earlyExit = true; } results = results.concat( mapFn ? mapFn(result.value, done) : result.value.data ); if (earlyExit) { return results; } return gather2(octokit, results, iterator22, mapFn); }); } var composePaginateRest2 = Object.assign(paginate2, { iterator: iterator2 }); function paginateRest2(octokit) { return { paginate: Object.assign(paginate2.bind(null, octokit), { iterator: iterator2.bind(null, octokit) }) }; } paginateRest2.VERSION = VERSION13; // node_modules/.pnpm/@octokit+app@14.1.0/node_modules/@octokit/app/dist-web/index.js var import_auth_app3 = __toESM(require_dist_node()); var import_oauth_app2 = __toESM(require_dist_node2()); var VERSION14 = "14.1.0"; function webhooks(appOctokit, options) { return new Webhooks({ secret: options.secret, transform: async (event) => { if (!("installation" in event.payload) || typeof event.payload.installation !== "object") { const octokit2 = new appOctokit.constructor({ authStrategy: createUnauthenticatedAuth, auth: { reason: `"installation" key missing in webhook event payload` } }); return { ...event, octokit: octokit2 }; } const installationId = event.payload.installation.id; const octokit = await appOctokit.auth({ type: "installation", installationId, factory(auth6) { return new auth6.octokit.constructor({ ...auth6.octokitOptions, authStrategy: import_auth_app2.createAppAuth, ...{ auth: { ...auth6, installationId } } }); } }); octokit.hook.before("request", (options2) => { options2.headers["x-github-delivery"] = event.id; }); return { ...event, octokit }; } }); } async function getInstallationOctokit(app, installationId) { return app.octokit.auth({ type: "installation", installationId, factory(auth6) { const options = { ...auth6.octokitOptions, authStrategy: import_auth_app3.createAppAuth, ...{ auth: { ...auth6, installationId } } }; return new auth6.octokit.constructor(options); } }); } function eachInstallationFactory(app) { return Object.assign(eachInstallation.bind(null, app), { iterator: eachInstallationIterator.bind(null, app) }); } async function eachInstallation(app, callback) { const i2 = eachInstallationIterator(app)[Symbol.asyncIterator](); let result = await i2.next(); while (!result.done) { await callback(result.value); result = await i2.next(); } } function eachInstallationIterator(app) { return { async *[Symbol.asyncIterator]() { const iterator3 = composePaginateRest2.iterator( app.octokit, "GET /app/installations" ); for await (const { data: installations } of iterator3) { for (const installation of installations) { const installationOctokit = await getInstallationOctokit( app, installation.id ); yield { octokit: installationOctokit, installation }; } } } }; } function eachRepositoryFactory(app) { return Object.assign(eachRepository.bind(null, app), { iterator: eachRepositoryIterator.bind(null, app) }); } async function eachRepository(app, queryOrCallback, callback) { const i2 = eachRepositoryIterator( app, callback ? queryOrCallback : void 0 )[Symbol.asyncIterator](); let result = await i2.next(); while (!result.done) { if (callback) { await callback(result.value); } else { await queryOrCallback(result.value); } result = await i2.next(); } } function singleInstallationIterator(app, installationId) { return { async *[Symbol.asyncIterator]() { yield { octokit: await app.getInstallationOctokit(installationId) }; } }; } function eachRepositoryIterator(app, query) { return { async *[Symbol.asyncIterator]() { const iterator3 = query ? singleInstallationIterator(app, query.installationId) : app.eachInstallation.iterator(); for await (const { octokit } of iterator3) { const repositoriesIterator = composePaginateRest2.iterator( octokit, "GET /installation/repositories" ); for await (const { data: repositories } of repositoriesIterator) { for (const repository of repositories) { yield { octokit, repository }; } } } } }; } function noop3() { } function createNodeMiddleware2(app, options = {}) { const log = Object.assign( { debug: noop3, info: noop3, warn: console.warn.bind(console), error: console.error.bind(console) }, options.log ); const optionsWithDefaults = { pathPrefix: "/api/github", ...options, log }; const webhooksMiddleware = createNodeMiddleware(app.webhooks, { path: optionsWithDefaults.pathPrefix + "/webhooks", log }); const oauthMiddleware = (0, import_oauth_app2.createNodeMiddleware)(app.oauth, { pathPrefix: optionsWithDefaults.pathPrefix + "/oauth" }); return middleware2.bind( null, optionsWithDefaults.pathPrefix, webhooksMiddleware, oauthMiddleware ); } async function middleware2(pathPrefix, webhooksMiddleware, oauthMiddleware, request2, response, next) { const { pathname } = new URL(request2.url, "http://localhost"); if (pathname.startsWith(`${pathPrefix}/`)) { if (pathname === `${pathPrefix}/webhooks`) { webhooksMiddleware(request2, response); } else if (pathname.startsWith(`${pathPrefix}/oauth/`)) { oauthMiddleware(request2, response); } else { (0, import_oauth_app2.sendNodeResponse)((0, import_oauth_app2.unknownRouteResponse)(request2), response); } return true; } else { next == null ? void 0 : next(); return false; } } var _a2; var App = (_a2 = class { static defaults(defaults) { const AppWithDefaults = class extends this { constructor(...args) { super({ ...defaults, ...args[0] }); } }; return AppWithDefaults; } constructor(options) { const Octokit3 = options.Octokit || Octokit; const authOptions = Object.assign( { appId: options.appId, privateKey: options.privateKey }, options.oauth ? { clientId: options.oauth.clientId, clientSecret: options.oauth.clientSecret } : {} ); this.octokit = new Octokit3({ authStrategy: import_auth_app.createAppAuth, auth: authOptions, log: options.log }); this.log = Object.assign( { debug: () => { }, info: () => { }, warn: console.warn.bind(console), error: console.error.bind(console) }, options.log ); if (options.webhooks) { this.webhooks = webhooks(this.octokit, options.webhooks); } else { Object.defineProperty(this, "webhooks", { get() { throw new Error("[@octokit/app] webhooks option not set"); } }); } if (options.oauth) { this.oauth = new import_oauth_app.OAuthApp({ ...options.oauth, clientType: "github-app", Octokit: Octokit3 }); } else { Object.defineProperty(this, "oauth", { get() { throw new Error( "[@octokit/app] oauth.clientId / oauth.clientSecret options are not set" ); } }); } this.getInstallationOctokit = getInstallationOctokit.bind( null, this ); this.eachInstallation = eachInstallationFactory( this ); this.eachRepository = eachRepositoryFactory( this ); } }, _a2.VERSION = VERSION14, _a2); // node_modules/.pnpm/octokit@3.2.1/node_modules/octokit/dist-web/index.js var import_oauth_app3 = __toESM(require_dist_node2()); var VERSION15 = "3.2.1"; var Octokit2 = Octokit.plugin( restEndpointMethods, paginateRest, paginateGraphql, retry, throttling ).defaults({ userAgent: `octokit.js/${VERSION15}`, throttle: { onRateLimit, onSecondaryRateLimit } }); function onRateLimit(retryAfter, options, octokit) { octokit.log.warn( `Request quota exhausted for request ${options.method} ${options.url}` ); if (options.request.retryCount === 0) { octokit.log.info(`Retrying after ${retryAfter} seconds!`); return true; } } function onSecondaryRateLimit(retryAfter, options, octokit) { octokit.log.warn( `SecondaryRateLimit detected for request ${options.method} ${options.url}` ); if (options.request.retryCount === 0) { octokit.log.info(`Retrying after ${retryAfter} seconds!`); return true; } } var App2 = App.defaults({ Octokit: Octokit2 }); var OAuthApp2 = import_oauth_app3.OAuthApp.defaults({ Octokit: Octokit2 }); export { App2 as App, OAuthApp2 as OAuthApp, Octokit2 as Octokit, RequestError, createNodeMiddleware2 as createNodeMiddleware }; //# sourceMappingURL=octokit.js.map