diff --git a/.github/workflows/nx-release-auto-plan.yml b/.github/workflows/nx-release-auto-plan.yml index 9edc94a..a133c89 100644 --- a/.github/workflows/nx-release-auto-plan.yml +++ b/.github/workflows/nx-release-auto-plan.yml @@ -63,6 +63,6 @@ jobs: - run: pnpm install - id: auto-plan - uses: rightcapitalhq/actions/nx-release-auto-plan@nx-release-auto-plan/v0.6.0 + uses: rightcapitalhq/actions/nx-release-auto-plan@nx-release-auto-plan/v0.6.1 with: bump-header: ${{ inputs.bump-header }} diff --git a/.github/workflows/nx-release-pr.yml b/.github/workflows/nx-release-pr.yml index bf4aa64..474e626 100644 --- a/.github/workflows/nx-release-pr.yml +++ b/.github/workflows/nx-release-pr.yml @@ -92,7 +92,7 @@ jobs: - run: pnpm install - id: nx-release-pr - uses: rightcapitalhq/actions/nx-release-pr@nx-release-pr/v0.6.0 + uses: rightcapitalhq/actions/nx-release-pr@nx-release-pr/v0.6.1 env: NODE_PATH: ${{ github.workspace }}/node_modules with: diff --git a/.github/workflows/nx-release.yml b/.github/workflows/nx-release.yml index b9b23c2..df9fdf9 100644 --- a/.github/workflows/nx-release.yml +++ b/.github/workflows/nx-release.yml @@ -63,7 +63,7 @@ jobs: - run: pnpm install - id: nx-release - uses: rightcapitalhq/actions/nx-release@nx-release/v0.6.0 + uses: rightcapitalhq/actions/nx-release@nx-release/v0.6.1 env: NODE_PATH: ${{ github.workspace }}/node_modules with: diff --git a/.nx/version-plans/version-plan-1781381108312.md b/.nx/version-plans/version-plan-1781381108312.md deleted file mode 100644 index df1db97..0000000 --- a/.nx/version-plans/version-plan-1781381108312.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -nx-release: patch ---- - -fix(deps): update dependency @actions/github to v9 diff --git a/nx-release-auto-plan/CHANGELOG.md b/nx-release-auto-plan/CHANGELOG.md index 8b737f1..87dab1f 100644 --- a/nx-release-auto-plan/CHANGELOG.md +++ b/nx-release-auto-plan/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.6.1 (2026-06-16) + +### 🩹 Fixes + +- fix(deps): update dependency @actions/github to v9 ([a943022](https://github.com/RightCapitalHQ/actions/commit/a943022)) + ## 0.6.0 (2026-05-29) ### 🚀 Features diff --git a/nx-release-auto-plan/package.json b/nx-release-auto-plan/package.json index 360c588..3f66203 100644 --- a/nx-release-auto-plan/package.json +++ b/nx-release-auto-plan/package.json @@ -1,6 +1,6 @@ { "name": "nx-release-auto-plan", - "version": "0.6.0", + "version": "0.6.1", "private": true, "scripts": { "build": "rslib build" diff --git a/nx-release-pr/CHANGELOG.md b/nx-release-pr/CHANGELOG.md index 7b6334b..ef9e288 100644 --- a/nx-release-pr/CHANGELOG.md +++ b/nx-release-pr/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.6.1 (2026-06-16) + +### 🩹 Fixes + +- fix(deps): update dependency @actions/github to v9 ([a943022](https://github.com/RightCapitalHQ/actions/commit/a943022)) + ## 0.6.0 (2026-05-29) ### 🚀 Features diff --git a/nx-release-pr/dist/index.js b/nx-release-pr/dist/index.js index 07d4279..d670e25 100644 --- a/nx-release-pr/dist/index.js +++ b/nx-release-pr/dist/index.js @@ -1,108 +1,6 @@ /*! LICENSE: index.js.LICENSE.txt */ var __webpack_modules__ = { - "../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/context.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - Object.defineProperty(exports1, "__esModule", { - value: true - }); - exports1.Context = void 0; - const fs_1 = __webpack_require__("fs"); - const os_1 = __webpack_require__("os"); - class Context { - constructor(){ - var _a, _b, _c; - this.payload = {}; - if (process.env.GITHUB_EVENT_PATH) if ((0, fs_1.existsSync)(process.env.GITHUB_EVENT_PATH)) this.payload = JSON.parse((0, fs_1.readFileSync)(process.env.GITHUB_EVENT_PATH, { - encoding: 'utf8' - })); - else { - const path = process.env.GITHUB_EVENT_PATH; - process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`); - } - this.eventName = process.env.GITHUB_EVENT_NAME; - this.sha = process.env.GITHUB_SHA; - this.ref = process.env.GITHUB_REF; - this.workflow = process.env.GITHUB_WORKFLOW; - this.action = process.env.GITHUB_ACTION; - this.actor = process.env.GITHUB_ACTOR; - this.job = process.env.GITHUB_JOB; - this.runAttempt = parseInt(process.env.GITHUB_RUN_ATTEMPT, 10); - this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); - this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); - this.apiUrl = null != (_a = process.env.GITHUB_API_URL) ? _a : "https://api.github.com"; - this.serverUrl = null != (_b = process.env.GITHUB_SERVER_URL) ? _b : "https://github.com"; - this.graphqlUrl = null != (_c = process.env.GITHUB_GRAPHQL_URL) ? _c : "https://api.github.com/graphql"; - } - get issue() { - const payload = this.payload; - return Object.assign(Object.assign({}, this.repo), { - number: (payload.issue || payload.pull_request || payload).number - }); - } - get repo() { - if (process.env.GITHUB_REPOSITORY) { - const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); - return { - owner, - repo - }; - } - if (this.payload.repository) return { - owner: this.payload.repository.owner.login, - repo: this.payload.repository.name - }; - throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); - } - } - exports1.Context = Context; - }, - "../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/github.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = { - enumerable: true, - get: function() { - return m[k]; - } - }; - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = this && this.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (null != mod) { - for(var k in mod)if ("default" !== k && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports1, "__esModule", { - value: true - }); - exports1.getOctokit = exports1.context = void 0; - const Context = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/context.js")); - const utils_1 = __webpack_require__("../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/utils.js"); - exports1.context = new Context.Context(); - function getOctokit(token, options, ...additionalPlugins) { - const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins); - return new GitHubWithPlugins((0, utils_1.getOctokitOptions)(token, options)); - } - exports1.getOctokit = getOctokit; - }, - "../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/internal/utils.js" (__unused_rspack_module, exports1, __webpack_require__) { + "../node_modules/.pnpm/@actions+http-client@3.0.2/node_modules/@actions/http-client/lib/index.js" (__unused_rspack_module, exports1, __webpack_require__) { "use strict"; var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) { if (void 0 === k2) k2 = k; @@ -126,173 +24,25 @@ var __webpack_modules__ = { } : function(o, v) { o["default"] = v; }); - var __importStar = this && this.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (null != mod) { - for(var k in mod)if ("default" !== k && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - Object.defineProperty(exports1, "__esModule", { - value: true - }); - exports1.getApiBaseUrl = exports1.getProxyFetch = exports1.getProxyAgentDispatcher = exports1.getProxyAgent = exports1.getAuthString = void 0; - const httpClient = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/lib/index.js")); - const undici_1 = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/index.js"); - function getAuthString(token, options) { - if (token || options.auth) { - if (token && options.auth) throw new Error('Parameters token and opts.auth may not both be specified'); - } else throw new Error('Parameter token or opts.auth is required'); - return 'string' == typeof options.auth ? options.auth : `token ${token}`; - } - exports1.getAuthString = getAuthString; - function getProxyAgent(destinationUrl) { - const hc = new httpClient.HttpClient(); - return hc.getAgent(destinationUrl); - } - exports1.getProxyAgent = getProxyAgent; - function getProxyAgentDispatcher(destinationUrl) { - const hc = new httpClient.HttpClient(); - return hc.getAgentDispatcher(destinationUrl); - } - exports1.getProxyAgentDispatcher = getProxyAgentDispatcher; - function getProxyFetch(destinationUrl) { - const httpDispatcher = getProxyAgentDispatcher(destinationUrl); - const proxyFetch = (url, opts)=>__awaiter(this, void 0, void 0, function*() { - return (0, undici_1.fetch)(url, Object.assign(Object.assign({}, opts), { - dispatcher: httpDispatcher - })); - }); - return proxyFetch; - } - exports1.getProxyFetch = getProxyFetch; - function getApiBaseUrl() { - return process.env['GITHUB_API_URL'] || 'https://api.github.com'; - } - exports1.getApiBaseUrl = getApiBaseUrl; - }, - "../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/utils.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = { - enumerable: true, - get: function() { - return m[k]; - } + var __importStar = this && this.__importStar || function() { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function(o) { + var ar = []; + for(var k in o)if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); }; - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = this && this.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (null != mod) { - for(var k in mod)if ("default" !== k && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports1, "__esModule", { - value: true - }); - exports1.getOctokitOptions = exports1.GitHub = exports1.defaults = exports1.context = void 0; - const Context = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/context.js")); - const Utils = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/internal/utils.js")); - const core_1 = __webpack_require__("../node_modules/.pnpm/@octokit+core@5.2.2/node_modules/@octokit/core/dist-web/index.js"); - const plugin_rest_endpoint_methods_1 = __webpack_require__("../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.2/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js"); - const plugin_paginate_rest_1 = __webpack_require__("../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.2_@octokit+core@5.2.2/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js"); - exports1.context = new Context.Context(); - const baseUrl = Utils.getApiBaseUrl(); - exports1.defaults = { - baseUrl, - request: { - agent: Utils.getProxyAgent(baseUrl), - fetch: Utils.getProxyFetch(baseUrl) - } - }; - exports1.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports1.defaults); - function getOctokitOptions(token, options) { - const opts = Object.assign({}, options || {}); - const auth = Utils.getAuthString(token, opts); - if (auth) opts.auth = auth; - return opts; - } - exports1.getOctokitOptions = getOctokitOptions; - }, - "../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/lib/index.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = { - enumerable: true, - get: function() { - return m[k]; + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (null != mod) { + for(var k = ownKeys(mod), i = 0; i < k.length; i++)if ("default" !== k[i]) __createBinding(result, mod, k[i]); } + __setModuleDefault(result, mod); + return result; }; - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = this && this.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (null != mod) { - for(var k in mod)if ("default" !== k && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; + }(); var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { @@ -323,12 +73,14 @@ var __webpack_modules__ = { Object.defineProperty(exports1, "__esModule", { value: true }); - exports1.HttpClient = exports1.isHttps = exports1.HttpClientResponse = exports1.HttpClientError = exports1.getProxyUrl = exports1.MediaTypes = exports1.Headers = exports1.HttpCodes = void 0; + exports1.HttpClient = exports1.HttpClientResponse = exports1.HttpClientError = exports1.MediaTypes = exports1.Headers = exports1.HttpCodes = void 0; + exports1.getProxyUrl = getProxyUrl; + exports1.isHttps = isHttps; const http = __importStar(__webpack_require__("http")); const https = __importStar(__webpack_require__("https")); - const pm = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/lib/proxy.js")); + const pm = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+http-client@3.0.2/node_modules/@actions/http-client/lib/proxy.js")); const tunnel = __importStar(__webpack_require__("../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js")); - const undici_1 = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/index.js"); + const undici_1 = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/index.js"); var HttpCodes; (function(HttpCodes) { HttpCodes[HttpCodes["OK"] = 200] = "OK"; @@ -372,7 +124,6 @@ var __webpack_modules__ = { const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); return proxyUrl ? proxyUrl.href : ''; } - exports1.getProxyUrl = getProxyUrl; const HttpRedirectCodes = [ HttpCodes.MovedPermanently, HttpCodes.ResourceMoved, @@ -441,7 +192,6 @@ var __webpack_modules__ = { const parsedUrl = new URL(requestUrl); return 'https:' === parsedUrl.protocol; } - exports1.isHttps = isHttps; class HttpClient { constructor(userAgent, handlers, requestOptions){ this._ignoreSslError = false; @@ -452,7 +202,7 @@ var __webpack_modules__ = { this._maxRetries = 1; this._keepAlive = false; this._disposed = false; - this.userAgent = userAgent; + this.userAgent = this._getUserAgentWithOrchestrationId(userAgent); this.handlers = handlers || []; this.requestOptions = requestOptions; if (requestOptions) { @@ -506,36 +256,36 @@ var __webpack_modules__ = { return this.request(verb, requestUrl, stream, additionalHeaders); }); } - getJson(requestUrl, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function*() { + getJson(requestUrl_1) { + return __awaiter(this, arguments, void 0, function*(requestUrl, additionalHeaders = {}) { additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); const res = yield this.get(requestUrl, additionalHeaders); return this._processResponse(res, this.requestOptions); }); } - postJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function*() { + postJson(requestUrl_1, obj_1) { + return __awaiter(this, arguments, void 0, function*(requestUrl, obj, additionalHeaders = {}) { const data = JSON.stringify(obj, null, 2); additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); const res = yield this.post(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); }); } - putJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function*() { + putJson(requestUrl_1, obj_1) { + return __awaiter(this, arguments, void 0, function*(requestUrl, obj, additionalHeaders = {}) { const data = JSON.stringify(obj, null, 2); additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); const res = yield this.put(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); }); } - patchJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function*() { + patchJson(requestUrl_1, obj_1) { + return __awaiter(this, arguments, void 0, function*(requestUrl, obj, additionalHeaders = {}) { const data = JSON.stringify(obj, null, 2); additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); const res = yield this.patch(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); }); @@ -668,8 +418,27 @@ var __webpack_modules__ = { } _getExistingOrDefaultHeader(additionalHeaders, header, _default) { let clientHeader; - if (this.requestOptions && this.requestOptions.headers) clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; - return additionalHeaders[header] || clientHeader || _default; + if (this.requestOptions && this.requestOptions.headers) { + const headerValue = lowercaseKeys(this.requestOptions.headers)[header]; + if (headerValue) clientHeader = 'number' == typeof headerValue ? headerValue.toString() : headerValue; + } + const additionalValue = additionalHeaders[header]; + if (void 0 !== additionalValue) return 'number' == typeof additionalValue ? additionalValue.toString() : additionalValue; + if (void 0 !== clientHeader) return clientHeader; + return _default; + } + _getExistingOrDefaultContentTypeHeader(additionalHeaders, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + const headerValue = lowercaseKeys(this.requestOptions.headers)[Headers.ContentType]; + if (headerValue) clientHeader = 'number' == typeof headerValue ? String(headerValue) : Array.isArray(headerValue) ? headerValue.join(', ') : headerValue; + } + const additionalValue = additionalHeaders[Headers.ContentType]; + if (void 0 !== additionalValue) if ('number' == typeof additionalValue) return String(additionalValue); + else if (Array.isArray(additionalValue)) return additionalValue.join(', '); + else return additionalValue; + if (void 0 !== clientHeader) return clientHeader; + return _default; } _getAgent(parsedUrl) { let agent; @@ -728,6 +497,15 @@ var __webpack_modules__ = { }); return proxyAgent; } + _getUserAgentWithOrchestrationId(userAgent) { + const baseUserAgent = userAgent || 'actions/http-client'; + const orchId = process.env['ACTIONS_ORCHESTRATION_ID']; + if (orchId) { + const sanitizedId = orchId.replace(/[^a-z0-9_.-]/gi, '_'); + return `${baseUserAgent} actions_orchestration_id/${sanitizedId}`; + } + return baseUserAgent; + } _performExponentialBackoff(retryNumber) { return __awaiter(this, void 0, void 0, function*() { retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); @@ -776,12 +554,13 @@ var __webpack_modules__ = { exports1.HttpClient = HttpClient; const lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {}); }, - "../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/lib/proxy.js" (__unused_rspack_module, exports1) { + "../node_modules/.pnpm/@actions+http-client@3.0.2/node_modules/@actions/http-client/lib/proxy.js" (__unused_rspack_module, exports1) { "use strict"; Object.defineProperty(exports1, "__esModule", { value: true }); - exports1.checkBypass = exports1.getProxyUrl = void 0; + exports1.getProxyUrl = getProxyUrl; + exports1.checkBypass = checkBypass; function getProxyUrl(reqUrl) { const usingSsl = 'https:' === reqUrl.protocol; if (checkBypass(reqUrl)) return; @@ -796,7 +575,6 @@ var __webpack_modules__ = { if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://')) return new DecodedURL(`http://${proxyVar}`); } } - exports1.getProxyUrl = getProxyUrl; function checkBypass(reqUrl) { if (!reqUrl.hostname) return false; const reqHost = reqUrl.hostname; @@ -814,7 +592,6 @@ var __webpack_modules__ = { for (const upperNoProxyItem of noProxy.split(',').map((x)=>x.trim().toUpperCase()).filter((x)=>x))if ('*' === upperNoProxyItem || upperReqHosts.some((x)=>x === upperNoProxyItem || x.endsWith(`.${upperNoProxyItem}`) || upperNoProxyItem.startsWith('.') && x.endsWith(`${upperNoProxyItem}`))) return true; return false; } - exports1.checkBypass = checkBypass; function isLoopbackAddress(host) { const hostLower = host.toLowerCase(); return 'localhost' === hostLower || hostLower.startsWith('127.') || hostLower.startsWith('[::1]') || hostLower.startsWith('[0:0:0:0:0:0:0:1]'); @@ -833,16515 +610,523 @@ var __webpack_modules__ = { } } }, - "../node_modules/.pnpm/@octokit+core@5.2.2/node_modules/@octokit/core/dist-web/index.js" (__unused_rspack_module, __webpack_exports__, __webpack_require__) { + "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js" (module, __unused_rspack_exports, __webpack_require__) { "use strict"; - __webpack_require__.d(__webpack_exports__, { - Octokit: ()=>Octokit - }); - function getUserAgent() { - if ("object" == typeof navigator && "userAgent" in navigator) return navigator.userAgent; - if ("object" == typeof process && void 0 !== process.version) return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; - return ""; - } - var before_after_hook = __webpack_require__("../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/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 ("object" != typeof value || null === value) return false; - if ("[object Object]" !== Object.prototype.toString.call(value)) return false; - const proto = Object.getPrototypeOf(value); - if (null === proto) return true; - const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; - return "function" == typeof Ctor && 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) result[key] = mergeDeep(defaults[key], options[key]); - else Object.assign(result, { - [key]: options[key] - }); - else Object.assign(result, { - [key]: options[key] - }); - }); - return result; - } - function removeUndefinedProperties(obj) { - for(const key in obj)if (void 0 === obj[key]) delete obj[key]; - return obj; + const cp = __webpack_require__("child_process"); + const parse = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js"); + const enoent = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js"); + function spawn(command, args, options) { + const parsed = parse(command, args, options); + const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); + enoent.hookChildProcess(spawned, parsed); + return spawned; } - function merge(defaults, route, options) { - if ("string" == typeof route) { - 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 ("/graphql" === options.url) { - if (defaults && defaults.mediaType.previews?.length) mergedOptions.mediaType.previews = defaults.mediaType.previews.filter((preview)=>!mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); - mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview)=>preview.replace(/-preview/, "")); - } - return mergedOptions; - } - function addQueryParameters(url, parameters) { - const separator = /\?/.test(url) ? "&" : "?"; - const names = Object.keys(parameters); - if (0 === names.length) return url; - return url + separator + names.map((name)=>{ - if ("q" === name) return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); - } - const urlVariableRegex = /\{[^{}}]+\}/g; - function removeNonChars(variableName) { - return variableName.replace(/(?:^\W+)|(?:(?a.concat(b), []); - } - function omit(object, keysToOmit) { - const result = { - __proto__: null - }; - for (const key of Object.keys(object))if (-1 === keysToOmit.indexOf(key)) result[key] = object[key]; + function spawnSync(command, args, options) { + const parsed = parse(command, args, options); + const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); + result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); 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(); + module.exports = spawn; + module.exports.spawn = spawn; + module.exports.sync = spawnSync; + module.exports._parse = parse; + module.exports._enoent = enoent; + }, + "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js" (module) { + "use strict"; + const isWin = 'win32' === process.platform; + function notFoundError(original, syscall) { + return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { + code: 'ENOENT', + errno: 'ENOENT', + syscall: `${syscall} ${original.command}`, + path: original.command, + spawnargs: original.args }); } - function encodeValue(operator, value, key) { - value = "+" === operator || "#" === operator ? encodeReserved(value) : encodeUnreserved(value); - if (key) return encodeUnreserved(key) + "=" + value; - return value; + function hookChildProcess(cp, parsed) { + if (!isWin) return; + const originalEmit = cp.emit; + cp.emit = function(name, arg1) { + if ('exit' === name) { + const err = verifyENOENT(arg1, parsed); + if (err) return originalEmit.call(cp, 'error', err); + } + return originalEmit.apply(cp, arguments); + }; } - function isDefined(value) { - return null != value; + function verifyENOENT(status, parsed) { + if (isWin && 1 === status && !parsed.file) return notFoundError(parsed.original, 'spawn'); + return null; } - function isKeyOperator(operator) { - return ";" === operator || "&" === operator || "?" === operator; + function verifyENOENTSync(status, parsed) { + if (isWin && 1 === status && !parsed.file) return notFoundError(parsed.original, 'spawnSync'); + return null; } - function getValues(context, operator, key, modifier) { - var value = context[key], result = []; - if (isDefined(value) && "" !== value) if ("string" == typeof value || "number" == typeof value || "boolean" == typeof value) { - 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 (0 !== tmp.length) result.push(tmp.join(",")); + module.exports = { + hookChildProcess, + verifyENOENT, + verifyENOENTSync, + notFoundError + }; + }, + "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const path = __webpack_require__("path"); + const resolveCommand = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js"); + const escape = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js"); + const readShebang = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js"); + const isWin = 'win32' === process.platform; + const isExecutableRegExp = /\.(?:com|exe)$/i; + const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; + function detectShebang(parsed) { + parsed.file = resolveCommand(parsed); + const shebang = parsed.file && readShebang(parsed.file); + if (shebang) { + parsed.args.unshift(parsed.file); + parsed.command = shebang; + return resolveCommand(parsed); } - 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) - }; + return parsed.file; } - function expand(template, context) { - var operators = [ - "+", - "#", - ".", - "/", - ";", - "?", - "&" - ]; - template = template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function(_, expression, literal) { - if (!expression) return encodeReserved(literal); - { - let operator = ""; - const values = []; - if (-1 !== operators.indexOf(expression.charAt(0))) { - 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) return values.join(","); - var separator = ","; - if ("?" === operator) separator = "&"; - else if ("#" !== operator) separator = operator; - return (0 !== values.length ? operator : "") + values.join(separator); - } - }); - if ("/" === template) return template; - return template.replace(/\/$/, ""); - } - function parse(options) { - let method = options.method.toUpperCase(); - let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); - let headers = Object.assign({}, options.headers); - let body; - let parameters = omit(options, [ - "method", - "baseUrl", - "url", - "headers", - "request", - "mediaType" - ]); - const urlVariableNames = extractUrlVariableNames(url); - url = parseUrl(url).expand(parameters); - if (!/^http/.test(url)) url = options.baseUrl + url; - const omittedParameters = Object.keys(options).filter((option)=>urlVariableNames.includes(option)).concat("baseUrl"); - const remainingParameters = omit(parameters, omittedParameters); - const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); - if (!isBinaryRequest) { - if (options.mediaType.format) headers.accept = headers.accept.split(/,/).map((format)=>format.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); - if (url.endsWith("/graphql")) { - if (options.mediaType.previews?.length) { - const previewsFromAcceptHeader = headers.accept.match(/(?{ - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); - } - } + function parseNonShell(parsed) { + if (!isWin) return parsed; + const commandFile = detectShebang(parsed); + const needsShell = !isExecutableRegExp.test(commandFile); + if (parsed.options.forceShell || needsShell) { + const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); + parsed.command = path.normalize(parsed.command); + parsed.command = escape.command(parsed.command); + parsed.args = parsed.args.map((arg)=>escape.argument(arg, needsDoubleEscapeMetaChars)); + const shellCommand = [ + parsed.command + ].concat(parsed.args).join(' '); + parsed.args = [ + '/d', + '/s', + '/c', + `"${shellCommand}"` + ]; + parsed.command = process.env.comspec || 'cmd.exe'; + parsed.options.windowsVerbatimArguments = true; } - 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"] && void 0 !== body) headers["content-type"] = "application/json; charset=utf-8"; - if ([ - "PATCH", - "PUT" - ].includes(method) && void 0 === body) body = ""; - return Object.assign({ - method, - url, - headers - }, void 0 !== body ? { - body - } : null, options.request ? { - request: options.request - } : null); - } - function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); - } - function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS = merge(oldDefaults, newDefaults); - const endpoint = endpointWithDefaults.bind(null, DEFAULTS); - return Object.assign(endpoint, { - DEFAULTS, - defaults: withDefaults.bind(null, DEFAULTS), - merge: merge.bind(null, DEFAULTS), - parse: parse - }); + return parsed; } - const userAgent = `octokit-endpoint.js/9.0.6 ${getUserAgent()}`; - const defaults_DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "" - } - }; - const dist_src_endpoint = withDefaults(null, defaults_DEFAULTS); - function is_plain_object_isPlainObject(value) { - if ("object" != typeof value || null === value) return false; - if ("[object Object]" !== Object.prototype.toString.call(value)) return false; - const proto = Object.getPrototypeOf(value); - if (null === proto) return true; - const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; - return "function" == typeof Ctor && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); - } - class Deprecation extends Error { - constructor(message){ - super(message); - if (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor); - this.name = 'Deprecation'; + function parse(command, args, options) { + if (args && !Array.isArray(args)) { + options = args; + args = null; } + args = args ? args.slice(0) : []; + options = Object.assign({}, options); + const parsed = { + command, + args, + options, + file: void 0, + original: { + command, + args + } + }; + return options.shell ? parsed : parseNonShell(parsed); } - var once = __webpack_require__("../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js"); - var once_default = /*#__PURE__*/ __webpack_require__.n(once); - const logOnceCode = once_default()((deprecation)=>console.warn(deprecation)); - const logOnceHeaders = once_default()((deprecation)=>console.warn(deprecation)); - class RequestError 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 && void 0 !== options.headers) 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(/(?&|;, *?])/g; + function escapeCommand(arg) { + arg = arg.replace(metaCharsRegExp, '^$1'); + return arg; + } + function escapeArgument(arg, doubleEscapeMetaChars) { + arg = `${arg}`; + arg = arg.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"'); + arg = arg.replace(/(?=(\\+?)?)\1$/, '$1$1'); + arg = `"${arg}"`; + arg = arg.replace(metaCharsRegExp, '^$1'); + if (doubleEscapeMetaChars) arg = arg.replace(metaCharsRegExp, '^$1'); + return arg; + } + module.exports.command = escapeCommand; + module.exports.argument = escapeArgument; + }, + "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const fs = __webpack_require__("fs"); + const shebangCommand = __webpack_require__("../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js"); + function readShebang(command) { + const size = 150; + const buffer = Buffer.alloc(size); + let fd; + try { + fd = fs.openSync(command, 'r'); + fs.readSync(fd, buffer, 0, size, 0); + fs.closeSync(fd); + } catch (e) {} + return shebangCommand(buffer.toString()); + } + module.exports = readShebang; + }, + "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const path = __webpack_require__("path"); + const which = __webpack_require__("../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js"); + const getPathKey = __webpack_require__("../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js"); + function resolveCommandAttempt(parsed, withoutPathExt) { + const env = parsed.options.env || process.env; + const cwd = process.cwd(); + const hasCustomCwd = null != parsed.options.cwd; + const shouldSwitchCwd = hasCustomCwd && void 0 !== process.chdir && !process.chdir.disabled; + if (shouldSwitchCwd) try { + process.chdir(parsed.options.cwd); + } catch (err) {} + let resolved; + try { + resolved = which.sync(parsed.command, { + path: env[getPathKey({ + env + })], + pathExt: withoutPathExt ? path.delimiter : void 0 }); + } catch (e) {} finally{ + if (shouldSwitchCwd) process.chdir(cwd); } + if (resolved) resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved); + return resolved; } - function getBufferResponse(response) { - return response.arrayBuffer(); - } - function fetchWrapper(requestOptions) { - const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; - const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false; - if (is_plain_object_isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) requestOptions.body = JSON.stringify(requestOptions.body); - let headers = {}; - let status; - let url; - let { fetch } = globalThis; - if (requestOptions.request?.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: requestOptions.request?.redirect, - headers: requestOptions.headers, - signal: requestOptions.request?.signal, - ...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 (204 === status || 205 === status) return; - if ("HEAD" === requestOptions.method) { - if (status < 400) return; - throw new RequestError(response.statusText, status, { - response: { - url, - status, - headers, - data: void 0 - }, - request: requestOptions + function resolveCommand(parsed) { + return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); + } + module.exports = resolveCommand; + }, + "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js" (module, __unused_rspack_exports, __webpack_require__) { + __webpack_require__("fs"); + var core; + core = 'win32' === process.platform || global.TESTING_WINDOWS ? __webpack_require__("../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js") : __webpack_require__("../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js"); + module.exports = isexe; + isexe.sync = sync; + function isexe(path, options, cb) { + if ('function' == typeof options) { + cb = options; + options = {}; + } + if (!cb) { + if ('function' != typeof Promise) throw new TypeError('callback not provided'); + return new Promise(function(resolve, reject) { + isexe(path, options || {}, function(er, is) { + if (er) reject(er); + else resolve(is); }); - } - if (304 === status) 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)=>({ - status, - url, - headers, - data - })).catch((error)=>{ - if (error instanceof RequestError) throw error; - if ("AbortError" === error.name) throw error; - let message = error.message; - if ("TypeError" === error.name && "cause" in error) { - if (error.cause instanceof Error) message = error.cause.message; - else if ("string" == typeof error.cause) message = error.cause; + } + core(path, options || {}, function(er, is) { + if (er) { + if ('EACCES' === er.code || options && options.ignoreErrors) { + er = null; + is = false; + } } - 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 ("string" == typeof data) return data; - let suffix; - suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : ""; - 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 with_defaults_withDefaults(oldEndpoint, newDefaults) { - const endpoint = oldEndpoint.defaults(newDefaults); - const newApi = function(route, parameters) { - const endpointOptions = endpoint.merge(route, parameters); - if (!endpointOptions.request || !endpointOptions.request.hook) return fetchWrapper(endpoint.parse(endpointOptions)); - const request = (route2, parameters2)=>fetchWrapper(endpoint.parse(endpoint.merge(route2, parameters2))); - Object.assign(request, { - endpoint, - defaults: with_defaults_withDefaults.bind(null, endpoint) - }); - return endpointOptions.request.hook(request, endpointOptions); - }; - return Object.assign(newApi, { - endpoint, - defaults: with_defaults_withDefaults.bind(null, endpoint) + cb(er, is); }); } - const dist_src_request = with_defaults_withDefaults(dist_src_endpoint, { - headers: { - "user-agent": `octokit-request.js/8.4.1 ${getUserAgent()}` + function sync(path, options) { + try { + return core.sync(path, options || {}); + } catch (er) { + if (options && options.ignoreErrors || 'EACCES' === er.code) return false; + throw er; } - }); - var VERSION = "7.1.1"; - function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors: -` + data.errors.map((e)=>` - ${e.message}`).join("\n"); } - var GraphqlResponseError = class extends Error { - constructor(request2, headers, response){ - super(_buildMessageForResponseErrors(response)); - this.request = request2; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; - this.errors = response.errors; - this.data = response.data; - if (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor); - } - }; - var NON_VARIABLE_OPTIONS = [ - "method", - "baseUrl", - "url", - "headers", - "request", - "query", - "mediaType" - ]; - var FORBIDDEN_VARIABLE_OPTIONS = [ - "query", - "method", - "url" - ]; - var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; - function graphql(request2, query, options) { - if (options) { - if ("string" == typeof query && "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)) return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`)); - } - const parsedOptions = "string" == typeof query ? 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; + }, + "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js" (module, __unused_rspack_exports, __webpack_require__) { + module.exports = isexe; + isexe.sync = sync; + var fs = __webpack_require__("fs"); + function isexe(path, options, cb) { + fs.stat(path, function(er, stat) { + cb(er, er ? false : checkStat(stat, options)); }); } - function dist_web_withDefaults(request2, newDefaults) { - const newRequest = request2.defaults(newDefaults); - const newApi = (query, options)=>graphql(newRequest, query, options); - return Object.assign(newApi, { - defaults: dist_web_withDefaults.bind(null, newRequest), - endpoint: newRequest.endpoint - }); + function sync(path, options) { + return checkStat(fs.statSync(path), options); } - dist_web_withDefaults(dist_src_request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}` - }, - method: "POST", - url: "/graphql" - }); - function withCustomRequest(customRequest) { - return dist_web_withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); + function checkStat(stat, options) { + return stat.isFile() && checkMode(stat, options); } - const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; - const REGEX_IS_INSTALLATION = /^ghs_/; - const REGEX_IS_USER_TO_SERVER = /^ghu_/; - async function auth_auth(token) { - const isApp = 3 === token.split(/\./).length; - 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 checkMode(stat, options) { + var mod = stat.mode; + var uid = stat.uid; + var gid = stat.gid; + var myUid = void 0 !== options.uid ? options.uid : process.getuid && process.getuid(); + var myGid = void 0 !== options.gid ? options.gid : process.getgid && process.getgid(); + var u = parseInt('100', 8); + var g = parseInt('010', 8); + var o = parseInt('001', 8); + var ug = u | g; + var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && 0 === myUid; + return ret; } - function withAuthorizationPrefix(token) { - if (3 === token.split(/\./).length) return `bearer ${token}`; - return `token ${token}`; - } - async function hook_hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge(route, parameters); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); - } - const createTokenAuth = function(token) { - if (!token) throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); - if ("string" != typeof token) throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); - token = token.replace(/^(token|bearer) +/i, ""); - return Object.assign(auth_auth.bind(null, token), { - hook: hook_hook.bind(null, token) - }); - }; - var dist_web_VERSION = "5.2.2"; - var noop = ()=>{}; - var consoleWarn = console.warn.bind(console); - var consoleError = console.error.bind(console); - function createLogger(logger = {}) { - if ("function" != typeof logger.debug) logger.debug = noop; - if ("function" != typeof logger.info) logger.info = noop; - if ("function" != typeof logger.warn) logger.warn = consoleWarn; - if ("function" != typeof logger.error) logger.error = consoleError; - return logger; - } - var userAgentTrail = `octokit-core.js/${dist_web_VERSION} ${getUserAgent()}`; - var Octokit = class { - static{ - this.VERSION = dist_web_VERSION; - } - static defaults(defaults) { - const OctokitWithDefaults = class extends this { - constructor(...args){ - const options = args[0] || {}; - if ("function" == typeof defaults) return void super(defaults(options)); - super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { - userAgent: `${options.userAgent} ${defaults.userAgent}` - } : null)); - } - }; - return OctokitWithDefaults; - } - static{ - this.plugins = []; - } - static plugin(...newPlugins) { - const currentPlugins = this.plugins; - const NewOctokit = class extends this { - static{ - this.plugins = currentPlugins.concat(newPlugins.filter((plugin)=>!currentPlugins.includes(plugin))); - } - }; - return NewOctokit; - } - constructor(options = {}){ - const hook = new before_after_hook.Collection(); - const requestDefaults = { - baseUrl: dist_src_request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" - } - }; - requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; - if (options.baseUrl) requestDefaults.baseUrl = options.baseUrl; - if (options.previews) requestDefaults.mediaType.previews = options.previews; - if (options.timeZone) requestDefaults.headers["time-zone"] = options.timeZone; - this.request = dist_src_request.defaults(requestDefaults); - this.graphql = withCustomRequest(this.request).defaults(requestDefaults); - this.log = createLogger(options.log); - this.hook = hook; - if (options.authStrategy) { - const { authStrategy, ...otherOptions } = options; - const auth = authStrategy(Object.assign({ - request: this.request, - log: this.log, - octokit: this, - octokitOptions: otherOptions - }, options.auth)); - hook.wrap("request", auth.hook); - this.auth = auth; - } else if (options.auth) { - const auth = createTokenAuth(options.auth); - hook.wrap("request", auth.hook); - this.auth = auth; - } else this.auth = async ()=>({ - type: "unauthenticated" - }); - const classConstructor = this.constructor; - for(let i = 0; i < classConstructor.plugins.length; ++i)Object.assign(this, classConstructor.plugins[i](this, options)); - } - }; }, - "../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.2_@octokit+core@5.2.2/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js" (__unused_rspack_module, __webpack_exports__, __webpack_require__) { - "use strict"; - var VERSION = "9.2.2"; - 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 (void 0 !== incompleteResults) response.data.incomplete_results = incompleteResults; - if (void 0 !== repositorySelection) response.data.repository_selection = repositorySelection; - response.data.total_count = totalCount; - return response; - } - function iterator(octokit, route, parameters) { - const options = "function" == typeof route ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); - const requestMethod = "function" == typeof route ? 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 (409 !== error.status) throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } - }) - }; - } - function paginate(octokit, route, parameters, mapFn) { - if ("function" == typeof parameters) { - mapFn = parameters; - parameters = void 0; + "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js" (module, __unused_rspack_exports, __webpack_require__) { + module.exports = isexe; + isexe.sync = sync; + var fs = __webpack_require__("fs"); + function checkPathExt(path, options) { + var pathext = void 0 !== options.pathExt ? options.pathExt : process.env.PATHEXT; + if (!pathext) return true; + pathext = pathext.split(';'); + if (-1 !== pathext.indexOf('')) return true; + for(var i = 0; i < pathext.length; i++){ + var p = pathext[i].toLowerCase(); + if (p && path.substr(-p.length).toLowerCase() === p) return true; } - return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); + return false; } - function gather(octokit, results, iterator2, mapFn) { - return iterator2.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, iterator2, mapFn); + function checkStat(stat, path, options) { + if (!stat.isSymbolicLink() && !stat.isFile()) return false; + return checkPathExt(path, options); + } + function isexe(path, options, cb) { + fs.stat(path, function(er, stat) { + cb(er, er ? false : checkStat(stat, path, options)); }); } - Object.assign(paginate, { - iterator - }); - function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; + function sync(path, options) { + return checkStat(fs.statSync(path), path, options); } - paginateRest.VERSION = VERSION; - __webpack_require__.d(__webpack_exports__, { - paginateRest: ()=>paginateRest - }); }, - "../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.2/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js" (__unused_rspack_module, __webpack_exports__, __webpack_require__) { + "../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js" (module) { "use strict"; - __webpack_require__.d(__webpack_exports__, { - restEndpointMethods: ()=>restEndpointMethods - }); - const 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 /repositories/{repository_id}/environments/{environment_name}/variables" - ], - createOrUpdateEnvironmentSecret: [ - "PUT /repositories/{repository_id}/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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - deleteEnvironmentVariable: [ - "DELETE /repositories/{repository_id}/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 /repositories/{repository_id}/environments/{environment_name}/secrets/public-key" - ], - getEnvironmentSecret: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - getEnvironmentVariable: [ - "GET /repositories/{repository_id}/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" - ] + const pathKey = (options = {})=>{ + const environment = options.env || process.env; + const platform = options.platform || process.platform; + if ('win32' !== platform) return 'PATH'; + return Object.keys(environment).reverse().find((key)=>'PATH' === key.toUpperCase()) || 'Path'; + }; + module.exports = pathKey; + module.exports["default"] = pathKey; + }, + "../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const shebangRegex = __webpack_require__("../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js"); + module.exports = (string = '')=>{ + const match = string.match(shebangRegex); + if (!match) return null; + const [path, argument] = match[0].replace(/#! ?/, '').split(' '); + const binary = path.split('/').pop(); + if ('env' === binary) return argument; + return argument ? `${binary} ${argument}` : binary; + }; + }, + "../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js" (module) { + "use strict"; + module.exports = /^#!(.*)/; + }, + "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js" (module, __unused_rspack_exports, __webpack_require__) { + module.exports = __webpack_require__("../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js"); + }, + "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js" (__unused_rspack_module, exports1, __webpack_require__) { + "use strict"; + __webpack_require__("net"); + var tls = __webpack_require__("tls"); + var http = __webpack_require__("http"); + var https = __webpack_require__("https"); + var events = __webpack_require__("events"); + __webpack_require__("assert"); + var util = __webpack_require__("util"); + exports1.httpOverHttp = httpOverHttp; + exports1.httpsOverHttp = httpsOverHttp; + exports1.httpOverHttps = httpOverHttps; + exports1.httpsOverHttps = httpsOverHttps; + function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; + } + function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; + } + function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; + } + function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; + } + function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; + self.on('free', function(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for(var i = 0, len = self.requests.length; i < len; ++i){ + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; } - ], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets" - ], - listEnvironmentVariables: [ - "GET /repositories/{repository_id}/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 /repositories/{repository_id}/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" - ] + } + socket.destroy(); + self.removeSocket(socket); + }); + } + util.inherits(TunnelingAgent, events.EventEmitter); + TunnelingAgent.prototype.addRequest = function(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({ + request: req + }, self.options, toOptions(host, port, localAddress)); + if (self.sockets.length >= this.maxSockets) return void self.requests.push(options); + self.createSocket(options, function(socket) { + socket.on('free', onFree); + socket.on('close', onCloseOrRemove); + socket.on('agentRemove', onCloseOrRemove); + req.onSocket(socket); + function onFree() { + self.emit('free', socket, options); + } + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); + }; + TunnelingAgent.prototype.createSocket = function(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port + } + }); + if (options.localAddress) connectOptions.localAddress = options.localAddress; + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {}; + connectOptions.headers['Proxy-Authorization'] = 'Basic ' + new Buffer(connectOptions.proxyAuth).toString('base64'); + } + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; + connectReq.once('response', onResponse); + connectReq.once('upgrade', onUpgrade); + connectReq.once('connect', onConnect); + connectReq.once('error', onError); + connectReq.end(); + function onResponse(res) { + res.upgrade = true; + } + function onUpgrade(res, socket, head) { + process.nextTick(function() { + onConnect(res, socket, head); + }); + } + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); + if (200 !== res.statusCode) { + debug('tunneling socket could not be established, statusCode=%d', res.statusCode); + socket.destroy(); + var error = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + if (head.length > 0) { + debug('got illegal response body from proxy'); + socket.destroy(); + var error = new Error('got illegal response body from proxy'); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } + function onError(cause) { + connectReq.removeAllListeners(); + debug('tunneling socket could not be established, cause=%s\n', cause.message, cause.stack); + var error = new Error("tunneling socket could not be established, cause=" + cause.message); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + } + }; + TunnelingAgent.prototype.removeSocket = function(socket) { + var pos = this.sockets.indexOf(socket); + if (-1 === pos) return; + this.sockets.splice(pos, 1); + var pending = this.requests.shift(); + if (pending) this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + }; + function createSecureSocket(options, cb) { + var self = this; + TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + var hostHeader = options.request.getHeader('host'); + var tlsOptions = mergeOptions({}, self.options, { + socket: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); + } + function toOptions(host, port, localAddress) { + if ('string' == typeof host) return { + host: host, + port: port, + localAddress: localAddress + }; + return host; + } + function mergeOptions(target) { + for(var i = 1, len = arguments.length; i < len; ++i){ + var overrides = arguments[i]; + if ('object' == typeof overrides) { + var keys = Object.keys(overrides); + for(var j = 0, keyLen = keys.length; j < keyLen; ++j){ + var k = keys[j]; + if (void 0 !== overrides[k]) target[k] = overrides[k]; } - ], - 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" - ] - }, - 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: { - cancelImport: [ - "DELETE /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import" - } - ], - 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" - ], - getCommitAuthors: [ - "GET /repos/{owner}/{repo}/import/authors", - {}, - { - deprecated: "octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors" - } - ], - getImportStatus: [ - "GET /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status" - } - ], - getLargeFiles: [ - "GET /repos/{owner}/{repo}/import/large_files", - {}, - { - deprecated: "octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files" - } - ], - 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" - ] - } - ], - mapCommitAuthor: [ - "PATCH /repos/{owner}/{repo}/import/authors/{author_id}", - {}, - { - deprecated: "octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" - } - ], - setLfsPreference: [ - "PATCH /repos/{owner}/{repo}/import/lfs", - {}, - { - deprecated: "octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" - } - ], - startForAuthenticatedUser: [ - "POST /user/migrations" - ], - startForOrg: [ - "POST /orgs/{org}/migrations" - ], - startImport: [ - "PUT /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import" - } - ], - unlockRepoForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" - ], - unlockRepoForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" - ], - updateImport: [ - "PATCH /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import" - } - ] - }, - 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}" - ], - 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; - const endpointMethodsMap = /* @__PURE__ */ new Map(); - for (const [scope, endpoints] of Object.entries(endpoints_default))for (const [methodName, endpoint] of Object.entries(endpoints)){ - const [route, defaults, decorations] = endpoint; - 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 - }); - } - const handler = { - has ({ scope }, methodName) { - return endpointMethodsMap.get(scope).has(methodName); - }, - getOwnPropertyDescriptor (target, methodName) { - return { - value: this.get(target, methodName), - 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; - 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 = "10.4.1"; - function legacyRestEndpointMethods(octokit) { - const api = endpointsToMethods(octokit); - return { - ...api, - rest: api - }; - } - legacyRestEndpointMethods.VERSION = "10.4.1"; - }, - "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/index.js" (module, __unused_rspack_exports, __webpack_require__) { - var register = __webpack_require__("../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/register.js"); - var addHook = __webpack_require__("../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/add.js"); - var removeHook = __webpack_require__("../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/remove.js"); - var bind = Function.bind; - var bindable = bind.bind(bind); - function bindApi(hook, state, name) { - var removeHookRef = bindable(removeHook, null).apply(null, name ? [ - state, - name - ] : [ - state - ]); - hook.api = { - remove: removeHookRef - }; - hook.remove = removeHookRef; - [ - "before", - "error", - "after", - "wrap" - ].forEach(function(kind) { - var args = name ? [ - state, - kind, - name - ] : [ - state, - kind - ]; - hook[kind] = hook.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 hook = register.bind(null, state); - bindApi(hook, state); - return hook; - } - 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/before-after-hook@2.2.3/node_modules/before-after-hook/lib/add.js" (module) { - module.exports = addHook; - function addHook(state, kind, name, hook) { - var orig = hook; - if (!state.registry[name]) state.registry[name] = []; - if ("before" === kind) hook = function(method, options) { - return Promise.resolve().then(orig.bind(null, options)).then(method.bind(null, options)); - }; - if ("after" === kind) hook = 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 ("error" === kind) hook = function(method, options) { - return Promise.resolve().then(method.bind(null, options)).catch(function(error) { - return orig(error, options); - }); - }; - state.registry[name].push({ - hook: hook, - orig: orig - }); - } - }, - "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/register.js" (module) { - module.exports = register; - function register(state, name, method, options) { - if ("function" != typeof method) throw new Error("method for before hook must be a function"); - if (!options) options = {}; - if (Array.isArray(name)) return name.reverse().reduce(function(callback, name) { - return register.bind(null, state, name, callback, options); - }, method)(); - return Promise.resolve().then(function() { - if (!state.registry[name]) return method(options); - return state.registry[name].reduce(function(method, registered) { - return registered.hook.bind(null, method, options); - }, method)(); - }); - } - }, - "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/remove.js" (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 (-1 === index) return; - state.registry[name].splice(index, 1); - } - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const cp = __webpack_require__("child_process"); - const parse = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js"); - const enoent = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js"); - function spawn(command, args, options) { - const parsed = parse(command, args, options); - const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); - enoent.hookChildProcess(spawned, parsed); - return spawned; - } - function spawnSync(command, args, options) { - const parsed = parse(command, args, options); - const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); - result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); - return result; - } - module.exports = spawn; - module.exports.spawn = spawn; - module.exports.sync = spawnSync; - module.exports._parse = parse; - module.exports._enoent = enoent; - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js" (module) { - "use strict"; - const isWin = 'win32' === process.platform; - function notFoundError(original, syscall) { - return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { - code: 'ENOENT', - errno: 'ENOENT', - syscall: `${syscall} ${original.command}`, - path: original.command, - spawnargs: original.args - }); - } - function hookChildProcess(cp, parsed) { - if (!isWin) return; - const originalEmit = cp.emit; - cp.emit = function(name, arg1) { - if ('exit' === name) { - const err = verifyENOENT(arg1, parsed); - if (err) return originalEmit.call(cp, 'error', err); - } - return originalEmit.apply(cp, arguments); - }; - } - function verifyENOENT(status, parsed) { - if (isWin && 1 === status && !parsed.file) return notFoundError(parsed.original, 'spawn'); - return null; - } - function verifyENOENTSync(status, parsed) { - if (isWin && 1 === status && !parsed.file) return notFoundError(parsed.original, 'spawnSync'); - return null; - } - module.exports = { - hookChildProcess, - verifyENOENT, - verifyENOENTSync, - notFoundError - }; - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const path = __webpack_require__("path"); - const resolveCommand = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js"); - const escape = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js"); - const readShebang = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js"); - const isWin = 'win32' === process.platform; - const isExecutableRegExp = /\.(?:com|exe)$/i; - const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; - function detectShebang(parsed) { - parsed.file = resolveCommand(parsed); - const shebang = parsed.file && readShebang(parsed.file); - if (shebang) { - parsed.args.unshift(parsed.file); - parsed.command = shebang; - return resolveCommand(parsed); - } - return parsed.file; - } - function parseNonShell(parsed) { - if (!isWin) return parsed; - const commandFile = detectShebang(parsed); - const needsShell = !isExecutableRegExp.test(commandFile); - if (parsed.options.forceShell || needsShell) { - const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); - parsed.command = path.normalize(parsed.command); - parsed.command = escape.command(parsed.command); - parsed.args = parsed.args.map((arg)=>escape.argument(arg, needsDoubleEscapeMetaChars)); - const shellCommand = [ - parsed.command - ].concat(parsed.args).join(' '); - parsed.args = [ - '/d', - '/s', - '/c', - `"${shellCommand}"` - ]; - parsed.command = process.env.comspec || 'cmd.exe'; - parsed.options.windowsVerbatimArguments = true; - } - return parsed; - } - function parse(command, args, options) { - if (args && !Array.isArray(args)) { - options = args; - args = null; - } - args = args ? args.slice(0) : []; - options = Object.assign({}, options); - const parsed = { - command, - args, - options, - file: void 0, - original: { - command, - args - } - }; - return options.shell ? parsed : parseNonShell(parsed); - } - module.exports = parse; - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js" (module) { - "use strict"; - const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; - function escapeCommand(arg) { - arg = arg.replace(metaCharsRegExp, '^$1'); - return arg; - } - function escapeArgument(arg, doubleEscapeMetaChars) { - arg = `${arg}`; - arg = arg.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"'); - arg = arg.replace(/(?=(\\+?)?)\1$/, '$1$1'); - arg = `"${arg}"`; - arg = arg.replace(metaCharsRegExp, '^$1'); - if (doubleEscapeMetaChars) arg = arg.replace(metaCharsRegExp, '^$1'); - return arg; - } - module.exports.command = escapeCommand; - module.exports.argument = escapeArgument; - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const fs = __webpack_require__("fs"); - const shebangCommand = __webpack_require__("../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js"); - function readShebang(command) { - const size = 150; - const buffer = Buffer.alloc(size); - let fd; - try { - fd = fs.openSync(command, 'r'); - fs.readSync(fd, buffer, 0, size, 0); - fs.closeSync(fd); - } catch (e) {} - return shebangCommand(buffer.toString()); - } - module.exports = readShebang; - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const path = __webpack_require__("path"); - const which = __webpack_require__("../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js"); - const getPathKey = __webpack_require__("../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js"); - function resolveCommandAttempt(parsed, withoutPathExt) { - const env = parsed.options.env || process.env; - const cwd = process.cwd(); - const hasCustomCwd = null != parsed.options.cwd; - const shouldSwitchCwd = hasCustomCwd && void 0 !== process.chdir && !process.chdir.disabled; - if (shouldSwitchCwd) try { - process.chdir(parsed.options.cwd); - } catch (err) {} - let resolved; - try { - resolved = which.sync(parsed.command, { - path: env[getPathKey({ - env - })], - pathExt: withoutPathExt ? path.delimiter : void 0 - }); - } catch (e) {} finally{ - if (shouldSwitchCwd) process.chdir(cwd); - } - if (resolved) resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved); - return resolved; - } - function resolveCommand(parsed) { - return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); - } - module.exports = resolveCommand; - }, - "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js" (module, __unused_rspack_exports, __webpack_require__) { - __webpack_require__("fs"); - var core; - core = 'win32' === process.platform || global.TESTING_WINDOWS ? __webpack_require__("../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js") : __webpack_require__("../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js"); - module.exports = isexe; - isexe.sync = sync; - function isexe(path, options, cb) { - if ('function' == typeof options) { - cb = options; - options = {}; - } - if (!cb) { - if ('function' != typeof Promise) throw new TypeError('callback not provided'); - return new Promise(function(resolve, reject) { - isexe(path, options || {}, function(er, is) { - if (er) reject(er); - else resolve(is); - }); - }); - } - core(path, options || {}, function(er, is) { - if (er) { - if ('EACCES' === er.code || options && options.ignoreErrors) { - er = null; - is = false; - } - } - cb(er, is); - }); - } - function sync(path, options) { - try { - return core.sync(path, options || {}); - } catch (er) { - if (options && options.ignoreErrors || 'EACCES' === er.code) return false; - throw er; - } - } - }, - "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js" (module, __unused_rspack_exports, __webpack_require__) { - module.exports = isexe; - isexe.sync = sync; - var fs = __webpack_require__("fs"); - function isexe(path, options, cb) { - fs.stat(path, function(er, stat) { - cb(er, er ? false : checkStat(stat, options)); - }); - } - function sync(path, options) { - return checkStat(fs.statSync(path), options); - } - function checkStat(stat, options) { - return stat.isFile() && checkMode(stat, options); - } - function checkMode(stat, options) { - var mod = stat.mode; - var uid = stat.uid; - var gid = stat.gid; - var myUid = void 0 !== options.uid ? options.uid : process.getuid && process.getuid(); - var myGid = void 0 !== options.gid ? options.gid : process.getgid && process.getgid(); - var u = parseInt('100', 8); - var g = parseInt('010', 8); - var o = parseInt('001', 8); - var ug = u | g; - var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && 0 === myUid; - return ret; - } - }, - "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js" (module, __unused_rspack_exports, __webpack_require__) { - module.exports = isexe; - isexe.sync = sync; - var fs = __webpack_require__("fs"); - function checkPathExt(path, options) { - var pathext = void 0 !== options.pathExt ? options.pathExt : process.env.PATHEXT; - if (!pathext) return true; - pathext = pathext.split(';'); - if (-1 !== pathext.indexOf('')) return true; - for(var i = 0; i < pathext.length; i++){ - var p = pathext[i].toLowerCase(); - if (p && path.substr(-p.length).toLowerCase() === p) return true; - } - return false; - } - function checkStat(stat, path, options) { - if (!stat.isSymbolicLink() && !stat.isFile()) return false; - return checkPathExt(path, options); - } - function isexe(path, options, cb) { - fs.stat(path, function(er, stat) { - cb(er, er ? false : checkStat(stat, path, options)); - }); - } - function sync(path, options) { - return checkStat(fs.statSync(path), path, options); - } - }, - "../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js" (module, __unused_rspack_exports, __webpack_require__) { - var wrappy = __webpack_require__("../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js"); - module.exports = wrappy(once); - module.exports.strict = wrappy(onceStrict); - once.proto = once(function() { - Object.defineProperty(Function.prototype, 'once', { - value: function() { - return once(this); - }, - configurable: true - }); - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function() { - return onceStrict(this); - }, - configurable: true - }); - }); - function once(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/path-key@3.1.1/node_modules/path-key/index.js" (module) { - "use strict"; - const pathKey = (options = {})=>{ - const environment = options.env || process.env; - const platform = options.platform || process.platform; - if ('win32' !== platform) return 'PATH'; - return Object.keys(environment).reverse().find((key)=>'PATH' === key.toUpperCase()) || 'Path'; - }; - module.exports = pathKey; - module.exports["default"] = pathKey; - }, - "../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const shebangRegex = __webpack_require__("../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js"); - module.exports = (string = '')=>{ - const match = string.match(shebangRegex); - if (!match) return null; - const [path, argument] = match[0].replace(/#! ?/, '').split(' '); - const binary = path.split('/').pop(); - if ('env' === binary) return argument; - return argument ? `${binary} ${argument}` : binary; - }; - }, - "../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js" (module) { - "use strict"; - module.exports = /^#!(.*)/; - }, - "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js" (module, __unused_rspack_exports, __webpack_require__) { - module.exports = __webpack_require__("../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js"); - }, - "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - __webpack_require__("net"); - var tls = __webpack_require__("tls"); - var http = __webpack_require__("http"); - var https = __webpack_require__("https"); - var events = __webpack_require__("events"); - __webpack_require__("assert"); - var util = __webpack_require__("util"); - exports1.httpOverHttp = httpOverHttp; - exports1.httpsOverHttp = httpsOverHttp; - exports1.httpOverHttps = httpOverHttps; - exports1.httpsOverHttps = httpsOverHttps; - function httpOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; - } - function httpsOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; - } - function httpOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; - } - function httpsOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; - } - function TunnelingAgent(options) { - var self = this; - self.options = options || {}; - self.proxyOptions = self.options.proxy || {}; - self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - self.on('free', function(socket, host, port, localAddress) { - var options = toOptions(host, port, localAddress); - for(var i = 0, len = self.requests.length; i < len; ++i){ - var pending = self.requests[i]; - if (pending.host === options.host && pending.port === options.port) { - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } - } - socket.destroy(); - self.removeSocket(socket); - }); - } - util.inherits(TunnelingAgent, events.EventEmitter); - TunnelingAgent.prototype.addRequest = function(req, host, port, localAddress) { - var self = this; - var options = mergeOptions({ - request: req - }, self.options, toOptions(host, port, localAddress)); - if (self.sockets.length >= this.maxSockets) return void self.requests.push(options); - self.createSocket(options, function(socket) { - socket.on('free', onFree); - socket.on('close', onCloseOrRemove); - socket.on('agentRemove', onCloseOrRemove); - req.onSocket(socket); - function onFree() { - self.emit('free', socket, options); - } - function onCloseOrRemove(err) { - self.removeSocket(socket); - socket.removeListener('free', onFree); - socket.removeListener('close', onCloseOrRemove); - socket.removeListener('agentRemove', onCloseOrRemove); - } - }); - }; - TunnelingAgent.prototype.createSocket = function(options, cb) { - var self = this; - var placeholder = {}; - self.sockets.push(placeholder); - var connectOptions = mergeOptions({}, self.proxyOptions, { - method: 'CONNECT', - path: options.host + ':' + options.port, - agent: false, - headers: { - host: options.host + ':' + options.port - } - }); - if (options.localAddress) connectOptions.localAddress = options.localAddress; - if (connectOptions.proxyAuth) { - connectOptions.headers = connectOptions.headers || {}; - connectOptions.headers['Proxy-Authorization'] = 'Basic ' + new Buffer(connectOptions.proxyAuth).toString('base64'); - } - debug('making CONNECT request'); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; - connectReq.once('response', onResponse); - connectReq.once('upgrade', onUpgrade); - connectReq.once('connect', onConnect); - connectReq.once('error', onError); - connectReq.end(); - function onResponse(res) { - res.upgrade = true; - } - function onUpgrade(res, socket, head) { - process.nextTick(function() { - onConnect(res, socket, head); - }); - } - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - if (200 !== res.statusCode) { - debug('tunneling socket could not be established, statusCode=%d', res.statusCode); - socket.destroy(); - var error = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - return; - } - if (head.length > 0) { - debug('got illegal response body from proxy'); - socket.destroy(); - var error = new Error('got illegal response body from proxy'); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - return; - } - debug('tunneling connection has established'); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); - } - function onError(cause) { - connectReq.removeAllListeners(); - debug('tunneling socket could not be established, cause=%s\n', cause.message, cause.stack); - var error = new Error("tunneling socket could not be established, cause=" + cause.message); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - } - }; - TunnelingAgent.prototype.removeSocket = function(socket) { - var pos = this.sockets.indexOf(socket); - if (-1 === pos) return; - this.sockets.splice(pos, 1); - var pending = this.requests.shift(); - if (pending) this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); - }; - function createSecureSocket(options, cb) { - var self = this; - TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { - var hostHeader = options.request.getHeader('host'); - var tlsOptions = mergeOptions({}, self.options, { - socket: socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host - }); - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); - } - function toOptions(host, port, localAddress) { - if ('string' == typeof host) return { - host: host, - port: port, - localAddress: localAddress - }; - return host; - } - function mergeOptions(target) { - for(var i = 1, len = arguments.length; i < len; ++i){ - var overrides = arguments[i]; - if ('object' == typeof overrides) { - var keys = Object.keys(overrides); - for(var j = 0, keyLen = keys.length; j < keyLen; ++j){ - var k = keys[j]; - if (void 0 !== overrides[k]) target[k] = overrides[k]; - } - } - } - return target; - } - var debug; - debug = process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG) ? function() { - var args = Array.prototype.slice.call(arguments); - if ('string' == typeof args[0]) args[0] = 'TUNNEL: ' + args[0]; - else args.unshift('TUNNEL:'); - console.error.apply(console, args); - } : function() {}; - exports1.debug = debug; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/client.js"); - const Dispatcher = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher.js"); - const errors = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/balanced-pool.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/agent.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { InvalidArgumentError } = errors; - const api = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/index.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/connect.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-client.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-agent.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-pool.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-errors.js"); - const ProxyAgent = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/proxy-agent.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/RetryHandler.js"); - const { getGlobalDispatcher, setGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/DecoratorHandler.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/RedirectHandler.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/interceptor/redirectInterceptor.js"); - let hasCrypto; - try { - __webpack_require__("crypto"); - hasCrypto = true; - } catch { - hasCrypto = false; - } - Object.assign(Dispatcher.prototype, api); - module.exports.ProxyAgent = ProxyAgent; - function makeDispatcher(fn) { - return (url, opts, handler)=>{ - if ('function' == typeof opts) { - handler = opts; - opts = null; - } - if (!url || 'string' != typeof url && 'object' != typeof url && !(url instanceof URL)) throw new InvalidArgumentError('invalid url'); - if (null != opts && 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - if (opts && null != opts.path) { - if ('string' != typeof opts.path) throw new InvalidArgumentError('invalid opts.path'); - let path = opts.path; - if (!opts.path.startsWith('/')) path = `/${path}`; - url = new URL(util.parseOrigin(url).origin + path); - } else { - if (!opts) opts = 'object' == typeof url ? url : {}; - url = util.parseURL(url); - } - const { agent, dispatcher = getGlobalDispatcher() } = opts; - if (agent) throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?'); - return fn.call(dispatcher, { - ...opts, - origin: url.origin, - path: url.search ? `${url.pathname}${url.search}` : url.pathname, - method: opts.method || (opts.body ? 'PUT' : 'GET') - }, handler); - }; - } - if (util.nodeMajor > 16 || 16 === util.nodeMajor && util.nodeMinor >= 8) { - let fetchImpl = null; - module.exports.fetch = async function(resource) { - if (!fetchImpl) fetchImpl = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/index.js").fetch; - try { - return await fetchImpl(...arguments); - } catch (err) { - if ('object' == typeof err) Error.captureStackTrace(err, this); - throw err; - } - }; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js").Headers; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/response.js").Response; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/request.js").Request; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/formdata.js").FormData; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/file.js").File; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/filereader.js").FileReader; - const { setGlobalOrigin, getGlobalOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js"); - const { CacheStorage } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/cachestorage.js"); - const { kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/symbols.js"); - new CacheStorage(kConstruct); - } - if (util.nodeMajor >= 16) { - const { deleteCookie, getCookies, getSetCookies, setCookie } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/index.js"); - const { parseMIMEType, serializeAMimeType } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - } - if (util.nodeMajor >= 18 && hasCrypto) { - const { WebSocket } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/websocket.js"); - } - makeDispatcher(api.request); - makeDispatcher(api.stream); - makeDispatcher(api.pipeline); - makeDispatcher(api.connect); - makeDispatcher(api.upgrade); - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/agent.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const DispatcherBase = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher-base.js"); - const Pool = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js"); - const Client = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/client.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const createRedirectInterceptor = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/interceptor/redirectInterceptor.js"); - const { WeakRef: WeakRef1, FinalizationRegistry: FinalizationRegistry1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/compat/dispatcher-weakref.js")(); - const kOnConnect = Symbol('onConnect'); - const kOnDisconnect = Symbol('onDisconnect'); - const kOnConnectionError = Symbol('onConnectionError'); - const kMaxRedirections = Symbol('maxRedirections'); - const kOnDrain = Symbol('onDrain'); - const kFactory = Symbol('factory'); - const kFinalizer = Symbol('finalizer'); - const kOptions = Symbol('options'); - function defaultFactory(origin, opts) { - return opts && 1 === opts.connections ? new Client(origin, opts) : new Pool(origin, opts); - } - class Agent extends DispatcherBase { - constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}){ - super(); - if ('function' != typeof factory) throw new InvalidArgumentError('factory must be a function.'); - if (null != connect && 'function' != typeof connect && 'object' != typeof connect) throw new InvalidArgumentError('connect must be a function or an object'); - if (!Number.isInteger(maxRedirections) || maxRedirections < 0) throw new InvalidArgumentError('maxRedirections must be a positive number'); - if (connect && 'function' != typeof connect) connect = { - ...connect - }; - this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [ - createRedirectInterceptor({ - maxRedirections - }) - ]; - this[kOptions] = { - ...util.deepClone(options), - connect - }; - this[kOptions].interceptors = options.interceptors ? { - ...options.interceptors - } : void 0; - this[kMaxRedirections] = maxRedirections; - this[kFactory] = factory; - this[kClients] = new Map(); - this[kFinalizer] = new FinalizationRegistry1((key)=>{ - const ref = this[kClients].get(key); - if (void 0 !== ref && void 0 === ref.deref()) this[kClients].delete(key); - }); - const agent = this; - this[kOnDrain] = (origin, targets)=>{ - agent.emit('drain', origin, [ - agent, - ...targets - ]); - }; - this[kOnConnect] = (origin, targets)=>{ - agent.emit('connect', origin, [ - agent, - ...targets - ]); - }; - this[kOnDisconnect] = (origin, targets, err)=>{ - agent.emit('disconnect', origin, [ - agent, - ...targets - ], err); - }; - this[kOnConnectionError] = (origin, targets, err)=>{ - agent.emit('connectionError', origin, [ - agent, - ...targets - ], err); - }; - } - get [kRunning]() { - let ret = 0; - for (const ref of this[kClients].values()){ - const client = ref.deref(); - if (client) ret += client[kRunning]; - } - return ret; - } - [kDispatch](opts, handler) { - let key; - if (opts.origin && ('string' == typeof opts.origin || opts.origin instanceof URL)) key = String(opts.origin); - else throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.'); - const ref = this[kClients].get(key); - let dispatcher = ref ? ref.deref() : null; - if (!dispatcher) { - dispatcher = this[kFactory](opts.origin, this[kOptions]).on('drain', this[kOnDrain]).on('connect', this[kOnConnect]).on('disconnect', this[kOnDisconnect]).on('connectionError', this[kOnConnectionError]); - this[kClients].set(key, new WeakRef1(dispatcher)); - this[kFinalizer].register(dispatcher, key); - } - return dispatcher.dispatch(opts, handler); - } - async [kClose]() { - const closePromises = []; - for (const ref of this[kClients].values()){ - const client = ref.deref(); - if (client) closePromises.push(client.close()); - } - await Promise.all(closePromises); - } - async [kDestroy](err) { - const destroyPromises = []; - for (const ref of this[kClients].values()){ - const client = ref.deref(); - if (client) destroyPromises.push(client.destroy(err)); - } - await Promise.all(destroyPromises); - } - } - module.exports = Agent; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js" (module, __unused_rspack_exports, __webpack_require__) { - const { addAbortListener } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { RequestAbortedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const kListener = Symbol('kListener'); - const kSignal = Symbol('kSignal'); - function abort(self) { - if (self.abort) self.abort(); - else self.onError(new RequestAbortedError()); - } - function addSignal(self, signal) { - self[kSignal] = null; - self[kListener] = null; - if (!signal) return; - if (signal.aborted) return void abort(self); - self[kSignal] = signal; - self[kListener] = ()=>{ - abort(self); - }; - addAbortListener(self[kSignal], self[kListener]); - } - function removeSignal(self) { - if (!self[kSignal]) return; - if ('removeEventListener' in self[kSignal]) self[kSignal].removeEventListener('abort', self[kListener]); - else self[kSignal].removeListener('abort', self[kListener]); - self[kSignal] = null; - self[kListener] = null; - } - module.exports = { - addSignal, - removeSignal - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-connect.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { AsyncResource } = __webpack_require__("async_hooks"); - const { InvalidArgumentError, RequestAbortedError, SocketError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { addSignal, removeSignal } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js"); - class ConnectHandler extends AsyncResource { - constructor(opts, callback){ - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - const { signal, opaque, responseHeaders } = opts; - if (signal && 'function' != typeof signal.on && 'function' != typeof signal.addEventListener) throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget'); - super('UNDICI_CONNECT'); - this.opaque = opaque || null; - this.responseHeaders = responseHeaders || null; - this.callback = callback; - this.abort = null; - addSignal(this, signal); - } - onConnect(abort, context) { - if (!this.callback) throw new RequestAbortedError(); - this.abort = abort; - this.context = context; - } - onHeaders() { - throw new SocketError('bad connect', null); - } - onUpgrade(statusCode, rawHeaders, socket) { - const { callback, opaque, context } = this; - removeSignal(this); - this.callback = null; - let headers = rawHeaders; - if (null != headers) headers = 'raw' === this.responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - this.runInAsyncScope(callback, null, null, { - statusCode, - headers, - socket, - opaque, - context - }); - } - onError(err) { - const { callback, opaque } = this; - removeSignal(this); - if (callback) { - this.callback = null; - queueMicrotask(()=>{ - this.runInAsyncScope(callback, null, err, { - opaque - }); - }); - } - } - } - function connect(opts, callback) { - if (void 0 === callback) return new Promise((resolve, reject)=>{ - connect.call(this, opts, (err, data)=>err ? reject(err) : resolve(data)); - }); - try { - const connectHandler = new ConnectHandler(opts, callback); - this.dispatch({ - ...opts, - method: 'CONNECT' - }, connectHandler); - } catch (err) { - if ('function' != typeof callback) throw err; - const opaque = opts && opts.opaque; - queueMicrotask(()=>callback(err, { - opaque - })); - } - } - module.exports = connect; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-pipeline.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Readable, Duplex, PassThrough } = __webpack_require__("stream"); - const { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { AsyncResource } = __webpack_require__("async_hooks"); - const { addSignal, removeSignal } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js"); - const assert = __webpack_require__("assert"); - const kResume = Symbol('resume'); - class PipelineRequest extends Readable { - constructor(){ - super({ - autoDestroy: true - }); - this[kResume] = null; - } - _read() { - const { [kResume]: resume } = this; - if (resume) { - this[kResume] = null; - resume(); - } - } - _destroy(err, callback) { - this._read(); - callback(err); - } - } - class PipelineResponse extends Readable { - constructor(resume){ - super({ - autoDestroy: true - }); - this[kResume] = resume; - } - _read() { - this[kResume](); - } - _destroy(err, callback) { - if (!err && !this._readableState.endEmitted) err = new RequestAbortedError(); - callback(err); - } - } - class PipelineHandler extends AsyncResource { - constructor(opts, handler){ - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - if ('function' != typeof handler) throw new InvalidArgumentError('invalid handler'); - const { signal, method, opaque, onInfo, responseHeaders } = opts; - if (signal && 'function' != typeof signal.on && 'function' != typeof signal.addEventListener) throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget'); - if ('CONNECT' === method) throw new InvalidArgumentError('invalid method'); - if (onInfo && 'function' != typeof onInfo) throw new InvalidArgumentError('invalid onInfo callback'); - super('UNDICI_PIPELINE'); - this.opaque = opaque || null; - this.responseHeaders = responseHeaders || null; - this.handler = handler; - this.abort = null; - this.context = null; - this.onInfo = onInfo || null; - this.req = new PipelineRequest().on('error', util.nop); - this.ret = new Duplex({ - readableObjectMode: opts.objectMode, - autoDestroy: true, - read: ()=>{ - const { body } = this; - if (body && body.resume) body.resume(); - }, - write: (chunk, encoding, callback)=>{ - const { req } = this; - if (req.push(chunk, encoding) || req._readableState.destroyed) callback(); - else req[kResume] = callback; - }, - destroy: (err, callback)=>{ - const { body, req, res, ret, abort } = this; - if (!err && !ret._readableState.endEmitted) err = new RequestAbortedError(); - if (abort && err) abort(); - util.destroy(body, err); - util.destroy(req, err); - util.destroy(res, err); - removeSignal(this); - callback(err); - } - }).on('prefinish', ()=>{ - const { req } = this; - req.push(null); - }); - this.res = null; - addSignal(this, signal); - } - onConnect(abort, context) { - const { ret, res } = this; - assert(!res, 'pipeline cannot be retried'); - if (ret.destroyed) throw new RequestAbortedError(); - this.abort = abort; - this.context = context; - } - onHeaders(statusCode, rawHeaders, resume) { - const { opaque, handler, context } = this; - if (statusCode < 200) { - if (this.onInfo) { - const headers = 'raw' === this.responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - this.onInfo({ - statusCode, - headers - }); - } - return; - } - this.res = new PipelineResponse(resume); - let body; - try { - this.handler = null; - const headers = 'raw' === this.responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - body = this.runInAsyncScope(handler, null, { - statusCode, - headers, - opaque, - body: this.res, - context - }); - } catch (err) { - this.res.on('error', util.nop); - throw err; - } - if (!body || 'function' != typeof body.on) throw new InvalidReturnValueError('expected Readable'); - body.on('data', (chunk)=>{ - const { ret, body } = this; - if (!ret.push(chunk) && body.pause) body.pause(); - }).on('error', (err)=>{ - const { ret } = this; - util.destroy(ret, err); - }).on('end', ()=>{ - const { ret } = this; - ret.push(null); - }).on('close', ()=>{ - const { ret } = this; - if (!ret._readableState.ended) util.destroy(ret, new RequestAbortedError()); - }); - this.body = body; - } - onData(chunk) { - const { res } = this; - return res.push(chunk); - } - onComplete(trailers) { - const { res } = this; - res.push(null); - } - onError(err) { - const { ret } = this; - this.handler = null; - util.destroy(ret, err); - } - } - function pipeline(opts, handler) { - try { - const pipelineHandler = new PipelineHandler(opts, handler); - this.dispatch({ - ...opts, - body: pipelineHandler.req - }, pipelineHandler); - return pipelineHandler.ret; - } catch (err) { - return new PassThrough().destroy(err); - } - } - module.exports = pipeline; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-request.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const Readable = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/readable.js"); - const { InvalidArgumentError, RequestAbortedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { getResolveErrorBodyCallback } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/util.js"); - const { AsyncResource } = __webpack_require__("async_hooks"); - const { addSignal, removeSignal } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js"); - class RequestHandler extends AsyncResource { - constructor(opts, callback){ - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts; - try { - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - if (highWaterMark && ('number' != typeof highWaterMark || highWaterMark < 0)) throw new InvalidArgumentError('invalid highWaterMark'); - if (signal && 'function' != typeof signal.on && 'function' != typeof signal.addEventListener) throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget'); - if ('CONNECT' === method) throw new InvalidArgumentError('invalid method'); - if (onInfo && 'function' != typeof onInfo) throw new InvalidArgumentError('invalid onInfo callback'); - super('UNDICI_REQUEST'); - } catch (err) { - if (util.isStream(body)) util.destroy(body.on('error', util.nop), err); - throw err; - } - this.responseHeaders = responseHeaders || null; - this.opaque = opaque || null; - this.callback = callback; - this.res = null; - this.abort = null; - this.body = body; - this.trailers = {}; - this.context = null; - this.onInfo = onInfo || null; - this.throwOnError = throwOnError; - this.highWaterMark = highWaterMark; - if (util.isStream(body)) body.on('error', (err)=>{ - this.onError(err); - }); - addSignal(this, signal); - } - onConnect(abort, context) { - if (!this.callback) throw new RequestAbortedError(); - this.abort = abort; - this.context = context; - } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { - const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this; - const headers = 'raw' === responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - if (statusCode < 200) { - if (this.onInfo) this.onInfo({ - statusCode, - headers - }); - return; - } - const parsedHeaders = 'raw' === responseHeaders ? util.parseHeaders(rawHeaders) : headers; - const contentType = parsedHeaders['content-type']; - const body = new Readable({ - resume, - abort, - contentType, - highWaterMark - }); - this.callback = null; - this.res = body; - if (null !== callback) if (this.throwOnError && statusCode >= 400) this.runInAsyncScope(getResolveErrorBodyCallback, null, { - callback, - body, - contentType, - statusCode, - statusMessage, - headers - }); - else this.runInAsyncScope(callback, null, null, { - statusCode, - headers, - trailers: this.trailers, - opaque, - body, - context - }); - } - onData(chunk) { - const { res } = this; - return res.push(chunk); - } - onComplete(trailers) { - const { res } = this; - removeSignal(this); - util.parseHeaders(trailers, this.trailers); - res.push(null); - } - onError(err) { - const { res, callback, body, opaque } = this; - removeSignal(this); - if (callback) { - this.callback = null; - queueMicrotask(()=>{ - this.runInAsyncScope(callback, null, err, { - opaque - }); - }); - } - if (res) { - this.res = null; - queueMicrotask(()=>{ - util.destroy(res, err); - }); - } - if (body) { - this.body = null; - util.destroy(body, err); - } - } - } - function request(opts, callback) { - if (void 0 === callback) return new Promise((resolve, reject)=>{ - request.call(this, opts, (err, data)=>err ? reject(err) : resolve(data)); - }); - try { - this.dispatch(opts, new RequestHandler(opts, callback)); - } catch (err) { - if ('function' != typeof callback) throw err; - const opaque = opts && opts.opaque; - queueMicrotask(()=>callback(err, { - opaque - })); - } - } - module.exports = request; - module.exports.RequestHandler = RequestHandler; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-stream.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { finished, PassThrough } = __webpack_require__("stream"); - const { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { getResolveErrorBodyCallback } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/util.js"); - const { AsyncResource } = __webpack_require__("async_hooks"); - const { addSignal, removeSignal } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js"); - class StreamHandler extends AsyncResource { - constructor(opts, factory, callback){ - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts; - try { - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - if ('function' != typeof factory) throw new InvalidArgumentError('invalid factory'); - if (signal && 'function' != typeof signal.on && 'function' != typeof signal.addEventListener) throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget'); - if ('CONNECT' === method) throw new InvalidArgumentError('invalid method'); - if (onInfo && 'function' != typeof onInfo) throw new InvalidArgumentError('invalid onInfo callback'); - super('UNDICI_STREAM'); - } catch (err) { - if (util.isStream(body)) util.destroy(body.on('error', util.nop), err); - throw err; - } - this.responseHeaders = responseHeaders || null; - this.opaque = opaque || null; - this.factory = factory; - this.callback = callback; - this.res = null; - this.abort = null; - this.context = null; - this.trailers = null; - this.body = body; - this.onInfo = onInfo || null; - this.throwOnError = throwOnError || false; - if (util.isStream(body)) body.on('error', (err)=>{ - this.onError(err); - }); - addSignal(this, signal); - } - onConnect(abort, context) { - if (!this.callback) throw new RequestAbortedError(); - this.abort = abort; - this.context = context; - } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { - const { factory, opaque, context, callback, responseHeaders } = this; - const headers = 'raw' === responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - if (statusCode < 200) { - if (this.onInfo) this.onInfo({ - statusCode, - headers - }); - return; - } - this.factory = null; - let res; - if (this.throwOnError && statusCode >= 400) { - const parsedHeaders = 'raw' === responseHeaders ? util.parseHeaders(rawHeaders) : headers; - const contentType = parsedHeaders['content-type']; - res = new PassThrough(); - this.callback = null; - this.runInAsyncScope(getResolveErrorBodyCallback, null, { - callback, - body: res, - contentType, - statusCode, - statusMessage, - headers - }); - } else { - if (null === factory) return; - res = this.runInAsyncScope(factory, null, { - statusCode, - headers, - opaque, - context - }); - if (!res || 'function' != typeof res.write || 'function' != typeof res.end || 'function' != typeof res.on) throw new InvalidReturnValueError('expected Writable'); - finished(res, { - readable: false - }, (err)=>{ - const { callback, res, opaque, trailers, abort } = this; - this.res = null; - if (err || !res.readable) util.destroy(res, err); - this.callback = null; - this.runInAsyncScope(callback, null, err || null, { - opaque, - trailers - }); - if (err) abort(); - }); - } - res.on('drain', resume); - this.res = res; - const needDrain = void 0 !== res.writableNeedDrain ? res.writableNeedDrain : res._writableState && res._writableState.needDrain; - return true !== needDrain; - } - onData(chunk) { - const { res } = this; - return res ? res.write(chunk) : true; - } - onComplete(trailers) { - const { res } = this; - removeSignal(this); - if (!res) return; - this.trailers = util.parseHeaders(trailers); - res.end(); - } - onError(err) { - const { res, callback, opaque, body } = this; - removeSignal(this); - this.factory = null; - if (res) { - this.res = null; - util.destroy(res, err); - } else if (callback) { - this.callback = null; - queueMicrotask(()=>{ - this.runInAsyncScope(callback, null, err, { - opaque - }); - }); - } - if (body) { - this.body = null; - util.destroy(body, err); - } - } - } - function stream(opts, factory, callback) { - if (void 0 === callback) return new Promise((resolve, reject)=>{ - stream.call(this, opts, factory, (err, data)=>err ? reject(err) : resolve(data)); - }); - try { - this.dispatch(opts, new StreamHandler(opts, factory, callback)); - } catch (err) { - if ('function' != typeof callback) throw err; - const opaque = opts && opts.opaque; - queueMicrotask(()=>callback(err, { - opaque - })); - } - } - module.exports = stream; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-upgrade.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { InvalidArgumentError, RequestAbortedError, SocketError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { AsyncResource } = __webpack_require__("async_hooks"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { addSignal, removeSignal } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js"); - const assert = __webpack_require__("assert"); - class UpgradeHandler extends AsyncResource { - constructor(opts, callback){ - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - const { signal, opaque, responseHeaders } = opts; - if (signal && 'function' != typeof signal.on && 'function' != typeof signal.addEventListener) throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget'); - super('UNDICI_UPGRADE'); - this.responseHeaders = responseHeaders || null; - this.opaque = opaque || null; - this.callback = callback; - this.abort = null; - this.context = null; - addSignal(this, signal); - } - onConnect(abort, context) { - if (!this.callback) throw new RequestAbortedError(); - this.abort = abort; - this.context = null; - } - onHeaders() { - throw new SocketError('bad upgrade', null); - } - onUpgrade(statusCode, rawHeaders, socket) { - const { callback, opaque, context } = this; - assert.strictEqual(statusCode, 101); - removeSignal(this); - this.callback = null; - const headers = 'raw' === this.responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - this.runInAsyncScope(callback, null, null, { - headers, - socket, - opaque, - context - }); - } - onError(err) { - const { callback, opaque } = this; - removeSignal(this); - if (callback) { - this.callback = null; - queueMicrotask(()=>{ - this.runInAsyncScope(callback, null, err, { - opaque - }); - }); - } - } - } - function upgrade(opts, callback) { - if (void 0 === callback) return new Promise((resolve, reject)=>{ - upgrade.call(this, opts, (err, data)=>err ? reject(err) : resolve(data)); - }); - try { - const upgradeHandler = new UpgradeHandler(opts, callback); - this.dispatch({ - ...opts, - method: opts.method || 'GET', - upgrade: opts.protocol || 'Websocket' - }, upgradeHandler); - } catch (err) { - if ('function' != typeof callback) throw err; - const opaque = opts && opts.opaque; - queueMicrotask(()=>callback(err, { - opaque - })); - } - } - module.exports = upgrade; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - module.exports.request = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-request.js"); - module.exports.stream = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-stream.js"); - module.exports.pipeline = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-pipeline.js"); - module.exports.upgrade = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-upgrade.js"); - module.exports.connect = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-connect.js"); - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/readable.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const assert = __webpack_require__("assert"); - const { Readable } = __webpack_require__("stream"); - const { RequestAbortedError, NotSupportedError, InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { ReadableStreamFrom, toUSVString } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - let Blob1; - const kConsume = Symbol('kConsume'); - const kReading = Symbol('kReading'); - const kBody = Symbol('kBody'); - const kAbort = Symbol('abort'); - const kContentType = Symbol('kContentType'); - const noop = ()=>{}; - module.exports = class extends Readable { - constructor({ resume, abort, contentType = '', highWaterMark = 65536 }){ - super({ - autoDestroy: true, - read: resume, - highWaterMark - }); - this._readableState.dataEmitted = false; - this[kAbort] = abort; - this[kConsume] = null; - this[kBody] = null; - this[kContentType] = contentType; - this[kReading] = false; - } - destroy(err) { - if (this.destroyed) return this; - if (!err && !this._readableState.endEmitted) err = new RequestAbortedError(); - if (err) this[kAbort](); - return super.destroy(err); - } - emit(ev, ...args) { - if ('data' === ev) this._readableState.dataEmitted = true; - else if ('error' === ev) this._readableState.errorEmitted = true; - return super.emit(ev, ...args); - } - on(ev, ...args) { - if ('data' === ev || 'readable' === ev) this[kReading] = true; - return super.on(ev, ...args); - } - addListener(ev, ...args) { - return this.on(ev, ...args); - } - off(ev, ...args) { - const ret = super.off(ev, ...args); - if ('data' === ev || 'readable' === ev) this[kReading] = this.listenerCount('data') > 0 || this.listenerCount('readable') > 0; - return ret; - } - removeListener(ev, ...args) { - return this.off(ev, ...args); - } - push(chunk) { - if (this[kConsume] && null !== chunk && 0 === this.readableLength) { - consumePush(this[kConsume], chunk); - return this[kReading] ? super.push(chunk) : true; - } - return super.push(chunk); - } - async text() { - return consume(this, 'text'); - } - async json() { - return consume(this, 'json'); - } - async blob() { - return consume(this, 'blob'); - } - async arrayBuffer() { - return consume(this, 'arrayBuffer'); - } - async formData() { - throw new NotSupportedError(); - } - get bodyUsed() { - return util.isDisturbed(this); - } - get body() { - if (!this[kBody]) { - this[kBody] = ReadableStreamFrom(this); - if (this[kConsume]) { - this[kBody].getReader(); - assert(this[kBody].locked); - } - } - return this[kBody]; - } - dump(opts) { - let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144; - const signal = opts && opts.signal; - if (signal) try { - if ('object' != typeof signal || !('aborted' in signal)) throw new InvalidArgumentError('signal must be an AbortSignal'); - util.throwIfAborted(signal); - } catch (err) { - return Promise.reject(err); - } - if (this.closed) return Promise.resolve(null); - return new Promise((resolve, reject)=>{ - const signalListenerCleanup = signal ? util.addAbortListener(signal, ()=>{ - this.destroy(); - }) : noop; - this.on('close', function() { - signalListenerCleanup(); - if (signal && signal.aborted) reject(signal.reason || Object.assign(new Error('The operation was aborted'), { - name: 'AbortError' - })); - else resolve(null); - }).on('error', noop).on('data', function(chunk) { - limit -= chunk.length; - if (limit <= 0) this.destroy(); - }).resume(); - }); - } - }; - function isLocked(self) { - return self[kBody] && true === self[kBody].locked || self[kConsume]; - } - function isUnusable(self) { - return util.isDisturbed(self) || isLocked(self); - } - async function consume(stream, type) { - if (isUnusable(stream)) throw new TypeError('unusable'); - assert(!stream[kConsume]); - return new Promise((resolve, reject)=>{ - stream[kConsume] = { - type, - stream, - resolve, - reject, - length: 0, - body: [] - }; - stream.on('error', function(err) { - consumeFinish(this[kConsume], err); - }).on('close', function() { - if (null !== this[kConsume].body) consumeFinish(this[kConsume], new RequestAbortedError()); - }); - process.nextTick(consumeStart, stream[kConsume]); - }); - } - function consumeStart(consume) { - if (null === consume.body) return; - const { _readableState: state } = consume.stream; - for (const chunk of state.buffer)consumePush(consume, chunk); - if (state.endEmitted) consumeEnd(this[kConsume]); - else consume.stream.on('end', function() { - consumeEnd(this[kConsume]); - }); - consume.stream.resume(); - while(null != consume.stream.read()); - } - function consumeEnd(consume) { - const { type, body, resolve, stream, length } = consume; - try { - if ('text' === type) resolve(toUSVString(Buffer.concat(body))); - else if ('json' === type) resolve(JSON.parse(Buffer.concat(body))); - else if ('arrayBuffer' === type) { - const dst = new Uint8Array(length); - let pos = 0; - for (const buf of body){ - dst.set(buf, pos); - pos += buf.byteLength; - } - resolve(dst.buffer); - } else if ('blob' === type) { - if (!Blob1) Blob1 = __webpack_require__("buffer").Blob; - resolve(new Blob1(body, { - type: stream[kContentType] - })); - } - consumeFinish(consume); - } catch (err) { - stream.destroy(err); - } - } - function consumePush(consume, chunk) { - consume.length += chunk.length; - consume.body.push(chunk); - } - function consumeFinish(consume, err) { - if (null === consume.body) return; - if (err) consume.reject(err); - else consume.resolve(); - consume.type = null; - consume.stream = null; - consume.resolve = null; - consume.reject = null; - consume.length = 0; - consume.body = null; - } - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/util.js" (module, __unused_rspack_exports, __webpack_require__) { - const assert = __webpack_require__("assert"); - const { ResponseStatusCodeError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { toUSVString } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - async function getResolveErrorBodyCallback({ callback, body, contentType, statusCode, statusMessage, headers }) { - assert(body); - let chunks = []; - let limit = 0; - for await (const chunk of body){ - chunks.push(chunk); - limit += chunk.length; - if (limit > 131072) { - chunks = null; - break; - } - } - if (204 === statusCode || !contentType || !chunks) return void process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)); - try { - if (contentType.startsWith('application/json')) { - const payload = JSON.parse(toUSVString(Buffer.concat(chunks))); - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)); - return; - } - if (contentType.startsWith('text/')) { - const payload = toUSVString(Buffer.concat(chunks)); - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)); - return; - } - } catch (err) {} - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)); - } - module.exports = { - getResolveErrorBodyCallback - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/balanced-pool.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { BalancedPoolMissingUpstreamError, InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { PoolBase, kClients, kNeedDrain, kAddClient, kRemoveClient, kGetDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool-base.js"); - const Pool = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js"); - const { kUrl, kInterceptors } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { parseOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const kFactory = Symbol('factory'); - const kOptions = Symbol('options'); - const kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor'); - const kCurrentWeight = Symbol('kCurrentWeight'); - const kIndex = Symbol('kIndex'); - const kWeight = Symbol('kWeight'); - const kMaxWeightPerServer = Symbol('kMaxWeightPerServer'); - const kErrorPenalty = Symbol('kErrorPenalty'); - function getGreatestCommonDivisor(a, b) { - if (0 === b) return a; - return getGreatestCommonDivisor(b, a % b); - } - function defaultFactory(origin, opts) { - return new Pool(origin, opts); - } - class BalancedPool extends PoolBase { - constructor(upstreams = [], { factory = defaultFactory, ...opts } = {}){ - super(); - this[kOptions] = opts; - this[kIndex] = -1; - this[kCurrentWeight] = 0; - this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100; - this[kErrorPenalty] = this[kOptions].errorPenalty || 15; - if (!Array.isArray(upstreams)) upstreams = [ - upstreams - ]; - if ('function' != typeof factory) throw new InvalidArgumentError('factory must be a function.'); - this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) ? opts.interceptors.BalancedPool : []; - this[kFactory] = factory; - for (const upstream of upstreams)this.addUpstream(upstream); - this._updateBalancedPoolStats(); - } - addUpstream(upstream) { - const upstreamOrigin = parseOrigin(upstream).origin; - if (this[kClients].find((pool)=>pool[kUrl].origin === upstreamOrigin && true !== pool.closed && true !== pool.destroyed)) return this; - const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])); - this[kAddClient](pool); - pool.on('connect', ()=>{ - pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]); - }); - pool.on('connectionError', ()=>{ - pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); - this._updateBalancedPoolStats(); - }); - pool.on('disconnect', (...args)=>{ - const err = args[2]; - if (err && 'UND_ERR_SOCKET' === err.code) { - pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); - this._updateBalancedPoolStats(); - } - }); - for (const client of this[kClients])client[kWeight] = this[kMaxWeightPerServer]; - this._updateBalancedPoolStats(); - return this; - } - _updateBalancedPoolStats() { - this[kGreatestCommonDivisor] = this[kClients].map((p)=>p[kWeight]).reduce(getGreatestCommonDivisor, 0); - } - removeUpstream(upstream) { - const upstreamOrigin = parseOrigin(upstream).origin; - const pool = this[kClients].find((pool)=>pool[kUrl].origin === upstreamOrigin && true !== pool.closed && true !== pool.destroyed); - if (pool) this[kRemoveClient](pool); - return this; - } - get upstreams() { - return this[kClients].filter((dispatcher)=>true !== dispatcher.closed && true !== dispatcher.destroyed).map((p)=>p[kUrl].origin); - } - [kGetDispatcher]() { - if (0 === this[kClients].length) throw new BalancedPoolMissingUpstreamError(); - const dispatcher = this[kClients].find((dispatcher)=>!dispatcher[kNeedDrain] && true !== dispatcher.closed && true !== dispatcher.destroyed); - if (!dispatcher) return; - const allClientsBusy = this[kClients].map((pool)=>pool[kNeedDrain]).reduce((a, b)=>a && b, true); - if (allClientsBusy) return; - let counter = 0; - let maxWeightIndex = this[kClients].findIndex((pool)=>!pool[kNeedDrain]); - while(counter++ < this[kClients].length){ - this[kIndex] = (this[kIndex] + 1) % this[kClients].length; - const pool = this[kClients][this[kIndex]]; - if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) maxWeightIndex = this[kIndex]; - if (0 === this[kIndex]) { - this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]; - if (this[kCurrentWeight] <= 0) this[kCurrentWeight] = this[kMaxWeightPerServer]; - } - if (pool[kWeight] >= this[kCurrentWeight] && !pool[kNeedDrain]) return pool; - } - this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]; - this[kIndex] = maxWeightIndex; - return this[kClients][maxWeightIndex]; - } - } - module.exports = BalancedPool; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/cache.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/symbols.js"); - const { urlEquals, fieldValues: getFieldValues } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/util.js"); - const { kEnumerableProperty, isDisturbed } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { kHeadersList } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { Response, cloneResponse } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/response.js"); - const { Request } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/request.js"); - const { kState, kHeaders, kGuard, kRealm } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { fetching } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/index.js"); - const { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const assert = __webpack_require__("assert"); - const { getGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js"); - class Cache { - #relevantRequestResponseList; - constructor(){ - if (arguments[0] !== kConstruct) webidl.illegalConstructor(); - this.#relevantRequestResponseList = arguments[1]; - } - async match(request, options = {}) { - webidl.brandCheck(this, Cache); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Cache.match' - }); - request = webidl.converters.RequestInfo(request); - options = webidl.converters.CacheQueryOptions(options); - const p = await this.matchAll(request, options); - if (0 === p.length) return; - return p[0]; - } - async matchAll(request, options = {}) { - webidl.brandCheck(this, Cache); - if (void 0 !== request) request = webidl.converters.RequestInfo(request); - options = webidl.converters.CacheQueryOptions(options); - let r = null; - if (void 0 !== request) { - if (request instanceof Request) { - r = request[kState]; - if ('GET' !== r.method && !options.ignoreMethod) return []; - } else if ('string' == typeof request) r = new Request(request)[kState]; - } - const responses = []; - if (void 0 === request) for (const requestResponse of this.#relevantRequestResponseList)responses.push(requestResponse[1]); - else { - const requestResponses = this.#queryCache(r, options); - for (const requestResponse of requestResponses)responses.push(requestResponse[1]); - } - const responseList = []; - for (const response of responses){ - const responseObject = new Response(response.body?.source ?? null); - const body = responseObject[kState].body; - responseObject[kState] = response; - responseObject[kState].body = body; - responseObject[kHeaders][kHeadersList] = response.headersList; - responseObject[kHeaders][kGuard] = 'immutable'; - responseList.push(responseObject); - } - return Object.freeze(responseList); - } - async add(request) { - webidl.brandCheck(this, Cache); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Cache.add' - }); - request = webidl.converters.RequestInfo(request); - const requests = [ - request - ]; - const responseArrayPromise = this.addAll(requests); - return await responseArrayPromise; - } - async addAll(requests) { - webidl.brandCheck(this, Cache); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Cache.addAll' - }); - requests = webidl.converters['sequence'](requests); - const responsePromises = []; - const requestList = []; - for (const request of requests){ - if ('string' == typeof request) continue; - const r = request[kState]; - if (!urlIsHttpHttpsScheme(r.url) || 'GET' !== r.method) throw webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Expected http/s scheme when method is not GET.' - }); - } - const fetchControllers = []; - for (const request of requests){ - const r = new Request(request)[kState]; - if (!urlIsHttpHttpsScheme(r.url)) throw webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Expected http/s scheme.' - }); - r.initiator = 'fetch'; - r.destination = 'subresource'; - requestList.push(r); - const responsePromise = createDeferredPromise(); - fetchControllers.push(fetching({ - request: r, - dispatcher: getGlobalDispatcher(), - processResponse (response) { - if ('error' === response.type || 206 === response.status || response.status < 200 || response.status > 299) responsePromise.reject(webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Received an invalid status code or the request failed.' - })); - else if (response.headersList.contains('vary')) { - const fieldValues = getFieldValues(response.headersList.get('vary')); - for (const fieldValue of fieldValues)if ('*' === fieldValue) { - responsePromise.reject(webidl.errors.exception({ - header: 'Cache.addAll', - message: 'invalid vary field value' - })); - for (const controller of fetchControllers)controller.abort(); - return; - } - } - }, - processResponseEndOfBody (response) { - if (response.aborted) return void responsePromise.reject(new DOMException('aborted', 'AbortError')); - responsePromise.resolve(response); - } - })); - responsePromises.push(responsePromise.promise); - } - const p = Promise.all(responsePromises); - const responses = await p; - const operations = []; - let index = 0; - for (const response of responses){ - const operation = { - type: 'put', - request: requestList[index], - response - }; - operations.push(operation); - index++; - } - const cacheJobPromise = createDeferredPromise(); - let errorData = null; - try { - this.#batchCacheOperations(operations); - } catch (e) { - errorData = e; - } - queueMicrotask(()=>{ - if (null === errorData) cacheJobPromise.resolve(void 0); - else cacheJobPromise.reject(errorData); - }); - return cacheJobPromise.promise; - } - async put(request, response) { - webidl.brandCheck(this, Cache); - webidl.argumentLengthCheck(arguments, 2, { - header: 'Cache.put' - }); - request = webidl.converters.RequestInfo(request); - response = webidl.converters.Response(response); - let innerRequest = null; - innerRequest = request instanceof Request ? request[kState] : new Request(request)[kState]; - if (!urlIsHttpHttpsScheme(innerRequest.url) || 'GET' !== innerRequest.method) throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Expected an http/s scheme when method is not GET' - }); - const innerResponse = response[kState]; - if (206 === innerResponse.status) throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Got 206 status' - }); - if (innerResponse.headersList.contains('vary')) { - const fieldValues = getFieldValues(innerResponse.headersList.get('vary')); - for (const fieldValue of fieldValues)if ('*' === fieldValue) throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Got * vary field value' - }); - } - if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Response body is locked or disturbed' - }); - const clonedResponse = cloneResponse(innerResponse); - const bodyReadPromise = createDeferredPromise(); - if (null != innerResponse.body) { - const stream = innerResponse.body.stream; - const reader = stream.getReader(); - readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject); - } else bodyReadPromise.resolve(void 0); - const operations = []; - const operation = { - type: 'put', - request: innerRequest, - response: clonedResponse - }; - operations.push(operation); - const bytes = await bodyReadPromise.promise; - if (null != clonedResponse.body) clonedResponse.body.source = bytes; - const cacheJobPromise = createDeferredPromise(); - let errorData = null; - try { - this.#batchCacheOperations(operations); - } catch (e) { - errorData = e; - } - queueMicrotask(()=>{ - if (null === errorData) cacheJobPromise.resolve(); - else cacheJobPromise.reject(errorData); - }); - return cacheJobPromise.promise; - } - async delete(request, options = {}) { - webidl.brandCheck(this, Cache); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Cache.delete' - }); - request = webidl.converters.RequestInfo(request); - options = webidl.converters.CacheQueryOptions(options); - let r = null; - if (request instanceof Request) { - r = request[kState]; - if ('GET' !== r.method && !options.ignoreMethod) return false; - } else { - assert('string' == typeof request); - r = new Request(request)[kState]; - } - const operations = []; - const operation = { - type: 'delete', - request: r, - options - }; - operations.push(operation); - const cacheJobPromise = createDeferredPromise(); - let errorData = null; - let requestResponses; - try { - requestResponses = this.#batchCacheOperations(operations); - } catch (e) { - errorData = e; - } - queueMicrotask(()=>{ - if (null === errorData) cacheJobPromise.resolve(!!requestResponses?.length); - else cacheJobPromise.reject(errorData); - }); - return cacheJobPromise.promise; - } - async keys(request, options = {}) { - webidl.brandCheck(this, Cache); - if (void 0 !== request) request = webidl.converters.RequestInfo(request); - options = webidl.converters.CacheQueryOptions(options); - let r = null; - if (void 0 !== request) { - if (request instanceof Request) { - r = request[kState]; - if ('GET' !== r.method && !options.ignoreMethod) return []; - } else if ('string' == typeof request) r = new Request(request)[kState]; - } - const promise = createDeferredPromise(); - const requests = []; - if (void 0 === request) for (const requestResponse of this.#relevantRequestResponseList)requests.push(requestResponse[0]); - else { - const requestResponses = this.#queryCache(r, options); - for (const requestResponse of requestResponses)requests.push(requestResponse[0]); - } - queueMicrotask(()=>{ - const requestList = []; - for (const request of requests){ - const requestObject = new Request('https://a'); - requestObject[kState] = request; - requestObject[kHeaders][kHeadersList] = request.headersList; - requestObject[kHeaders][kGuard] = 'immutable'; - requestObject[kRealm] = request.client; - requestList.push(requestObject); - } - promise.resolve(Object.freeze(requestList)); - }); - return promise.promise; - } - #batchCacheOperations(operations) { - const cache = this.#relevantRequestResponseList; - const backupCache = [ - ...cache - ]; - const addedItems = []; - const resultList = []; - try { - for (const operation of operations){ - if ('delete' !== operation.type && 'put' !== operation.type) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'operation type does not match "delete" or "put"' - }); - if ('delete' === operation.type && null != operation.response) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'delete operation should not have an associated response' - }); - if (this.#queryCache(operation.request, operation.options, addedItems).length) throw new DOMException('???', 'InvalidStateError'); - let requestResponses; - if ('delete' === operation.type) { - requestResponses = this.#queryCache(operation.request, operation.options); - if (0 === requestResponses.length) return []; - for (const requestResponse of requestResponses){ - const idx = cache.indexOf(requestResponse); - assert(-1 !== idx); - cache.splice(idx, 1); - } - } else if ('put' === operation.type) { - if (null == operation.response) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'put operation should have an associated response' - }); - const r = operation.request; - if (!urlIsHttpHttpsScheme(r.url)) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'expected http or https scheme' - }); - if ('GET' !== r.method) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'not get method' - }); - if (null != operation.options) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'options must not be defined' - }); - requestResponses = this.#queryCache(operation.request); - for (const requestResponse of requestResponses){ - const idx = cache.indexOf(requestResponse); - assert(-1 !== idx); - cache.splice(idx, 1); - } - cache.push([ - operation.request, - operation.response - ]); - addedItems.push([ - operation.request, - operation.response - ]); - } - resultList.push([ - operation.request, - operation.response - ]); - } - return resultList; - } catch (e) { - this.#relevantRequestResponseList.length = 0; - this.#relevantRequestResponseList = backupCache; - throw e; - } - } - #queryCache(requestQuery, options, targetStorage) { - const resultList = []; - const storage = targetStorage ?? this.#relevantRequestResponseList; - for (const requestResponse of storage){ - const [cachedRequest, cachedResponse] = requestResponse; - if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) resultList.push(requestResponse); - } - return resultList; - } - #requestMatchesCachedItem(requestQuery, request, response = null, options) { - const queryURL = new URL(requestQuery.url); - const cachedURL = new URL(request.url); - if (options?.ignoreSearch) { - cachedURL.search = ''; - queryURL.search = ''; - } - if (!urlEquals(queryURL, cachedURL, true)) return false; - if (null == response || options?.ignoreVary || !response.headersList.contains('vary')) return true; - const fieldValues = getFieldValues(response.headersList.get('vary')); - for (const fieldValue of fieldValues){ - if ('*' === fieldValue) return false; - const requestValue = request.headersList.get(fieldValue); - const queryValue = requestQuery.headersList.get(fieldValue); - if (requestValue !== queryValue) return false; - } - return true; - } - } - Object.defineProperties(Cache.prototype, { - [Symbol.toStringTag]: { - value: 'Cache', - configurable: true - }, - match: kEnumerableProperty, - matchAll: kEnumerableProperty, - add: kEnumerableProperty, - addAll: kEnumerableProperty, - put: kEnumerableProperty, - delete: kEnumerableProperty, - keys: kEnumerableProperty - }); - const cacheQueryOptionConverters = [ - { - key: 'ignoreSearch', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'ignoreMethod', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'ignoreVary', - converter: webidl.converters.boolean, - defaultValue: false - } - ]; - webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters); - webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ - ...cacheQueryOptionConverters, - { - key: 'cacheName', - converter: webidl.converters.DOMString - } - ]); - webidl.converters.Response = webidl.interfaceConverter(Response); - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.RequestInfo); - module.exports = { - Cache - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/cachestorage.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/symbols.js"); - const { Cache } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/cache.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - class CacheStorage { - #caches = new Map(); - constructor(){ - if (arguments[0] !== kConstruct) webidl.illegalConstructor(); - } - async match(request, options = {}) { - webidl.brandCheck(this, CacheStorage); - webidl.argumentLengthCheck(arguments, 1, { - header: 'CacheStorage.match' - }); - request = webidl.converters.RequestInfo(request); - options = webidl.converters.MultiCacheQueryOptions(options); - if (null != options.cacheName) { - if (this.#caches.has(options.cacheName)) { - const cacheList = this.#caches.get(options.cacheName); - const cache = new Cache(kConstruct, cacheList); - return await cache.match(request, options); - } - } else for (const cacheList of this.#caches.values()){ - const cache = new Cache(kConstruct, cacheList); - const response = await cache.match(request, options); - if (void 0 !== response) return response; - } - } - async has(cacheName) { - webidl.brandCheck(this, CacheStorage); - webidl.argumentLengthCheck(arguments, 1, { - header: 'CacheStorage.has' - }); - cacheName = webidl.converters.DOMString(cacheName); - return this.#caches.has(cacheName); - } - async open(cacheName) { - webidl.brandCheck(this, CacheStorage); - webidl.argumentLengthCheck(arguments, 1, { - header: 'CacheStorage.open' - }); - cacheName = webidl.converters.DOMString(cacheName); - if (this.#caches.has(cacheName)) { - const cache = this.#caches.get(cacheName); - return new Cache(kConstruct, cache); - } - const cache = []; - this.#caches.set(cacheName, cache); - return new Cache(kConstruct, cache); - } - async delete(cacheName) { - webidl.brandCheck(this, CacheStorage); - webidl.argumentLengthCheck(arguments, 1, { - header: 'CacheStorage.delete' - }); - cacheName = webidl.converters.DOMString(cacheName); - return this.#caches.delete(cacheName); - } - async keys() { - webidl.brandCheck(this, CacheStorage); - const keys = this.#caches.keys(); - return [ - ...keys - ]; - } - } - Object.defineProperties(CacheStorage.prototype, { - [Symbol.toStringTag]: { - value: 'CacheStorage', - configurable: true - }, - match: kEnumerableProperty, - has: kEnumerableProperty, - open: kEnumerableProperty, - delete: kEnumerableProperty, - keys: kEnumerableProperty - }); - module.exports = { - CacheStorage - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/symbols.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - module.exports = { - kConstruct: __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js").kConstruct - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/util.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const assert = __webpack_require__("assert"); - const { URLSerializer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { isValidHeaderName } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - function urlEquals(A, B, excludeFragment = false) { - const serializedA = URLSerializer(A, excludeFragment); - const serializedB = URLSerializer(B, excludeFragment); - return serializedA === serializedB; - } - function fieldValues(header) { - assert(null !== header); - const values = []; - for (let value of header.split(',')){ - value = value.trim(); - if (value.length) { - if (isValidHeaderName(value)) values.push(value); - } - } - return values; - } - module.exports = { - urlEquals, - fieldValues - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/client.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const assert = __webpack_require__("assert"); - const net = __webpack_require__("net"); - const http = __webpack_require__("http"); - const { pipeline } = __webpack_require__("stream"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const timers = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/timers.js"); - const Request = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/request.js"); - const DispatcherBase = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher-base.js"); - const { RequestContentLengthMismatchError, ResponseContentLengthMismatchError, InvalidArgumentError, RequestAbortedError, HeadersTimeoutError, HeadersOverflowError, SocketError, InformationalError, BodyTimeoutError, HTTPParserError, ResponseExceededMaxSizeError, ClientDestroyedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const buildConnector = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/connect.js"); - const { kUrl, kReset, kServerName, kClient, kBusy, kParser, kConnect, kBlocking, kResuming, kRunning, kPending, kSize, kWriting, kQueue, kConnected, kConnecting, kNeedDrain, kNoRef, kKeepAliveDefaultTimeout, kHostHeader, kPendingIdx, kRunningIdx, kError, kPipelining, kSocket, kKeepAliveTimeoutValue, kMaxHeadersSize, kKeepAliveMaxTimeout, kKeepAliveTimeoutThreshold, kHeadersTimeout, kBodyTimeout, kStrictContentLength, kConnector, kMaxRedirections, kMaxRequests, kCounter, kClose, kDestroy, kDispatch, kInterceptors, kLocalAddress, kMaxResponseSize, kHTTPConnVersion, kHost, kHTTP2Session, kHTTP2SessionState, kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - let http2; - try { - http2 = __webpack_require__("http2"); - } catch { - http2 = { - constants: {} - }; - } - const { constants: { HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_SCHEME, HTTP2_HEADER_CONTENT_LENGTH, HTTP2_HEADER_EXPECT, HTTP2_HEADER_STATUS } } = http2; - let h2ExperimentalWarned = false; - const FastBuffer = Buffer[Symbol.species]; - const kClosedResolve = Symbol('kClosedResolve'); - const channels = {}; - try { - const diagnosticsChannel = __webpack_require__("diagnostics_channel"); - channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders'); - channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect'); - channels.connectError = diagnosticsChannel.channel('undici:client:connectError'); - channels.connected = diagnosticsChannel.channel('undici:client:connected'); - } catch { - channels.sendHeaders = { - hasSubscribers: false - }; - channels.beforeConnect = { - hasSubscribers: false - }; - channels.connectError = { - hasSubscribers: false - }; - channels.connected = { - hasSubscribers: false - }; - } - class Client extends DispatcherBase { - constructor(url, { interceptors, maxHeaderSize, headersTimeout, socketTimeout, requestTimeout, connectTimeout, bodyTimeout, idleTimeout, keepAlive, keepAliveTimeout, maxKeepAliveTimeout, keepAliveMaxTimeout, keepAliveTimeoutThreshold, socketPath, pipelining, tls, strictContentLength, maxCachedSessions, maxRedirections, connect, maxRequestsPerClient, localAddress, maxResponseSize, autoSelectFamily, autoSelectFamilyAttemptTimeout, allowH2, maxConcurrentStreams } = {}){ - super(); - if (void 0 !== keepAlive) throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead'); - if (void 0 !== socketTimeout) throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead'); - if (void 0 !== requestTimeout) throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead'); - if (void 0 !== idleTimeout) throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead'); - if (void 0 !== maxKeepAliveTimeout) throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead'); - if (null != maxHeaderSize && !Number.isFinite(maxHeaderSize)) throw new InvalidArgumentError('invalid maxHeaderSize'); - if (null != socketPath && 'string' != typeof socketPath) throw new InvalidArgumentError('invalid socketPath'); - if (null != connectTimeout && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) throw new InvalidArgumentError('invalid connectTimeout'); - if (null != keepAliveTimeout && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) throw new InvalidArgumentError('invalid keepAliveTimeout'); - if (null != keepAliveMaxTimeout && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) throw new InvalidArgumentError('invalid keepAliveMaxTimeout'); - if (null != keepAliveTimeoutThreshold && !Number.isFinite(keepAliveTimeoutThreshold)) throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold'); - if (null != headersTimeout && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) throw new InvalidArgumentError('headersTimeout must be a positive integer or zero'); - if (null != bodyTimeout && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero'); - if (null != connect && 'function' != typeof connect && 'object' != typeof connect) throw new InvalidArgumentError('connect must be a function or an object'); - if (null != maxRedirections && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) throw new InvalidArgumentError('maxRedirections must be a positive number'); - if (null != maxRequestsPerClient && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) throw new InvalidArgumentError('maxRequestsPerClient must be a positive number'); - if (null != localAddress && ('string' != typeof localAddress || 0 === net.isIP(localAddress))) throw new InvalidArgumentError('localAddress must be valid string IP address'); - if (null != maxResponseSize && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) throw new InvalidArgumentError('maxResponseSize must be a positive number'); - if (null != autoSelectFamilyAttemptTimeout && (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)) throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number'); - if (null != allowH2 && 'boolean' != typeof allowH2) throw new InvalidArgumentError('allowH2 must be a valid boolean value'); - if (null != maxConcurrentStreams && ('number' != typeof maxConcurrentStreams || maxConcurrentStreams < 1)) throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0'); - if ('function' != typeof connect) connect = buildConnector({ - ...tls, - maxCachedSessions, - allowH2, - socketPath, - timeout: connectTimeout, - ...util.nodeHasAutoSelectFamily && autoSelectFamily ? { - autoSelectFamily, - autoSelectFamilyAttemptTimeout - } : void 0, - ...connect - }); - this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client) ? interceptors.Client : [ - createRedirectInterceptor({ - maxRedirections - }) - ]; - this[kUrl] = util.parseOrigin(url); - this[kConnector] = connect; - this[kSocket] = null; - this[kPipelining] = null != pipelining ? pipelining : 1; - this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize; - this[kKeepAliveDefaultTimeout] = null == keepAliveTimeout ? 4e3 : keepAliveTimeout; - this[kKeepAliveMaxTimeout] = null == keepAliveMaxTimeout ? 600e3 : keepAliveMaxTimeout; - this[kKeepAliveTimeoutThreshold] = null == keepAliveTimeoutThreshold ? 1e3 : keepAliveTimeoutThreshold; - this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]; - this[kServerName] = null; - this[kLocalAddress] = null != localAddress ? localAddress : null; - this[kResuming] = 0; - this[kNeedDrain] = 0; - this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\r\n`; - this[kBodyTimeout] = null != bodyTimeout ? bodyTimeout : 300e3; - this[kHeadersTimeout] = null != headersTimeout ? headersTimeout : 300e3; - this[kStrictContentLength] = null == strictContentLength ? true : strictContentLength; - this[kMaxRedirections] = maxRedirections; - this[kMaxRequests] = maxRequestsPerClient; - this[kClosedResolve] = null; - this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1; - this[kHTTPConnVersion] = 'h1'; - this[kHTTP2Session] = null; - this[kHTTP2SessionState] = allowH2 ? { - openStreams: 0, - maxConcurrentStreams: null != maxConcurrentStreams ? maxConcurrentStreams : 100 - } : null; - this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}`; - this[kQueue] = []; - this[kRunningIdx] = 0; - this[kPendingIdx] = 0; - } - get pipelining() { - return this[kPipelining]; - } - set pipelining(value) { - this[kPipelining] = value; - resume(this, true); - } - get [kPending]() { - return this[kQueue].length - this[kPendingIdx]; - } - get [kRunning]() { - return this[kPendingIdx] - this[kRunningIdx]; - } - get [kSize]() { - return this[kQueue].length - this[kRunningIdx]; - } - get [kConnected]() { - return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed; - } - get [kBusy]() { - const socket = this[kSocket]; - return socket && (socket[kReset] || socket[kWriting] || socket[kBlocking]) || this[kSize] >= (this[kPipelining] || 1) || this[kPending] > 0; - } - [kConnect](cb) { - connect(this); - this.once('connect', cb); - } - [kDispatch](opts, handler) { - const origin = opts.origin || this[kUrl].origin; - const request = 'h2' === this[kHTTPConnVersion] ? Request[kHTTP2BuildRequest](origin, opts, handler) : Request[kHTTP1BuildRequest](origin, opts, handler); - this[kQueue].push(request); - if (this[kResuming]) ; - else if (null == util.bodyLength(request.body) && util.isIterable(request.body)) { - this[kResuming] = 1; - process.nextTick(resume, this); - } else resume(this, true); - if (this[kResuming] && 2 !== this[kNeedDrain] && this[kBusy]) this[kNeedDrain] = 2; - return this[kNeedDrain] < 2; - } - async [kClose]() { - return new Promise((resolve)=>{ - if (this[kSize]) this[kClosedResolve] = resolve; - else resolve(null); - }); - } - async [kDestroy](err) { - return new Promise((resolve)=>{ - const requests = this[kQueue].splice(this[kPendingIdx]); - for(let i = 0; i < requests.length; i++){ - const request = requests[i]; - errorRequest(this, request, err); - } - const callback = ()=>{ - if (this[kClosedResolve]) { - this[kClosedResolve](); - this[kClosedResolve] = null; - } - resolve(); - }; - if (null != this[kHTTP2Session]) { - util.destroy(this[kHTTP2Session], err); - this[kHTTP2Session] = null; - this[kHTTP2SessionState] = null; - } - if (this[kSocket]) util.destroy(this[kSocket].on('close', callback), err); - else queueMicrotask(callback); - resume(this); - }); - } - } - function onHttp2SessionError(err) { - assert('ERR_TLS_CERT_ALTNAME_INVALID' !== err.code); - this[kSocket][kError] = err; - onError(this[kClient], err); - } - function onHttp2FrameError(type, code, id) { - const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); - if (0 === id) { - this[kSocket][kError] = err; - onError(this[kClient], err); - } - } - function onHttp2SessionEnd() { - util.destroy(this, new SocketError('other side closed')); - util.destroy(this[kSocket], new SocketError('other side closed')); - } - function onHTTP2GoAway(code) { - const client = this[kClient]; - const err = new InformationalError(`HTTP/2: "GOAWAY" frame received with code ${code}`); - client[kSocket] = null; - client[kHTTP2Session] = null; - if (client.destroyed) { - assert(0 === this[kPending]); - const requests = client[kQueue].splice(client[kRunningIdx]); - for(let i = 0; i < requests.length; i++){ - const request = requests[i]; - errorRequest(this, request, err); - } - } else if (client[kRunning] > 0) { - const request = client[kQueue][client[kRunningIdx]]; - client[kQueue][client[kRunningIdx]++] = null; - errorRequest(client, request, err); - } - client[kPendingIdx] = client[kRunningIdx]; - assert(0 === client[kRunning]); - client.emit('disconnect', client[kUrl], [ - client - ], err); - resume(client); - } - const constants = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/constants.js"); - const createRedirectInterceptor = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/interceptor/redirectInterceptor.js"); - const EMPTY_BUF = Buffer.alloc(0); - async function lazyllhttp() { - const llhttpWasmData = process.env.JEST_WORKER_ID ? __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/llhttp-wasm.js") : void 0; - let mod; - try { - mod = await WebAssembly.compile(Buffer.from(__webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"), 'base64')); - } catch (e) { - mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/llhttp-wasm.js"), 'base64')); - } - return await WebAssembly.instantiate(mod, { - env: { - wasm_on_url: (p, at, len)=>0, - wasm_on_status: (p, at, len)=>{ - assert.strictEqual(currentParser.ptr, p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_message_begin: (p)=>{ - assert.strictEqual(currentParser.ptr, p); - return currentParser.onMessageBegin() || 0; - }, - wasm_on_header_field: (p, at, len)=>{ - assert.strictEqual(currentParser.ptr, p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_header_value: (p, at, len)=>{ - assert.strictEqual(currentParser.ptr, p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive)=>{ - assert.strictEqual(currentParser.ptr, p); - return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0; - }, - wasm_on_body: (p, at, len)=>{ - assert.strictEqual(currentParser.ptr, p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_message_complete: (p)=>{ - assert.strictEqual(currentParser.ptr, p); - return currentParser.onMessageComplete() || 0; - } - } - }); - } - let llhttpInstance = null; - let llhttpPromise = lazyllhttp(); - llhttpPromise.catch(); - let currentParser = null; - let currentBufferRef = null; - let currentBufferSize = 0; - let currentBufferPtr = null; - const TIMEOUT_HEADERS = 1; - const TIMEOUT_BODY = 2; - const TIMEOUT_IDLE = 3; - class Parser { - constructor(client, socket, { exports: exports1 }){ - assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); - this.llhttp = exports1; - this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE); - this.client = client; - this.socket = socket; - this.timeout = null; - this.timeoutValue = null; - this.timeoutType = null; - this.statusCode = null; - this.statusText = ''; - this.upgrade = false; - this.headers = []; - this.headersSize = 0; - this.headersMaxSize = client[kMaxHeadersSize]; - this.shouldKeepAlive = false; - this.paused = false; - this.resume = this.resume.bind(this); - this.bytesRead = 0; - this.keepAlive = ''; - this.contentLength = ''; - this.connection = ''; - this.maxResponseSize = client[kMaxResponseSize]; - } - setTimeout(value, type) { - this.timeoutType = type; - if (value !== this.timeoutValue) { - timers.clearTimeout(this.timeout); - if (value) { - this.timeout = timers.setTimeout(onParserTimeout, value, this); - if (this.timeout.unref) this.timeout.unref(); - } else this.timeout = null; - this.timeoutValue = value; - } else if (this.timeout) { - if (this.timeout.refresh) this.timeout.refresh(); - } - } - resume() { - if (this.socket.destroyed || !this.paused) return; - assert(null != this.ptr); - assert(null == currentParser); - this.llhttp.llhttp_resume(this.ptr); - assert(this.timeoutType === TIMEOUT_BODY); - if (this.timeout) { - if (this.timeout.refresh) this.timeout.refresh(); - } - this.paused = false; - this.execute(this.socket.read() || EMPTY_BUF); - this.readMore(); - } - readMore() { - while(!this.paused && this.ptr){ - const chunk = this.socket.read(); - if (null === chunk) break; - this.execute(chunk); - } - } - execute(data) { - assert(null != this.ptr); - assert(null == currentParser); - assert(!this.paused); - const { socket, llhttp } = this; - if (data.length > currentBufferSize) { - if (currentBufferPtr) llhttp.free(currentBufferPtr); - currentBufferSize = 4096 * Math.ceil(data.length / 4096); - currentBufferPtr = llhttp.malloc(currentBufferSize); - } - new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data); - try { - let ret; - try { - currentBufferRef = data; - currentParser = this; - ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length); - } catch (err) { - throw err; - } finally{ - currentParser = null; - currentBufferRef = null; - } - const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr; - if (ret === constants.ERROR.PAUSED_UPGRADE) this.onUpgrade(data.slice(offset)); - else if (ret === constants.ERROR.PAUSED) { - this.paused = true; - socket.unshift(data.slice(offset)); - } else if (ret !== constants.ERROR.OK) { - const ptr = llhttp.llhttp_get_error_reason(this.ptr); - let message = ''; - if (ptr) { - const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0); - message = 'Response does not match the HTTP/1.1 protocol (' + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ')'; - } - throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset)); - } - } catch (err) { - util.destroy(socket, err); - } - } - destroy() { - assert(null != this.ptr); - assert(null == currentParser); - this.llhttp.llhttp_free(this.ptr); - this.ptr = null; - timers.clearTimeout(this.timeout); - this.timeout = null; - this.timeoutValue = null; - this.timeoutType = null; - this.paused = false; - } - onStatus(buf) { - this.statusText = buf.toString(); - } - onMessageBegin() { - const { socket, client } = this; - if (socket.destroyed) return -1; - const request = client[kQueue][client[kRunningIdx]]; - if (!request) return -1; - } - onHeaderField(buf) { - const len = this.headers.length; - if ((1 & len) === 0) this.headers.push(buf); - else this.headers[len - 1] = Buffer.concat([ - this.headers[len - 1], - buf - ]); - this.trackHeader(buf.length); - } - onHeaderValue(buf) { - let len = this.headers.length; - if ((1 & len) === 1) { - this.headers.push(buf); - len += 1; - } else this.headers[len - 1] = Buffer.concat([ - this.headers[len - 1], - buf - ]); - const key = this.headers[len - 2]; - if (10 === key.length && 'keep-alive' === key.toString().toLowerCase()) this.keepAlive += buf.toString(); - else if (10 === key.length && 'connection' === key.toString().toLowerCase()) this.connection += buf.toString(); - else if (14 === key.length && 'content-length' === key.toString().toLowerCase()) this.contentLength += buf.toString(); - this.trackHeader(buf.length); - } - trackHeader(len) { - this.headersSize += len; - if (this.headersSize >= this.headersMaxSize) util.destroy(this.socket, new HeadersOverflowError()); - } - onUpgrade(head) { - const { upgrade, client, socket, headers, statusCode } = this; - assert(upgrade); - const request = client[kQueue][client[kRunningIdx]]; - assert(request); - assert(!socket.destroyed); - assert(socket === client[kSocket]); - assert(!this.paused); - assert(request.upgrade || 'CONNECT' === request.method); - this.statusCode = null; - this.statusText = ''; - this.shouldKeepAlive = null; - assert(this.headers.length % 2 === 0); - this.headers = []; - this.headersSize = 0; - socket.unshift(head); - socket[kParser].destroy(); - socket[kParser] = null; - socket[kClient] = null; - socket[kError] = null; - socket.removeListener('error', onSocketError).removeListener('readable', onSocketReadable).removeListener('end', onSocketEnd).removeListener('close', onSocketClose); - client[kSocket] = null; - client[kQueue][client[kRunningIdx]++] = null; - client.emit('disconnect', client[kUrl], [ - client - ], new InformationalError('upgrade')); - try { - request.onUpgrade(statusCode, headers, socket); - } catch (err) { - util.destroy(socket, err); - } - resume(client); - } - onHeadersComplete(statusCode, upgrade, shouldKeepAlive) { - const { client, socket, headers, statusText } = this; - if (socket.destroyed) return -1; - const request = client[kQueue][client[kRunningIdx]]; - if (!request) return -1; - assert(!this.upgrade); - assert(this.statusCode < 200); - if (100 === statusCode) { - util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket))); - return -1; - } - if (upgrade && !request.upgrade) { - util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket))); - return -1; - } - assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS); - this.statusCode = statusCode; - this.shouldKeepAlive = shouldKeepAlive || 'HEAD' === request.method && !socket[kReset] && 'keep-alive' === this.connection.toLowerCase(); - if (this.statusCode >= 200) { - const bodyTimeout = null != request.bodyTimeout ? request.bodyTimeout : client[kBodyTimeout]; - this.setTimeout(bodyTimeout, TIMEOUT_BODY); - } else if (this.timeout) { - if (this.timeout.refresh) this.timeout.refresh(); - } - if ('CONNECT' === request.method) { - assert(1 === client[kRunning]); - this.upgrade = true; - return 2; - } - if (upgrade) { - assert(1 === client[kRunning]); - this.upgrade = true; - return 2; - } - assert(this.headers.length % 2 === 0); - this.headers = []; - this.headersSize = 0; - if (this.shouldKeepAlive && client[kPipelining]) { - const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null; - if (null != keepAliveTimeout) { - const timeout = Math.min(keepAliveTimeout - client[kKeepAliveTimeoutThreshold], client[kKeepAliveMaxTimeout]); - if (timeout <= 0) socket[kReset] = true; - else client[kKeepAliveTimeoutValue] = timeout; - } else client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]; - } else socket[kReset] = true; - const pause = false === request.onHeaders(statusCode, headers, this.resume, statusText); - if (request.aborted) return -1; - if ('HEAD' === request.method) return 1; - if (statusCode < 200) return 1; - if (socket[kBlocking]) { - socket[kBlocking] = false; - resume(client); - } - return pause ? constants.ERROR.PAUSED : 0; - } - onBody(buf) { - const { client, socket, statusCode, maxResponseSize } = this; - if (socket.destroyed) return -1; - const request = client[kQueue][client[kRunningIdx]]; - assert(request); - assert.strictEqual(this.timeoutType, TIMEOUT_BODY); - if (this.timeout) { - if (this.timeout.refresh) this.timeout.refresh(); - } - assert(statusCode >= 200); - if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { - util.destroy(socket, new ResponseExceededMaxSizeError()); - return -1; - } - this.bytesRead += buf.length; - if (false === request.onData(buf)) return constants.ERROR.PAUSED; - } - onMessageComplete() { - const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this; - if (socket.destroyed && (!statusCode || shouldKeepAlive)) return -1; - if (upgrade) return; - const request = client[kQueue][client[kRunningIdx]]; - assert(request); - assert(statusCode >= 100); - this.statusCode = null; - this.statusText = ''; - this.bytesRead = 0; - this.contentLength = ''; - this.keepAlive = ''; - this.connection = ''; - assert(this.headers.length % 2 === 0); - this.headers = []; - this.headersSize = 0; - if (statusCode < 200) return; - if ('HEAD' !== request.method && contentLength && bytesRead !== parseInt(contentLength, 10)) { - util.destroy(socket, new ResponseContentLengthMismatchError()); - return -1; - } - request.onComplete(headers); - client[kQueue][client[kRunningIdx]++] = null; - if (socket[kWriting]) { - assert.strictEqual(client[kRunning], 0); - util.destroy(socket, new InformationalError('reset')); - return constants.ERROR.PAUSED; - } - if (shouldKeepAlive) if (socket[kReset] && 0 === client[kRunning]) { - util.destroy(socket, new InformationalError('reset')); - return constants.ERROR.PAUSED; - } else if (1 === client[kPipelining]) setImmediate(resume, client); - else resume(client); - else { - util.destroy(socket, new InformationalError('reset')); - return constants.ERROR.PAUSED; - } - } - } - function onParserTimeout(parser) { - const { socket, timeoutType, client } = parser; - if (timeoutType === TIMEOUT_HEADERS) { - if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { - assert(!parser.paused, 'cannot be paused while waiting for headers'); - util.destroy(socket, new HeadersTimeoutError()); - } - } else if (timeoutType === TIMEOUT_BODY) { - if (!parser.paused) util.destroy(socket, new BodyTimeoutError()); - } else if (timeoutType === TIMEOUT_IDLE) { - assert(0 === client[kRunning] && client[kKeepAliveTimeoutValue]); - util.destroy(socket, new InformationalError('socket idle timeout')); - } - } - function onSocketReadable() { - const { [kParser]: parser } = this; - if (parser) parser.readMore(); - } - function onSocketError(err) { - const { [kClient]: client, [kParser]: parser } = this; - assert('ERR_TLS_CERT_ALTNAME_INVALID' !== err.code); - if ('h2' !== client[kHTTPConnVersion]) { - if ('ECONNRESET' === err.code && parser.statusCode && !parser.shouldKeepAlive) return void parser.onMessageComplete(); - } - this[kError] = err; - onError(this[kClient], err); - } - function onError(client, err) { - if (0 === client[kRunning] && 'UND_ERR_INFO' !== err.code && 'UND_ERR_SOCKET' !== err.code) { - assert(client[kPendingIdx] === client[kRunningIdx]); - const requests = client[kQueue].splice(client[kRunningIdx]); - for(let i = 0; i < requests.length; i++){ - const request = requests[i]; - errorRequest(client, request, err); - } - assert(0 === client[kSize]); - } - } - function onSocketEnd() { - const { [kParser]: parser, [kClient]: client } = this; - if ('h2' !== client[kHTTPConnVersion]) { - if (parser.statusCode && !parser.shouldKeepAlive) return void parser.onMessageComplete(); - } - util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this))); - } - function onSocketClose() { - const { [kClient]: client, [kParser]: parser } = this; - if ('h1' === client[kHTTPConnVersion] && parser) { - if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) parser.onMessageComplete(); - this[kParser].destroy(); - this[kParser] = null; - } - const err = this[kError] || new SocketError('closed', util.getSocketInfo(this)); - client[kSocket] = null; - if (client.destroyed) { - assert(0 === client[kPending]); - const requests = client[kQueue].splice(client[kRunningIdx]); - for(let i = 0; i < requests.length; i++){ - const request = requests[i]; - errorRequest(client, request, err); - } - } else if (client[kRunning] > 0 && 'UND_ERR_INFO' !== err.code) { - const request = client[kQueue][client[kRunningIdx]]; - client[kQueue][client[kRunningIdx]++] = null; - errorRequest(client, request, err); - } - client[kPendingIdx] = client[kRunningIdx]; - assert(0 === client[kRunning]); - client.emit('disconnect', client[kUrl], [ - client - ], err); - resume(client); - } - async function connect(client) { - assert(!client[kConnecting]); - assert(!client[kSocket]); - let { host, hostname, protocol, port } = client[kUrl]; - if ('[' === hostname[0]) { - const idx = hostname.indexOf(']'); - assert(-1 !== idx); - const ip = hostname.substring(1, idx); - assert(net.isIP(ip)); - hostname = ip; - } - client[kConnecting] = true; - if (channels.beforeConnect.hasSubscribers) channels.beforeConnect.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector] - }); - try { - const socket = await new Promise((resolve, reject)=>{ - client[kConnector]({ - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, (err, socket)=>{ - if (err) reject(err); - else resolve(socket); - }); - }); - if (client.destroyed) return void util.destroy(socket.on('error', ()=>{}), new ClientDestroyedError()); - client[kConnecting] = false; - assert(socket); - const isH2 = 'h2' === socket.alpnProtocol; - if (isH2) { - if (!h2ExperimentalWarned) { - h2ExperimentalWarned = true; - process.emitWarning('H2 support is experimental, expect them to change at any time.', { - code: 'UNDICI-H2' - }); - } - const session = http2.connect(client[kUrl], { - createConnection: ()=>socket, - peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams - }); - client[kHTTPConnVersion] = 'h2'; - session[kClient] = client; - session[kSocket] = socket; - session.on('error', onHttp2SessionError); - session.on('frameError', onHttp2FrameError); - session.on('end', onHttp2SessionEnd); - session.on('goaway', onHTTP2GoAway); - session.on('close', onSocketClose); - session.unref(); - client[kHTTP2Session] = session; - socket[kHTTP2Session] = session; - } else { - if (!llhttpInstance) { - llhttpInstance = await llhttpPromise; - llhttpPromise = null; - } - socket[kNoRef] = false; - socket[kWriting] = false; - socket[kReset] = false; - socket[kBlocking] = false; - socket[kParser] = new Parser(client, socket, llhttpInstance); - } - socket[kCounter] = 0; - socket[kMaxRequests] = client[kMaxRequests]; - socket[kClient] = client; - socket[kError] = null; - socket.on('error', onSocketError).on('readable', onSocketReadable).on('end', onSocketEnd).on('close', onSocketClose); - client[kSocket] = socket; - if (channels.connected.hasSubscribers) channels.connected.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector], - socket - }); - client.emit('connect', client[kUrl], [ - client - ]); - } catch (err) { - if (client.destroyed) return; - client[kConnecting] = false; - if (channels.connectError.hasSubscribers) channels.connectError.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector], - error: err - }); - if ('ERR_TLS_CERT_ALTNAME_INVALID' === err.code) { - assert(0 === client[kRunning]); - while(client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]){ - const request = client[kQueue][client[kPendingIdx]++]; - errorRequest(client, request, err); - } - } else onError(client, err); - client.emit('connectionError', client[kUrl], [ - client - ], err); - } - resume(client); - } - function emitDrain(client) { - client[kNeedDrain] = 0; - client.emit('drain', client[kUrl], [ - client - ]); - } - function resume(client, sync) { - if (2 === client[kResuming]) return; - client[kResuming] = 2; - _resume(client, sync); - client[kResuming] = 0; - if (client[kRunningIdx] > 256) { - client[kQueue].splice(0, client[kRunningIdx]); - client[kPendingIdx] -= client[kRunningIdx]; - client[kRunningIdx] = 0; - } - } - function _resume(client, sync) { - while(true){ - if (client.destroyed) return void assert(0 === client[kPending]); - if (client[kClosedResolve] && !client[kSize]) { - client[kClosedResolve](); - client[kClosedResolve] = null; - return; - } - const socket = client[kSocket]; - if (socket && !socket.destroyed && 'h2' !== socket.alpnProtocol) { - if (0 === client[kSize]) { - if (!socket[kNoRef] && socket.unref) { - socket.unref(); - socket[kNoRef] = true; - } - } else if (socket[kNoRef] && socket.ref) { - socket.ref(); - socket[kNoRef] = false; - } - if (0 === client[kSize]) { - if (socket[kParser].timeoutType !== TIMEOUT_IDLE) socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE); - } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { - if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { - const request = client[kQueue][client[kRunningIdx]]; - const headersTimeout = null != request.headersTimeout ? request.headersTimeout : client[kHeadersTimeout]; - socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS); - } - } - } - if (client[kBusy]) client[kNeedDrain] = 2; - else if (2 === client[kNeedDrain]) { - if (sync) { - client[kNeedDrain] = 1; - process.nextTick(emitDrain, client); - } else emitDrain(client); - continue; - } - if (0 === client[kPending]) return; - if (client[kRunning] >= (client[kPipelining] || 1)) return; - const request = client[kQueue][client[kPendingIdx]]; - if ('https:' === client[kUrl].protocol && client[kServerName] !== request.servername) { - if (client[kRunning] > 0) return; - client[kServerName] = request.servername; - if (socket && socket.servername !== request.servername) return void util.destroy(socket, new InformationalError('servername changed')); - } - if (client[kConnecting]) return; - if (!socket && !client[kHTTP2Session]) return void connect(client); - if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) return; - if (client[kRunning] > 0 && !request.idempotent) return; - if (client[kRunning] > 0 && (request.upgrade || 'CONNECT' === request.method)) return; - if (client[kRunning] > 0 && 0 !== util.bodyLength(request.body) && (util.isStream(request.body) || util.isAsyncIterable(request.body))) return; - if (!request.aborted && write(client, request)) client[kPendingIdx]++; - else client[kQueue].splice(client[kPendingIdx], 1); - } - } - function shouldSendContentLength(method) { - return 'GET' !== method && 'HEAD' !== method && 'OPTIONS' !== method && 'TRACE' !== method && 'CONNECT' !== method; - } - function write(client, request) { - if ('h2' === client[kHTTPConnVersion]) return void writeH2(client, client[kHTTP2Session], request); - const { body, method, path, host, upgrade, headers, blocking, reset } = request; - const expectsPayload = 'PUT' === method || 'POST' === method || 'PATCH' === method; - if (body && 'function' == typeof body.read) body.read(0); - const bodyLength = util.bodyLength(body); - let contentLength = bodyLength; - if (null === contentLength) contentLength = request.contentLength; - if (0 === contentLength && !expectsPayload) contentLength = null; - if (shouldSendContentLength(method) && contentLength > 0 && null !== request.contentLength && request.contentLength !== contentLength) { - if (client[kStrictContentLength]) { - errorRequest(client, request, new RequestContentLengthMismatchError()); - return false; - } - process.emitWarning(new RequestContentLengthMismatchError()); - } - const socket = client[kSocket]; - try { - request.onConnect((err)=>{ - if (request.aborted || request.completed) return; - errorRequest(client, request, err || new RequestAbortedError()); - util.destroy(socket, new InformationalError('aborted')); - }); - } catch (err) { - errorRequest(client, request, err); - } - if (request.aborted) return false; - if ('HEAD' === method) socket[kReset] = true; - if (upgrade || 'CONNECT' === method) socket[kReset] = true; - if (null != reset) socket[kReset] = reset; - if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) socket[kReset] = true; - if (blocking) socket[kBlocking] = true; - let header = `${method} ${path} HTTP/1.1\r\n`; - if ('string' == typeof host) header += `host: ${host}\r\n`; - else header += client[kHostHeader]; - if (upgrade) header += `connection: upgrade\r\nupgrade: ${upgrade}\r\n`; - else if (client[kPipelining] && !socket[kReset]) header += 'connection: keep-alive\r\n'; - else header += 'connection: close\r\n'; - if (headers) header += headers; - if (channels.sendHeaders.hasSubscribers) channels.sendHeaders.publish({ - request, - headers: header, - socket - }); - if (body && 0 !== bodyLength) if (util.isBuffer(body)) { - assert(contentLength === body.byteLength, 'buffer body must have content length'); - socket.cork(); - socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1'); - socket.write(body); - socket.uncork(); - request.onBodySent(body); - request.onRequestSent(); - if (!expectsPayload) socket[kReset] = true; - } else if (util.isBlobLike(body)) if ('function' == typeof body.stream) writeIterable({ - body: body.stream(), - client, - request, - socket, - contentLength, - header, - expectsPayload - }); - else writeBlob({ - body, - client, - request, - socket, - contentLength, - header, - expectsPayload - }); - else if (util.isStream(body)) writeStream({ - body, - client, - request, - socket, - contentLength, - header, - expectsPayload - }); - else if (util.isIterable(body)) writeIterable({ - body, - client, - request, - socket, - contentLength, - header, - expectsPayload - }); - else assert(false); - else { - if (0 === contentLength) socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1'); - else { - assert(null === contentLength, 'no body must not have content length'); - socket.write(`${header}\r\n`, 'latin1'); - } - request.onRequestSent(); - } - return true; - } - function writeH2(client, session, request) { - const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request; - let headers; - headers = 'string' == typeof reqHeaders ? Request[kHTTP2CopyHeaders](reqHeaders.trim()) : reqHeaders; - if (upgrade) { - errorRequest(client, request, new Error('Upgrade not supported for H2')); - return false; - } - try { - request.onConnect((err)=>{ - if (request.aborted || request.completed) return; - errorRequest(client, request, err || new RequestAbortedError()); - }); - } catch (err) { - errorRequest(client, request, err); - } - if (request.aborted) return false; - let stream; - const h2State = client[kHTTP2SessionState]; - headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost]; - headers[HTTP2_HEADER_METHOD] = method; - if ('CONNECT' === method) { - session.ref(); - stream = session.request(headers, { - endStream: false, - signal - }); - if (stream.id && !stream.pending) { - request.onUpgrade(null, null, stream); - ++h2State.openStreams; - } else stream.once('ready', ()=>{ - request.onUpgrade(null, null, stream); - ++h2State.openStreams; - }); - stream.once('close', ()=>{ - h2State.openStreams -= 1; - if (0 === h2State.openStreams) session.unref(); - }); - return true; - } - headers[HTTP2_HEADER_PATH] = path; - headers[HTTP2_HEADER_SCHEME] = 'https'; - const expectsPayload = 'PUT' === method || 'POST' === method || 'PATCH' === method; - if (body && 'function' == typeof body.read) body.read(0); - let contentLength = util.bodyLength(body); - if (null == contentLength) contentLength = request.contentLength; - if (0 === contentLength || !expectsPayload) contentLength = null; - if (shouldSendContentLength(method) && contentLength > 0 && null != request.contentLength && request.contentLength !== contentLength) { - if (client[kStrictContentLength]) { - errorRequest(client, request, new RequestContentLengthMismatchError()); - return false; - } - process.emitWarning(new RequestContentLengthMismatchError()); - } - if (null != contentLength) { - assert(body, 'no body must not have content length'); - headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`; - } - session.ref(); - const shouldEndStream = 'GET' === method || 'HEAD' === method; - if (expectContinue) { - headers[HTTP2_HEADER_EXPECT] = '100-continue'; - stream = session.request(headers, { - endStream: shouldEndStream, - signal - }); - stream.once('continue', writeBodyH2); - } else { - stream = session.request(headers, { - endStream: shouldEndStream, - signal - }); - writeBodyH2(); - } - ++h2State.openStreams; - stream.once('response', (headers)=>{ - const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers; - if (false === request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '')) stream.pause(); - }); - stream.once('end', ()=>{ - request.onComplete([]); - }); - stream.on('data', (chunk)=>{ - if (false === request.onData(chunk)) stream.pause(); - }); - stream.once('close', ()=>{ - h2State.openStreams -= 1; - if (0 === h2State.openStreams) session.unref(); - }); - stream.once('error', function(err) { - if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { - h2State.streams -= 1; - util.destroy(stream, err); - } - }); - stream.once('frameError', (type, code)=>{ - const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); - errorRequest(client, request, err); - if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { - h2State.streams -= 1; - util.destroy(stream, err); - } - }); - return true; - function writeBodyH2() { - if (body) if (util.isBuffer(body)) { - assert(contentLength === body.byteLength, 'buffer body must have content length'); - stream.cork(); - stream.write(body); - stream.uncork(); - stream.end(); - request.onBodySent(body); - request.onRequestSent(); - } else if (util.isBlobLike(body)) if ('function' == typeof body.stream) writeIterable({ - client, - request, - contentLength, - h2stream: stream, - expectsPayload, - body: body.stream(), - socket: client[kSocket], - header: '' - }); - else writeBlob({ - body, - client, - request, - contentLength, - expectsPayload, - h2stream: stream, - header: '', - socket: client[kSocket] - }); - else if (util.isStream(body)) writeStream({ - body, - client, - request, - contentLength, - expectsPayload, - socket: client[kSocket], - h2stream: stream, - header: '' - }); - else if (util.isIterable(body)) writeIterable({ - body, - client, - request, - contentLength, - expectsPayload, - header: '', - h2stream: stream, - socket: client[kSocket] - }); - else assert(false); - else request.onRequestSent(); - } - } - function writeStream({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(0 !== contentLength || 0 === client[kRunning], 'stream body cannot be pipelined'); - if ('h2' === client[kHTTPConnVersion]) { - const pipe = pipeline(body, h2stream, (err)=>{ - if (err) { - util.destroy(body, err); - util.destroy(h2stream, err); - } else request.onRequestSent(); - }); - pipe.on('data', onPipeData); - pipe.once('end', ()=>{ - pipe.removeListener('data', onPipeData); - util.destroy(pipe); - }); - function onPipeData(chunk) { - request.onBodySent(chunk); - } - return; - } - let finished = false; - const writer = new AsyncWriter({ - socket, - request, - contentLength, - client, - expectsPayload, - header - }); - const onData = function(chunk) { - if (finished) return; - try { - if (!writer.write(chunk) && this.pause) this.pause(); - } catch (err) { - util.destroy(this, err); - } - }; - const onDrain = function() { - if (finished) return; - if (body.resume) body.resume(); - }; - const onAbort = function() { - if (finished) return; - const err = new RequestAbortedError(); - queueMicrotask(()=>onFinished(err)); - }; - const onFinished = function(err) { - if (finished) return; - finished = true; - assert(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); - socket.off('drain', onDrain).off('error', onFinished); - body.removeListener('data', onData).removeListener('end', onFinished).removeListener('error', onFinished).removeListener('close', onAbort); - if (!err) try { - writer.end(); - } catch (er) { - err = er; - } - writer.destroy(err); - if (err && ('UND_ERR_INFO' !== err.code || 'reset' !== err.message)) util.destroy(body, err); - else util.destroy(body); - }; - body.on('data', onData).on('end', onFinished).on('error', onFinished).on('close', onAbort); - if (body.resume) body.resume(); - socket.on('drain', onDrain).on('error', onFinished); - } - async function writeBlob({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(contentLength === body.size, 'blob body must have content length'); - const isH2 = 'h2' === client[kHTTPConnVersion]; - try { - if (null != contentLength && contentLength !== body.size) throw new RequestContentLengthMismatchError(); - const buffer = Buffer.from(await body.arrayBuffer()); - if (isH2) { - h2stream.cork(); - h2stream.write(buffer); - h2stream.uncork(); - } else { - socket.cork(); - socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1'); - socket.write(buffer); - socket.uncork(); - } - request.onBodySent(buffer); - request.onRequestSent(); - if (!expectsPayload) socket[kReset] = true; - resume(client); - } catch (err) { - util.destroy(isH2 ? h2stream : socket, err); - } - } - async function writeIterable({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(0 !== contentLength || 0 === client[kRunning], 'iterator body cannot be pipelined'); - let callback = null; - function onDrain() { - if (callback) { - const cb = callback; - callback = null; - cb(); - } - } - const waitForDrain = ()=>new Promise((resolve, reject)=>{ - assert(null === callback); - if (socket[kError]) reject(socket[kError]); - else callback = resolve; - }); - if ('h2' === client[kHTTPConnVersion]) { - h2stream.on('close', onDrain).on('drain', onDrain); - try { - for await (const chunk of body){ - if (socket[kError]) throw socket[kError]; - const res = h2stream.write(chunk); - request.onBodySent(chunk); - if (!res) await waitForDrain(); - } - } catch (err) { - h2stream.destroy(err); - } finally{ - request.onRequestSent(); - h2stream.end(); - h2stream.off('close', onDrain).off('drain', onDrain); - } - return; - } - socket.on('close', onDrain).on('drain', onDrain); - const writer = new AsyncWriter({ - socket, - request, - contentLength, - client, - expectsPayload, - header - }); - try { - for await (const chunk of body){ - if (socket[kError]) throw socket[kError]; - if (!writer.write(chunk)) await waitForDrain(); - } - writer.end(); - } catch (err) { - writer.destroy(err); - } finally{ - socket.off('close', onDrain).off('drain', onDrain); - } - } - class AsyncWriter { - constructor({ socket, request, contentLength, client, expectsPayload, header }){ - this.socket = socket; - this.request = request; - this.contentLength = contentLength; - this.client = client; - this.bytesWritten = 0; - this.expectsPayload = expectsPayload; - this.header = header; - socket[kWriting] = true; - } - write(chunk) { - const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this; - if (socket[kError]) throw socket[kError]; - if (socket.destroyed) return false; - const len = Buffer.byteLength(chunk); - if (!len) return true; - if (null !== contentLength && bytesWritten + len > contentLength) { - if (client[kStrictContentLength]) throw new RequestContentLengthMismatchError(); - process.emitWarning(new RequestContentLengthMismatchError()); - } - socket.cork(); - if (0 === bytesWritten) { - if (!expectsPayload) socket[kReset] = true; - if (null === contentLength) socket.write(`${header}transfer-encoding: chunked\r\n`, 'latin1'); - else socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1'); - } - if (null === contentLength) socket.write(`\r\n${len.toString(16)}\r\n`, 'latin1'); - this.bytesWritten += len; - const ret = socket.write(chunk); - socket.uncork(); - request.onBodySent(chunk); - if (!ret) { - if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { - if (socket[kParser].timeout.refresh) socket[kParser].timeout.refresh(); - } - } - return ret; - } - end() { - const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this; - request.onRequestSent(); - socket[kWriting] = false; - if (socket[kError]) throw socket[kError]; - if (socket.destroyed) return; - if (0 === bytesWritten) if (expectsPayload) socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1'); - else socket.write(`${header}\r\n`, 'latin1'); - else if (null === contentLength) socket.write('\r\n0\r\n\r\n', 'latin1'); - if (null !== contentLength && bytesWritten !== contentLength) if (client[kStrictContentLength]) throw new RequestContentLengthMismatchError(); - else process.emitWarning(new RequestContentLengthMismatchError()); - if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { - if (socket[kParser].timeout.refresh) socket[kParser].timeout.refresh(); - } - resume(client); - } - destroy(err) { - const { socket, client } = this; - socket[kWriting] = false; - if (err) { - assert(client[kRunning] <= 1, 'pipeline should only contain this request'); - util.destroy(socket, err); - } - } - } - function errorRequest(client, request, err) { - try { - request.onError(err); - assert(request.aborted); - } catch (err) { - client.emit('error', err); - } - } - module.exports = Client; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/compat/dispatcher-weakref.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kConnected, kSize } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - class CompatWeakRef { - constructor(value){ - this.value = value; - } - deref() { - return 0 === this.value[kConnected] && 0 === this.value[kSize] ? void 0 : this.value; - } - } - class CompatFinalizer { - constructor(finalizer){ - this.finalizer = finalizer; - } - register(dispatcher, key) { - if (dispatcher.on) dispatcher.on('disconnect', ()=>{ - if (0 === dispatcher[kConnected] && 0 === dispatcher[kSize]) this.finalizer(key); - }); - } - } - module.exports = function() { - if (process.env.NODE_V8_COVERAGE) return { - WeakRef: CompatWeakRef, - FinalizationRegistry: CompatFinalizer - }; - return { - WeakRef: global.WeakRef || CompatWeakRef, - FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer - }; - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/constants.js" (module) { - "use strict"; - const maxAttributeValueSize = 1024; - const maxNameValuePairSize = 4096; - module.exports = { - maxAttributeValueSize, - maxNameValuePairSize - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { parseSetCookie } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/parse.js"); - const { stringify } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/util.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { Headers } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js"); - function getCookies(headers) { - webidl.argumentLengthCheck(arguments, 1, { - header: 'getCookies' - }); - webidl.brandCheck(headers, Headers, { - strict: false - }); - const cookie = headers.get('cookie'); - const out = {}; - if (!cookie) return out; - for (const piece of cookie.split(';')){ - const [name, ...value] = piece.split('='); - out[name.trim()] = value.join('='); - } - return out; - } - function deleteCookie(headers, name, attributes) { - webidl.argumentLengthCheck(arguments, 2, { - header: 'deleteCookie' - }); - webidl.brandCheck(headers, Headers, { - strict: false - }); - name = webidl.converters.DOMString(name); - attributes = webidl.converters.DeleteCookieAttributes(attributes); - setCookie(headers, { - name, - value: '', - expires: new Date(0), - ...attributes - }); - } - function getSetCookies(headers) { - webidl.argumentLengthCheck(arguments, 1, { - header: 'getSetCookies' - }); - webidl.brandCheck(headers, Headers, { - strict: false - }); - const cookies = headers.getSetCookie(); - if (!cookies) return []; - return cookies.map((pair)=>parseSetCookie(pair)); - } - function setCookie(headers, cookie) { - webidl.argumentLengthCheck(arguments, 2, { - header: 'setCookie' - }); - webidl.brandCheck(headers, Headers, { - strict: false - }); - cookie = webidl.converters.Cookie(cookie); - const str = stringify(cookie); - if (str) headers.append('Set-Cookie', stringify(cookie)); - } - webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'path', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'domain', - defaultValue: null - } - ]); - webidl.converters.Cookie = webidl.dictionaryConverter([ - { - converter: webidl.converters.DOMString, - key: 'name' - }, - { - converter: webidl.converters.DOMString, - key: 'value' - }, - { - converter: webidl.nullableConverter((value)=>{ - if ('number' == typeof value) return webidl.converters['unsigned long long'](value); - return new Date(value); - }), - key: 'expires', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters['long long']), - key: 'maxAge', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'domain', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'path', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.boolean), - key: 'secure', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.boolean), - key: 'httpOnly', - defaultValue: null - }, - { - converter: webidl.converters.USVString, - key: 'sameSite', - allowedValues: [ - 'Strict', - 'Lax', - 'None' - ] - }, - { - converter: webidl.sequenceConverter(webidl.converters.DOMString), - key: 'unparsed', - defaultValue: [] - } - ]); - module.exports = { - getCookies, - deleteCookie, - getSetCookies, - setCookie - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/parse.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { maxNameValuePairSize, maxAttributeValueSize } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/constants.js"); - const { isCTLExcludingHtab } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/util.js"); - const { collectASequenceOfCodePointsFast } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const assert = __webpack_require__("assert"); - function parseSetCookie(header) { - if (isCTLExcludingHtab(header)) return null; - let nameValuePair = ''; - let unparsedAttributes = ''; - let name = ''; - let value = ''; - if (header.includes(';')) { - const position = { - position: 0 - }; - nameValuePair = collectASequenceOfCodePointsFast(';', header, position); - unparsedAttributes = header.slice(position.position); - } else nameValuePair = header; - if (nameValuePair.includes('=')) { - const position = { - position: 0 - }; - name = collectASequenceOfCodePointsFast('=', nameValuePair, position); - value = nameValuePair.slice(position.position + 1); - } else value = nameValuePair; - name = name.trim(); - value = value.trim(); - if (name.length + value.length > maxNameValuePairSize) return null; - return { - name, - value, - ...parseUnparsedAttributes(unparsedAttributes) - }; - } - function parseUnparsedAttributes(unparsedAttributes, cookieAttributeList = {}) { - if (0 === unparsedAttributes.length) return cookieAttributeList; - assert(';' === unparsedAttributes[0]); - unparsedAttributes = unparsedAttributes.slice(1); - let cookieAv = ''; - if (unparsedAttributes.includes(';')) { - cookieAv = collectASequenceOfCodePointsFast(';', unparsedAttributes, { - position: 0 - }); - unparsedAttributes = unparsedAttributes.slice(cookieAv.length); - } else { - cookieAv = unparsedAttributes; - unparsedAttributes = ''; - } - let attributeName = ''; - let attributeValue = ''; - if (cookieAv.includes('=')) { - const position = { - position: 0 - }; - attributeName = collectASequenceOfCodePointsFast('=', cookieAv, position); - attributeValue = cookieAv.slice(position.position + 1); - } else attributeName = cookieAv; - attributeName = attributeName.trim(); - attributeValue = attributeValue.trim(); - if (attributeValue.length > maxAttributeValueSize) return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - const attributeNameLowercase = attributeName.toLowerCase(); - if ('expires' === attributeNameLowercase) { - const expiryTime = new Date(attributeValue); - cookieAttributeList.expires = expiryTime; - } else if ('max-age' === attributeNameLowercase) { - const charCode = attributeValue.charCodeAt(0); - if ((charCode < 48 || charCode > 57) && '-' !== attributeValue[0]) return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - if (!/^\d+$/.test(attributeValue)) return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - const deltaSeconds = Number(attributeValue); - cookieAttributeList.maxAge = deltaSeconds; - } else if ('domain' === attributeNameLowercase) { - let cookieDomain = attributeValue; - if ('.' === cookieDomain[0]) cookieDomain = cookieDomain.slice(1); - cookieDomain = cookieDomain.toLowerCase(); - cookieAttributeList.domain = cookieDomain; - } else if ('path' === attributeNameLowercase) { - let cookiePath = ''; - cookiePath = 0 === attributeValue.length || '/' !== attributeValue[0] ? '/' : attributeValue; - cookieAttributeList.path = cookiePath; - } else if ('secure' === attributeNameLowercase) cookieAttributeList.secure = true; - else if ('httponly' === attributeNameLowercase) cookieAttributeList.httpOnly = true; - else if ('samesite' === attributeNameLowercase) { - let enforcement = 'Default'; - const attributeValueLowercase = attributeValue.toLowerCase(); - if (attributeValueLowercase.includes('none')) enforcement = 'None'; - if (attributeValueLowercase.includes('strict')) enforcement = 'Strict'; - if (attributeValueLowercase.includes('lax')) enforcement = 'Lax'; - cookieAttributeList.sameSite = enforcement; - } else { - cookieAttributeList.unparsed ??= []; - cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`); - } - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - } - module.exports = { - parseSetCookie, - parseUnparsedAttributes - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/util.js" (module) { - "use strict"; - function isCTLExcludingHtab(value) { - if (0 === value.length) return false; - for (const char of value){ - const code = char.charCodeAt(0); - if (code >= 0x00 || code <= 0x08 || code >= 0x0A || code <= 0x1F || 0x7F === code) return false; - } - } - function validateCookieName(name) { - for (const char of name){ - const code = char.charCodeAt(0); - if (code <= 0x20 || code > 0x7F || '(' === char || ')' === char || '>' === char || '<' === char || '@' === char || ',' === char || ';' === char || ':' === char || '\\' === char || '"' === char || '/' === char || '[' === char || ']' === char || '?' === char || '=' === char || '{' === char || '}' === char) throw new Error('Invalid cookie name'); - } - } - function validateCookieValue(value) { - for (const char of value){ - const code = char.charCodeAt(0); - if (code < 0x21 || 0x22 === code || 0x2C === code || 0x3B === code || 0x5C === code || code > 0x7E) throw new Error('Invalid header value'); - } - } - function validateCookiePath(path) { - for (const char of path){ - const code = char.charCodeAt(0); - if (code < 0x21 || ';' === char) throw new Error('Invalid cookie path'); - } - } - function validateCookieDomain(domain) { - if (domain.startsWith('-') || domain.endsWith('.') || domain.endsWith('-')) throw new Error('Invalid cookie domain'); - } - function toIMFDate(date) { - if ('number' == typeof date) date = new Date(date); - const days = [ - 'Sun', - 'Mon', - 'Tue', - 'Wed', - 'Thu', - 'Fri', - 'Sat' - ]; - const months = [ - 'Jan', - 'Feb', - 'Mar', - 'Apr', - 'May', - 'Jun', - 'Jul', - 'Aug', - 'Sep', - 'Oct', - 'Nov', - 'Dec' - ]; - const dayName = days[date.getUTCDay()]; - const day = date.getUTCDate().toString().padStart(2, '0'); - const month = months[date.getUTCMonth()]; - const year = date.getUTCFullYear(); - const hour = date.getUTCHours().toString().padStart(2, '0'); - const minute = date.getUTCMinutes().toString().padStart(2, '0'); - const second = date.getUTCSeconds().toString().padStart(2, '0'); - return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`; - } - function validateCookieMaxAge(maxAge) { - if (maxAge < 0) throw new Error('Invalid cookie max-age'); - } - function stringify(cookie) { - if (0 === cookie.name.length) return null; - validateCookieName(cookie.name); - validateCookieValue(cookie.value); - const out = [ - `${cookie.name}=${cookie.value}` - ]; - if (cookie.name.startsWith('__Secure-')) cookie.secure = true; - if (cookie.name.startsWith('__Host-')) { - cookie.secure = true; - cookie.domain = null; - cookie.path = '/'; - } - if (cookie.secure) out.push('Secure'); - if (cookie.httpOnly) out.push('HttpOnly'); - if ('number' == typeof cookie.maxAge) { - validateCookieMaxAge(cookie.maxAge); - out.push(`Max-Age=${cookie.maxAge}`); - } - if (cookie.domain) { - validateCookieDomain(cookie.domain); - out.push(`Domain=${cookie.domain}`); - } - if (cookie.path) { - validateCookiePath(cookie.path); - out.push(`Path=${cookie.path}`); - } - if (cookie.expires && 'Invalid Date' !== cookie.expires.toString()) out.push(`Expires=${toIMFDate(cookie.expires)}`); - if (cookie.sameSite) out.push(`SameSite=${cookie.sameSite}`); - for (const part of cookie.unparsed){ - if (!part.includes('=')) throw new Error('Invalid unparsed'); - const [key, ...value] = part.split('='); - out.push(`${key.trim()}=${value.join('=')}`); - } - return out.join('; '); - } - module.exports = { - isCTLExcludingHtab, - validateCookieName, - validateCookiePath, - validateCookieValue, - toIMFDate, - stringify - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/connect.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const net = __webpack_require__("net"); - const assert = __webpack_require__("assert"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { InvalidArgumentError, ConnectTimeoutError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - let tls; - let SessionCache; - SessionCache = global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE ? class { - constructor(maxCachedSessions){ - this._maxCachedSessions = maxCachedSessions; - this._sessionCache = new Map(); - this._sessionRegistry = new global.FinalizationRegistry((key)=>{ - if (this._sessionCache.size < this._maxCachedSessions) return; - const ref = this._sessionCache.get(key); - if (void 0 !== ref && void 0 === ref.deref()) this._sessionCache.delete(key); - }); - } - get(sessionKey) { - const ref = this._sessionCache.get(sessionKey); - return ref ? ref.deref() : null; - } - set(sessionKey, session) { - if (0 === this._maxCachedSessions) return; - this._sessionCache.set(sessionKey, new WeakRef(session)); - this._sessionRegistry.register(session, sessionKey); - } - } : class { - constructor(maxCachedSessions){ - this._maxCachedSessions = maxCachedSessions; - this._sessionCache = new Map(); - } - get(sessionKey) { - return this._sessionCache.get(sessionKey); - } - set(sessionKey, session) { - if (0 === this._maxCachedSessions) return; - if (this._sessionCache.size >= this._maxCachedSessions) { - const { value: oldestKey } = this._sessionCache.keys().next(); - this._sessionCache.delete(oldestKey); - } - this._sessionCache.set(sessionKey, session); - } - }; - function buildConnector({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) { - if (null != maxCachedSessions && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero'); - const options = { - path: socketPath, - ...opts - }; - const sessionCache = new SessionCache(null == maxCachedSessions ? 100 : maxCachedSessions); - timeout = null == timeout ? 10e3 : timeout; - allowH2 = null != allowH2 ? allowH2 : false; - return function({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { - let socket; - if ('https:' === protocol) { - if (!tls) tls = __webpack_require__("tls"); - servername = servername || options.servername || util.getServerName(host) || null; - const sessionKey = servername || hostname; - const session = sessionCache.get(sessionKey) || null; - assert(sessionKey); - socket = tls.connect({ - highWaterMark: 16384, - ...options, - servername, - session, - localAddress, - ALPNProtocols: allowH2 ? [ - 'http/1.1', - 'h2' - ] : [ - 'http/1.1' - ], - socket: httpSocket, - port: port || 443, - host: hostname - }); - socket.on('session', function(session) { - sessionCache.set(sessionKey, session); - }); - } else { - assert(!httpSocket, 'httpSocket can only be sent on TLS update'); - socket = net.connect({ - highWaterMark: 65536, - ...options, - localAddress, - port: port || 80, - host: hostname - }); - } - if (null == options.keepAlive || options.keepAlive) { - const keepAliveInitialDelay = void 0 === options.keepAliveInitialDelay ? 60e3 : options.keepAliveInitialDelay; - socket.setKeepAlive(true, keepAliveInitialDelay); - } - const cancelTimeout = setupTimeout(()=>onConnectTimeout(socket), timeout); - socket.setNoDelay(true).once('https:' === protocol ? 'secureConnect' : 'connect', function() { - cancelTimeout(); - if (callback) { - const cb = callback; - callback = null; - cb(null, this); - } - }).on('error', function(err) { - cancelTimeout(); - if (callback) { - const cb = callback; - callback = null; - cb(err); - } - }); - return socket; - }; - } - function setupTimeout(onConnectTimeout, timeout) { - if (!timeout) return ()=>{}; - let s1 = null; - let s2 = null; - const timeoutId = setTimeout(()=>{ - s1 = setImmediate(()=>{ - if ('win32' === process.platform) s2 = setImmediate(()=>onConnectTimeout()); - else onConnectTimeout(); - }); - }, timeout); - return ()=>{ - clearTimeout(timeoutId); - clearImmediate(s1); - clearImmediate(s2); - }; - } - function onConnectTimeout(socket) { - util.destroy(socket, new ConnectTimeoutError()); - } - module.exports = buildConnector; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/constants.js" (module) { - "use strict"; - const headerNameLowerCasedRecord = {}; - const wellknownHeaderNames = [ - 'Accept', - 'Accept-Encoding', - 'Accept-Language', - 'Accept-Ranges', - 'Access-Control-Allow-Credentials', - 'Access-Control-Allow-Headers', - 'Access-Control-Allow-Methods', - 'Access-Control-Allow-Origin', - 'Access-Control-Expose-Headers', - 'Access-Control-Max-Age', - 'Access-Control-Request-Headers', - 'Access-Control-Request-Method', - 'Age', - 'Allow', - 'Alt-Svc', - 'Alt-Used', - 'Authorization', - 'Cache-Control', - 'Clear-Site-Data', - 'Connection', - 'Content-Disposition', - 'Content-Encoding', - 'Content-Language', - 'Content-Length', - 'Content-Location', - 'Content-Range', - 'Content-Security-Policy', - 'Content-Security-Policy-Report-Only', - 'Content-Type', - 'Cookie', - 'Cross-Origin-Embedder-Policy', - 'Cross-Origin-Opener-Policy', - 'Cross-Origin-Resource-Policy', - 'Date', - 'Device-Memory', - 'Downlink', - 'ECT', - 'ETag', - 'Expect', - 'Expect-CT', - 'Expires', - 'Forwarded', - 'From', - 'Host', - 'If-Match', - 'If-Modified-Since', - 'If-None-Match', - 'If-Range', - 'If-Unmodified-Since', - 'Keep-Alive', - 'Last-Modified', - 'Link', - 'Location', - 'Max-Forwards', - 'Origin', - 'Permissions-Policy', - 'Pragma', - 'Proxy-Authenticate', - 'Proxy-Authorization', - 'RTT', - 'Range', - 'Referer', - 'Referrer-Policy', - 'Refresh', - 'Retry-After', - 'Sec-WebSocket-Accept', - 'Sec-WebSocket-Extensions', - 'Sec-WebSocket-Key', - 'Sec-WebSocket-Protocol', - 'Sec-WebSocket-Version', - 'Server', - 'Server-Timing', - 'Service-Worker-Allowed', - 'Service-Worker-Navigation-Preload', - 'Set-Cookie', - 'SourceMap', - 'Strict-Transport-Security', - 'Supports-Loading-Mode', - 'TE', - 'Timing-Allow-Origin', - 'Trailer', - 'Transfer-Encoding', - 'Upgrade', - 'Upgrade-Insecure-Requests', - 'User-Agent', - 'Vary', - 'Via', - 'WWW-Authenticate', - 'X-Content-Type-Options', - 'X-DNS-Prefetch-Control', - 'X-Frame-Options', - 'X-Permitted-Cross-Domain-Policies', - 'X-Powered-By', - 'X-Requested-With', - 'X-XSS-Protection' - ]; - for(let i = 0; i < wellknownHeaderNames.length; ++i){ - const key = wellknownHeaderNames[i]; - const lowerCasedKey = key.toLowerCase(); - headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = lowerCasedKey; - } - Object.setPrototypeOf(headerNameLowerCasedRecord, null); - module.exports = { - wellknownHeaderNames, - headerNameLowerCasedRecord - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js" (module) { - "use strict"; - class UndiciError extends Error { - constructor(message){ - super(message); - this.name = 'UndiciError'; - this.code = 'UND_ERR'; - } - } - class ConnectTimeoutError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, ConnectTimeoutError); - this.name = 'ConnectTimeoutError'; - this.message = message || 'Connect Timeout Error'; - this.code = 'UND_ERR_CONNECT_TIMEOUT'; - } - } - class HeadersTimeoutError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, HeadersTimeoutError); - this.name = 'HeadersTimeoutError'; - this.message = message || 'Headers Timeout Error'; - this.code = 'UND_ERR_HEADERS_TIMEOUT'; - } - } - class HeadersOverflowError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, HeadersOverflowError); - this.name = 'HeadersOverflowError'; - this.message = message || 'Headers Overflow Error'; - this.code = 'UND_ERR_HEADERS_OVERFLOW'; - } - } - class BodyTimeoutError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, BodyTimeoutError); - this.name = 'BodyTimeoutError'; - this.message = message || 'Body Timeout Error'; - this.code = 'UND_ERR_BODY_TIMEOUT'; - } - } - class ResponseStatusCodeError extends UndiciError { - constructor(message, statusCode, headers, body){ - super(message); - Error.captureStackTrace(this, ResponseStatusCodeError); - this.name = 'ResponseStatusCodeError'; - this.message = message || 'Response Status Code Error'; - this.code = 'UND_ERR_RESPONSE_STATUS_CODE'; - this.body = body; - this.status = statusCode; - this.statusCode = statusCode; - this.headers = headers; - } - } - class InvalidArgumentError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, InvalidArgumentError); - this.name = 'InvalidArgumentError'; - this.message = message || 'Invalid Argument Error'; - this.code = 'UND_ERR_INVALID_ARG'; - } - } - class InvalidReturnValueError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, InvalidReturnValueError); - this.name = 'InvalidReturnValueError'; - this.message = message || 'Invalid Return Value Error'; - this.code = 'UND_ERR_INVALID_RETURN_VALUE'; - } - } - class RequestAbortedError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, RequestAbortedError); - this.name = 'AbortError'; - this.message = message || 'Request aborted'; - this.code = 'UND_ERR_ABORTED'; - } - } - class InformationalError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, InformationalError); - this.name = 'InformationalError'; - this.message = message || 'Request information'; - this.code = 'UND_ERR_INFO'; - } - } - class RequestContentLengthMismatchError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, RequestContentLengthMismatchError); - this.name = 'RequestContentLengthMismatchError'; - this.message = message || 'Request body length does not match content-length header'; - this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'; - } - } - class ResponseContentLengthMismatchError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, ResponseContentLengthMismatchError); - this.name = 'ResponseContentLengthMismatchError'; - this.message = message || 'Response body length does not match content-length header'; - this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'; - } - } - class ClientDestroyedError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, ClientDestroyedError); - this.name = 'ClientDestroyedError'; - this.message = message || 'The client is destroyed'; - this.code = 'UND_ERR_DESTROYED'; - } - } - class ClientClosedError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, ClientClosedError); - this.name = 'ClientClosedError'; - this.message = message || 'The client is closed'; - this.code = 'UND_ERR_CLOSED'; - } - } - class SocketError extends UndiciError { - constructor(message, socket){ - super(message); - Error.captureStackTrace(this, SocketError); - this.name = 'SocketError'; - this.message = message || 'Socket error'; - this.code = 'UND_ERR_SOCKET'; - this.socket = socket; - } - } - class NotSupportedError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, NotSupportedError); - this.name = 'NotSupportedError'; - this.message = message || 'Not supported error'; - this.code = 'UND_ERR_NOT_SUPPORTED'; - } - } - class BalancedPoolMissingUpstreamError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, NotSupportedError); - this.name = 'MissingUpstreamError'; - this.message = message || 'No upstream has been added to the BalancedPool'; - this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'; - } - } - class HTTPParserError extends Error { - constructor(message, code, data){ - super(message); - Error.captureStackTrace(this, HTTPParserError); - this.name = 'HTTPParserError'; - this.code = code ? `HPE_${code}` : void 0; - this.data = data ? data.toString() : void 0; - } - } - class ResponseExceededMaxSizeError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, ResponseExceededMaxSizeError); - this.name = 'ResponseExceededMaxSizeError'; - this.message = message || 'Response content exceeded max size'; - this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'; - } - } - class RequestRetryError extends UndiciError { - constructor(message, code, { headers, data }){ - super(message); - Error.captureStackTrace(this, RequestRetryError); - this.name = 'RequestRetryError'; - this.message = message || 'Request retry error'; - this.code = 'UND_ERR_REQ_RETRY'; - this.statusCode = code; - this.data = data; - this.headers = headers; - } - } - module.exports = { - HTTPParserError, - UndiciError, - HeadersTimeoutError, - HeadersOverflowError, - BodyTimeoutError, - RequestContentLengthMismatchError, - ConnectTimeoutError, - ResponseStatusCodeError, - InvalidArgumentError, - InvalidReturnValueError, - RequestAbortedError, - ClientDestroyedError, - ClientClosedError, - InformationalError, - SocketError, - NotSupportedError, - ResponseContentLengthMismatchError, - BalancedPoolMissingUpstreamError, - ResponseExceededMaxSizeError, - RequestRetryError - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/request.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { InvalidArgumentError, NotSupportedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const assert = __webpack_require__("assert"); - const { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/; - const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; - const invalidPathRegex = /[^\u0021-\u00ff]/; - const kHandler = Symbol('handler'); - const channels = {}; - let extractBody; - try { - const diagnosticsChannel = __webpack_require__("diagnostics_channel"); - channels.create = diagnosticsChannel.channel('undici:request:create'); - channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent'); - channels.headers = diagnosticsChannel.channel('undici:request:headers'); - channels.trailers = diagnosticsChannel.channel('undici:request:trailers'); - channels.error = diagnosticsChannel.channel('undici:request:error'); - } catch { - channels.create = { - hasSubscribers: false - }; - channels.bodySent = { - hasSubscribers: false - }; - channels.headers = { - hasSubscribers: false - }; - channels.trailers = { - hasSubscribers: false - }; - channels.error = { - hasSubscribers: false - }; - } - class Request { - constructor(origin, { path, method, body, headers, query, idempotent, blocking, upgrade, headersTimeout, bodyTimeout, reset, throwOnError, expectContinue }, handler){ - if ('string' != typeof path) throw new InvalidArgumentError('path must be a string'); - if ('/' === path[0] || path.startsWith('http://') || path.startsWith('https://') || 'CONNECT' === method) { - if (null !== invalidPathRegex.exec(path)) throw new InvalidArgumentError('invalid request path'); - } else throw new InvalidArgumentError('path must be an absolute URL or start with a slash'); - if ('string' != typeof method) throw new InvalidArgumentError('method must be a string'); - if (null === tokenRegExp.exec(method)) throw new InvalidArgumentError('invalid request method'); - if (upgrade && 'string' != typeof upgrade) throw new InvalidArgumentError('upgrade must be a string'); - if (null != headersTimeout && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) throw new InvalidArgumentError('invalid headersTimeout'); - if (null != bodyTimeout && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) throw new InvalidArgumentError('invalid bodyTimeout'); - if (null != reset && 'boolean' != typeof reset) throw new InvalidArgumentError('invalid reset'); - if (null != expectContinue && 'boolean' != typeof expectContinue) throw new InvalidArgumentError('invalid expectContinue'); - this.headersTimeout = headersTimeout; - this.bodyTimeout = bodyTimeout; - this.throwOnError = true === throwOnError; - this.method = method; - this.abort = null; - if (null == body) this.body = null; - else if (util.isStream(body)) { - this.body = body; - const rState = this.body._readableState; - if (!rState || !rState.autoDestroy) { - this.endHandler = function() { - util.destroy(this); - }; - this.body.on('end', this.endHandler); - } - this.errorHandler = (err)=>{ - if (this.abort) this.abort(err); - else this.error = err; - }; - this.body.on('error', this.errorHandler); - } else if (util.isBuffer(body)) this.body = body.byteLength ? body : null; - else if (ArrayBuffer.isView(body)) this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null; - else if (body instanceof ArrayBuffer) this.body = body.byteLength ? Buffer.from(body) : null; - else if ('string' == typeof body) this.body = body.length ? Buffer.from(body) : null; - else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) this.body = body; - else throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable'); - this.completed = false; - this.aborted = false; - this.upgrade = upgrade || null; - this.path = query ? util.buildURL(path, query) : path; - this.origin = origin; - this.idempotent = null == idempotent ? 'HEAD' === method || 'GET' === method : idempotent; - this.blocking = null == blocking ? false : blocking; - this.reset = null == reset ? null : reset; - this.host = null; - this.contentLength = null; - this.contentType = null; - this.headers = ''; - this.expectContinue = null != expectContinue ? expectContinue : false; - if (Array.isArray(headers)) { - if (headers.length % 2 !== 0) throw new InvalidArgumentError('headers array must be even'); - for(let i = 0; i < headers.length; i += 2)processHeader(this, headers[i], headers[i + 1]); - } else if (headers && 'object' == typeof headers) { - const keys = Object.keys(headers); - for(let i = 0; i < keys.length; i++){ - const key = keys[i]; - processHeader(this, key, headers[key]); - } - } else if (null != headers) throw new InvalidArgumentError('headers must be an object or an array'); - if (util.isFormDataLike(this.body)) { - if (util.nodeMajor < 16 || 16 === util.nodeMajor && util.nodeMinor < 8) throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.'); - if (!extractBody) extractBody = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/body.js").extractBody; - const [bodyStream, contentType] = extractBody(body); - if (null == this.contentType) { - this.contentType = contentType; - this.headers += `content-type: ${contentType}\r\n`; - } - this.body = bodyStream.stream; - this.contentLength = bodyStream.length; - } else if (util.isBlobLike(body) && null == this.contentType && body.type) { - this.contentType = body.type; - this.headers += `content-type: ${body.type}\r\n`; - } - util.validateHandler(handler, method, upgrade); - this.servername = util.getServerName(this.host); - this[kHandler] = handler; - if (channels.create.hasSubscribers) channels.create.publish({ - request: this - }); - } - onBodySent(chunk) { - if (this[kHandler].onBodySent) try { - return this[kHandler].onBodySent(chunk); - } catch (err) { - this.abort(err); - } - } - onRequestSent() { - if (channels.bodySent.hasSubscribers) channels.bodySent.publish({ - request: this - }); - if (this[kHandler].onRequestSent) try { - return this[kHandler].onRequestSent(); - } catch (err) { - this.abort(err); - } - } - onConnect(abort) { - assert(!this.aborted); - assert(!this.completed); - if (this.error) abort(this.error); - else { - this.abort = abort; - return this[kHandler].onConnect(abort); - } - } - onHeaders(statusCode, headers, resume, statusText) { - assert(!this.aborted); - assert(!this.completed); - if (channels.headers.hasSubscribers) channels.headers.publish({ - request: this, - response: { - statusCode, - headers, - statusText - } - }); - try { - return this[kHandler].onHeaders(statusCode, headers, resume, statusText); - } catch (err) { - this.abort(err); - } - } - onData(chunk) { - assert(!this.aborted); - assert(!this.completed); - try { - return this[kHandler].onData(chunk); - } catch (err) { - this.abort(err); - return false; - } - } - onUpgrade(statusCode, headers, socket) { - assert(!this.aborted); - assert(!this.completed); - return this[kHandler].onUpgrade(statusCode, headers, socket); - } - onComplete(trailers) { - this.onFinally(); - assert(!this.aborted); - this.completed = true; - if (channels.trailers.hasSubscribers) channels.trailers.publish({ - request: this, - trailers - }); - try { - return this[kHandler].onComplete(trailers); - } catch (err) { - this.onError(err); - } - } - onError(error) { - this.onFinally(); - if (channels.error.hasSubscribers) channels.error.publish({ - request: this, - error - }); - if (this.aborted) return; - this.aborted = true; - return this[kHandler].onError(error); - } - onFinally() { - if (this.errorHandler) { - this.body.off('error', this.errorHandler); - this.errorHandler = null; - } - if (this.endHandler) { - this.body.off('end', this.endHandler); - this.endHandler = null; - } - } - addHeader(key, value) { - processHeader(this, key, value); - return this; - } - static [kHTTP1BuildRequest](origin, opts, handler) { - return new Request(origin, opts, handler); - } - static [kHTTP2BuildRequest](origin, opts, handler) { - const headers = opts.headers; - opts = { - ...opts, - headers: null - }; - const request = new Request(origin, opts, handler); - request.headers = {}; - if (Array.isArray(headers)) { - if (headers.length % 2 !== 0) throw new InvalidArgumentError('headers array must be even'); - for(let i = 0; i < headers.length; i += 2)processHeader(request, headers[i], headers[i + 1], true); - } else if (headers && 'object' == typeof headers) { - const keys = Object.keys(headers); - for(let i = 0; i < keys.length; i++){ - const key = keys[i]; - processHeader(request, key, headers[key], true); - } - } else if (null != headers) throw new InvalidArgumentError('headers must be an object or an array'); - return request; - } - static [kHTTP2CopyHeaders](raw) { - const rawHeaders = raw.split('\r\n'); - const headers = {}; - for (const header of rawHeaders){ - const [key, value] = header.split(': '); - if (null != value && 0 !== value.length) if (headers[key]) headers[key] += `,${value}`; - else headers[key] = value; - } - return headers; - } - } - function processHeaderValue(key, val, skipAppend) { - if (val && 'object' == typeof val) throw new InvalidArgumentError(`invalid ${key} header`); - val = null != val ? `${val}` : ''; - if (null !== headerCharRegex.exec(val)) throw new InvalidArgumentError(`invalid ${key} header`); - return skipAppend ? val : `${key}: ${val}\r\n`; - } - function processHeader(request, key, val, skipAppend = false) { - if (val && 'object' == typeof val && !Array.isArray(val)) throw new InvalidArgumentError(`invalid ${key} header`); - if (void 0 === val) return; - if (null === request.host && 4 === key.length && 'host' === key.toLowerCase()) { - if (null !== headerCharRegex.exec(val)) throw new InvalidArgumentError(`invalid ${key} header`); - request.host = val; - } else if (null === request.contentLength && 14 === key.length && 'content-length' === key.toLowerCase()) { - request.contentLength = parseInt(val, 10); - if (!Number.isFinite(request.contentLength)) throw new InvalidArgumentError('invalid content-length header'); - } else if (null === request.contentType && 12 === key.length && 'content-type' === key.toLowerCase()) { - request.contentType = val; - if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend); - else request.headers += processHeaderValue(key, val); - } else if (17 === key.length && 'transfer-encoding' === key.toLowerCase()) throw new InvalidArgumentError('invalid transfer-encoding header'); - else if (10 === key.length && 'connection' === key.toLowerCase()) { - const value = 'string' == typeof val ? val.toLowerCase() : null; - if ('close' !== value && 'keep-alive' !== value) throw new InvalidArgumentError('invalid connection header'); - if ('close' === value) request.reset = true; - } else if (10 === key.length && 'keep-alive' === key.toLowerCase()) throw new InvalidArgumentError('invalid keep-alive header'); - else if (7 === key.length && 'upgrade' === key.toLowerCase()) throw new InvalidArgumentError('invalid upgrade header'); - else if (6 === key.length && 'expect' === key.toLowerCase()) throw new NotSupportedError('expect header not supported'); - else if (null === tokenRegExp.exec(key)) throw new InvalidArgumentError('invalid header key'); - else if (Array.isArray(val)) for(let i = 0; i < val.length; i++)if (skipAppend) if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}`; - else request.headers[key] = processHeaderValue(key, val[i], skipAppend); - else request.headers += processHeaderValue(key, val[i]); - else if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend); - else request.headers += processHeaderValue(key, val); - } - module.exports = Request; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js" (module) { - module.exports = { - kClose: Symbol('close'), - kDestroy: Symbol('destroy'), - kDispatch: Symbol('dispatch'), - kUrl: Symbol('url'), - kWriting: Symbol('writing'), - kResuming: Symbol('resuming'), - kQueue: Symbol('queue'), - kConnect: Symbol('connect'), - kConnecting: Symbol('connecting'), - kHeadersList: Symbol('headers list'), - kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'), - kKeepAliveMaxTimeout: Symbol('max keep alive timeout'), - kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'), - kKeepAliveTimeoutValue: Symbol('keep alive timeout'), - kKeepAlive: Symbol('keep alive'), - kHeadersTimeout: Symbol('headers timeout'), - kBodyTimeout: Symbol('body timeout'), - kServerName: Symbol('server name'), - kLocalAddress: Symbol('local address'), - kHost: Symbol('host'), - kNoRef: Symbol('no ref'), - kBodyUsed: Symbol('used'), - kRunning: Symbol('running'), - kBlocking: Symbol('blocking'), - kPending: Symbol('pending'), - kSize: Symbol('size'), - kBusy: Symbol('busy'), - kQueued: Symbol('queued'), - kFree: Symbol('free'), - kConnected: Symbol('connected'), - kClosed: Symbol('closed'), - kNeedDrain: Symbol('need drain'), - kReset: Symbol('reset'), - kDestroyed: Symbol.for('nodejs.stream.destroyed'), - kMaxHeadersSize: Symbol('max headers size'), - kRunningIdx: Symbol('running index'), - kPendingIdx: Symbol('pending index'), - kError: Symbol('error'), - kClients: Symbol('clients'), - kClient: Symbol('client'), - kParser: Symbol('parser'), - kOnDestroyed: Symbol('destroy callbacks'), - kPipelining: Symbol('pipelining'), - kSocket: Symbol('socket'), - kHostHeader: Symbol('host header'), - kConnector: Symbol('connector'), - kStrictContentLength: Symbol('strict content length'), - kMaxRedirections: Symbol('maxRedirections'), - kMaxRequests: Symbol('maxRequestsPerClient'), - kProxy: Symbol('proxy agent options'), - kCounter: Symbol('socket request counter'), - kInterceptors: Symbol('dispatch interceptors'), - kMaxResponseSize: Symbol('max response size'), - kHTTP2Session: Symbol('http2Session'), - kHTTP2SessionState: Symbol('http2Session state'), - kHTTP2BuildRequest: Symbol('http2 build request'), - kHTTP1BuildRequest: Symbol('http1 build request'), - kHTTP2CopyHeaders: Symbol('http2 copy headers'), - kHTTPConnVersion: Symbol('http connection version'), - kRetryHandlerDefaultRetry: Symbol('retry agent default retry'), - kConstruct: Symbol('constructable') - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const assert = __webpack_require__("assert"); - const { kDestroyed, kBodyUsed } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { IncomingMessage } = __webpack_require__("http"); - const stream = __webpack_require__("stream"); - const net = __webpack_require__("net"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { Blob: Blob1 } = __webpack_require__("buffer"); - const nodeUtil = __webpack_require__("util"); - const { stringify } = __webpack_require__("querystring"); - const { headerNameLowerCasedRecord } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/constants.js"); - const [nodeMajor, nodeMinor] = process.versions.node.split('.').map((v)=>Number(v)); - function nop() {} - function isStream(obj) { - return obj && 'object' == typeof obj && 'function' == typeof obj.pipe && 'function' == typeof obj.on; - } - function isBlobLike(object) { - return Blob1 && object instanceof Blob1 || object && 'object' == typeof object && ('function' == typeof object.stream || 'function' == typeof object.arrayBuffer) && /^(Blob|File)$/.test(object[Symbol.toStringTag]); - } - function buildURL(url, queryParams) { - if (url.includes('?') || url.includes('#')) throw new Error('Query params cannot be passed when url already contains "?" or "#".'); - const stringified = stringify(queryParams); - if (stringified) url += '?' + stringified; - return url; - } - function parseURL(url) { - if ('string' == typeof url) { - url = new URL(url); - if (!/^https?:/.test(url.origin || url.protocol)) throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.'); - return url; - } - if (!url || 'object' != typeof url) throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.'); - if (!/^https?:/.test(url.origin || url.protocol)) throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.'); - if (!(url instanceof URL)) { - if (null != url.port && '' !== url.port && !Number.isFinite(parseInt(url.port))) throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.'); - if (null != url.path && 'string' != typeof url.path) throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.'); - if (null != url.pathname && 'string' != typeof url.pathname) throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.'); - if (null != url.hostname && 'string' != typeof url.hostname) throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.'); - if (null != url.origin && 'string' != typeof url.origin) throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.'); - const port = null != url.port ? url.port : 'https:' === url.protocol ? 443 : 80; - let origin = null != url.origin ? url.origin : `${url.protocol}//${url.hostname}:${port}`; - let path = null != url.path ? url.path : `${url.pathname || ''}${url.search || ''}`; - if (origin.endsWith('/')) origin = origin.substring(0, origin.length - 1); - if (path && !path.startsWith('/')) path = `/${path}`; - url = new URL(origin + path); - } - return url; - } - function parseOrigin(url) { - url = parseURL(url); - if ('/' !== url.pathname || url.search || url.hash) throw new InvalidArgumentError('invalid url'); - return url; - } - function getHostname(host) { - if ('[' === host[0]) { - const idx = host.indexOf(']'); - assert(-1 !== idx); - return host.substring(1, idx); - } - const idx = host.indexOf(':'); - if (-1 === idx) return host; - return host.substring(0, idx); - } - function getServerName(host) { - if (!host) return null; - assert.strictEqual(typeof host, 'string'); - const servername = getHostname(host); - if (net.isIP(servername)) return ''; - return servername; - } - function deepClone(obj) { - return JSON.parse(JSON.stringify(obj)); - } - function isAsyncIterable(obj) { - return !!(null != obj && 'function' == typeof obj[Symbol.asyncIterator]); - } - function isIterable(obj) { - return !!(null != obj && ('function' == typeof obj[Symbol.iterator] || 'function' == typeof obj[Symbol.asyncIterator])); - } - function bodyLength(body) { - if (null == body) return 0; - if (isStream(body)) { - const state = body._readableState; - return state && false === state.objectMode && true === state.ended && Number.isFinite(state.length) ? state.length : null; - } - if (isBlobLike(body)) return null != body.size ? body.size : null; - if (isBuffer(body)) return body.byteLength; - return null; - } - function isDestroyed(stream) { - return !stream || !!(stream.destroyed || stream[kDestroyed]); - } - function isReadableAborted(stream) { - const state = stream && stream._readableState; - return isDestroyed(stream) && state && !state.endEmitted; - } - function destroy(stream, err) { - if (null == stream || !isStream(stream) || isDestroyed(stream)) return; - if ('function' == typeof stream.destroy) { - if (Object.getPrototypeOf(stream).constructor === IncomingMessage) stream.socket = null; - stream.destroy(err); - } else if (err) process.nextTick((stream, err)=>{ - stream.emit('error', err); - }, stream, err); - if (true !== stream.destroyed) stream[kDestroyed] = true; - } - const KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/; - function parseKeepAliveTimeout(val) { - const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR); - return m ? 1000 * parseInt(m[1], 10) : null; - } - function headerNameToString(value) { - return headerNameLowerCasedRecord[value] || value.toLowerCase(); - } - function parseHeaders(headers, obj = {}) { - if (!Array.isArray(headers)) return headers; - for(let i = 0; i < headers.length; i += 2){ - const key = headers[i].toString().toLowerCase(); - let val = obj[key]; - if (val) { - if (!Array.isArray(val)) { - val = [ - val - ]; - obj[key] = val; - } - val.push(headers[i + 1].toString('utf8')); - } else if (Array.isArray(headers[i + 1])) obj[key] = headers[i + 1].map((x)=>x.toString('utf8')); - else obj[key] = headers[i + 1].toString('utf8'); - } - if ('content-length' in obj && 'content-disposition' in obj) obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1'); - return obj; - } - function parseRawHeaders(headers) { - const ret = []; - let hasContentLength = false; - let contentDispositionIdx = -1; - for(let n = 0; n < headers.length; n += 2){ - const key = headers[n + 0].toString(); - const val = headers[n + 1].toString('utf8'); - if (14 === key.length && ('content-length' === key || 'content-length' === key.toLowerCase())) { - ret.push(key, val); - hasContentLength = true; - } else if (19 === key.length && ('content-disposition' === key || 'content-disposition' === key.toLowerCase())) contentDispositionIdx = ret.push(key, val) - 1; - else ret.push(key, val); - } - if (hasContentLength && -1 !== contentDispositionIdx) ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1'); - return ret; - } - function isBuffer(buffer) { - return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); - } - function validateHandler(handler, method, upgrade) { - if (!handler || 'object' != typeof handler) throw new InvalidArgumentError('handler must be an object'); - if ('function' != typeof handler.onConnect) throw new InvalidArgumentError('invalid onConnect method'); - if ('function' != typeof handler.onError) throw new InvalidArgumentError('invalid onError method'); - if ('function' != typeof handler.onBodySent && void 0 !== handler.onBodySent) throw new InvalidArgumentError('invalid onBodySent method'); - if (upgrade || 'CONNECT' === method) { - if ('function' != typeof handler.onUpgrade) throw new InvalidArgumentError('invalid onUpgrade method'); - } else { - if ('function' != typeof handler.onHeaders) throw new InvalidArgumentError('invalid onHeaders method'); - if ('function' != typeof handler.onData) throw new InvalidArgumentError('invalid onData method'); - if ('function' != typeof handler.onComplete) throw new InvalidArgumentError('invalid onComplete method'); - } - } - function isDisturbed(body) { - return !!(body && (stream.isDisturbed ? stream.isDisturbed(body) || body[kBodyUsed] : body[kBodyUsed] || body.readableDidRead || body._readableState && body._readableState.dataEmitted || isReadableAborted(body))); - } - function isErrored(body) { - return !!(body && (stream.isErrored ? stream.isErrored(body) : /state: 'errored'/.test(nodeUtil.inspect(body)))); - } - function isReadable(body) { - return !!(body && (stream.isReadable ? stream.isReadable(body) : /state: 'readable'/.test(nodeUtil.inspect(body)))); - } - function getSocketInfo(socket) { - return { - localAddress: socket.localAddress, - localPort: socket.localPort, - remoteAddress: socket.remoteAddress, - remotePort: socket.remotePort, - remoteFamily: socket.remoteFamily, - timeout: socket.timeout, - bytesWritten: socket.bytesWritten, - bytesRead: socket.bytesRead - }; - } - async function* convertIterableToBuffer(iterable) { - for await (const chunk of iterable)yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk); - } - let ReadableStream1; - function ReadableStreamFrom(iterable) { - if (!ReadableStream1) ReadableStream1 = __webpack_require__("stream/web").ReadableStream; - if (ReadableStream1.from) return ReadableStream1.from(convertIterableToBuffer(iterable)); - let iterator; - return new ReadableStream1({ - async start () { - iterator = iterable[Symbol.asyncIterator](); - }, - async pull (controller) { - const { done, value } = await iterator.next(); - if (done) queueMicrotask(()=>{ - controller.close(); - }); - else { - const buf = Buffer.isBuffer(value) ? value : Buffer.from(value); - controller.enqueue(new Uint8Array(buf)); - } - return controller.desiredSize > 0; - }, - async cancel (reason) { - await iterator.return(); - } - }, 0); - } - function isFormDataLike(object) { - return object && 'object' == typeof object && 'function' == typeof object.append && 'function' == typeof object.delete && 'function' == typeof object.get && 'function' == typeof object.getAll && 'function' == typeof object.has && 'function' == typeof object.set && 'FormData' === object[Symbol.toStringTag]; - } - function throwIfAborted(signal) { - if (!signal) return; - if ('function' == typeof signal.throwIfAborted) signal.throwIfAborted(); - else if (signal.aborted) { - const err = new Error('The operation was aborted'); - err.name = 'AbortError'; - throw err; - } - } - function addAbortListener(signal, listener) { - if ('addEventListener' in signal) { - signal.addEventListener('abort', listener, { - once: true - }); - return ()=>signal.removeEventListener('abort', listener); - } - signal.addListener('abort', listener); - return ()=>signal.removeListener('abort', listener); - } - const hasToWellFormed = !!String.prototype.toWellFormed; - function toUSVString(val) { - if (hasToWellFormed) return `${val}`.toWellFormed(); - if (nodeUtil.toUSVString) return nodeUtil.toUSVString(val); - return `${val}`; - } - function parseRangeHeader(range) { - if (null == range || '' === range) return { - start: 0, - end: null, - size: null - }; - const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null; - return m ? { - start: parseInt(m[1]), - end: m[2] ? parseInt(m[2]) : null, - size: m[3] ? parseInt(m[3]) : null - } : null; - } - const kEnumerableProperty = Object.create(null); - kEnumerableProperty.enumerable = true; - module.exports = { - kEnumerableProperty, - nop, - isDisturbed, - isErrored, - isReadable, - toUSVString, - isReadableAborted, - isBlobLike, - parseOrigin, - parseURL, - getServerName, - isStream, - isIterable, - isAsyncIterable, - isDestroyed, - headerNameToString, - parseRawHeaders, - parseHeaders, - parseKeepAliveTimeout, - destroy, - bodyLength, - deepClone, - ReadableStreamFrom, - isBuffer, - validateHandler, - getSocketInfo, - isFormDataLike, - buildURL, - throwIfAborted, - addAbortListener, - parseRangeHeader, - nodeMajor, - nodeMinor, - nodeHasAutoSelectFamily: nodeMajor > 18 || 18 === nodeMajor && nodeMinor >= 13, - safeHTTPMethods: [ - 'GET', - 'HEAD', - 'OPTIONS', - 'TRACE' - ] - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher-base.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const Dispatcher = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher.js"); - const { ClientDestroyedError, ClientClosedError, InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { kDestroy, kClose, kDispatch, kInterceptors } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const kDestroyed = Symbol('destroyed'); - const kClosed = Symbol('closed'); - const kOnDestroyed = Symbol('onDestroyed'); - const kOnClosed = Symbol('onClosed'); - const kInterceptedDispatch = Symbol('Intercepted Dispatch'); - class DispatcherBase extends Dispatcher { - constructor(){ - super(); - this[kDestroyed] = false; - this[kOnDestroyed] = null; - this[kClosed] = false; - this[kOnClosed] = []; - } - get destroyed() { - return this[kDestroyed]; - } - get closed() { - return this[kClosed]; - } - get interceptors() { - return this[kInterceptors]; - } - set interceptors(newInterceptors) { - if (newInterceptors) for(let i = newInterceptors.length - 1; i >= 0; i--){ - const interceptor = this[kInterceptors][i]; - if ('function' != typeof interceptor) throw new InvalidArgumentError('interceptor must be an function'); - } - this[kInterceptors] = newInterceptors; - } - close(callback) { - if (void 0 === callback) return new Promise((resolve, reject)=>{ - this.close((err, data)=>err ? reject(err) : resolve(data)); - }); - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - if (this[kDestroyed]) return void queueMicrotask(()=>callback(new ClientDestroyedError(), null)); - if (this[kClosed]) { - if (this[kOnClosed]) this[kOnClosed].push(callback); - else queueMicrotask(()=>callback(null, null)); - return; - } - this[kClosed] = true; - this[kOnClosed].push(callback); - const onClosed = ()=>{ - const callbacks = this[kOnClosed]; - this[kOnClosed] = null; - for(let i = 0; i < callbacks.length; i++)callbacks[i](null, null); - }; - this[kClose]().then(()=>this.destroy()).then(()=>{ - queueMicrotask(onClosed); - }); - } - destroy(err, callback) { - if ('function' == typeof err) { - callback = err; - err = null; - } - if (void 0 === callback) return new Promise((resolve, reject)=>{ - this.destroy(err, (err, data)=>err ? reject(err) : resolve(data)); - }); - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - if (this[kDestroyed]) { - if (this[kOnDestroyed]) this[kOnDestroyed].push(callback); - else queueMicrotask(()=>callback(null, null)); - return; - } - if (!err) err = new ClientDestroyedError(); - this[kDestroyed] = true; - this[kOnDestroyed] = this[kOnDestroyed] || []; - this[kOnDestroyed].push(callback); - const onDestroyed = ()=>{ - const callbacks = this[kOnDestroyed]; - this[kOnDestroyed] = null; - for(let i = 0; i < callbacks.length; i++)callbacks[i](null, null); - }; - this[kDestroy](err).then(()=>{ - queueMicrotask(onDestroyed); - }); - } - [kInterceptedDispatch](opts, handler) { - if (!this[kInterceptors] || 0 === this[kInterceptors].length) { - this[kInterceptedDispatch] = this[kDispatch]; - return this[kDispatch](opts, handler); - } - let dispatch = this[kDispatch].bind(this); - for(let i = this[kInterceptors].length - 1; i >= 0; i--)dispatch = this[kInterceptors][i](dispatch); - this[kInterceptedDispatch] = dispatch; - return dispatch(opts, handler); - } - dispatch(opts, handler) { - if (!handler || 'object' != typeof handler) throw new InvalidArgumentError('handler must be an object'); - try { - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('opts must be an object.'); - if (this[kDestroyed] || this[kOnDestroyed]) throw new ClientDestroyedError(); - if (this[kClosed]) throw new ClientClosedError(); - return this[kInterceptedDispatch](opts, handler); - } catch (err) { - if ('function' != typeof handler.onError) throw new InvalidArgumentError('invalid onError method'); - handler.onError(err); - return false; - } - } - } - module.exports = DispatcherBase; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const EventEmitter = __webpack_require__("events"); - class Dispatcher extends EventEmitter { - dispatch() { - throw new Error('not implemented'); - } - close() { - throw new Error('not implemented'); - } - destroy() { - throw new Error('not implemented'); - } - } - module.exports = Dispatcher; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/body.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const Busboy = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/main.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { ReadableStreamFrom, isBlobLike, isReadableStreamLike, readableStreamClose, createDeferredPromise, fullyReadBody } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { FormData } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/formdata.js"); - const { kState } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { DOMException: DOMException1, structuredClone } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { Blob: Blob1, File: NativeFile } = __webpack_require__("buffer"); - const { kBodyUsed } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const assert = __webpack_require__("assert"); - const { isErrored } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { isUint8Array, isArrayBuffer } = __webpack_require__("util/types"); - const { File: UndiciFile } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/file.js"); - const { parseMIMEType, serializeAMimeType } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - let random; - try { - const crypto = __webpack_require__("node:crypto"); - random = (max)=>crypto.randomInt(0, max); - } catch { - random = (max)=>Math.floor(Math.random(max)); - } - let ReadableStream1 = globalThis.ReadableStream; - const File = NativeFile ?? UndiciFile; - const textEncoder = new TextEncoder(); - const textDecoder = new TextDecoder(); - function extractBody(object, keepalive = false) { - if (!ReadableStream1) ReadableStream1 = __webpack_require__("stream/web").ReadableStream; - let stream = null; - stream = object instanceof ReadableStream1 ? object : isBlobLike(object) ? object.stream() : new ReadableStream1({ - async pull (controller) { - controller.enqueue('string' == typeof source ? textEncoder.encode(source) : source); - queueMicrotask(()=>readableStreamClose(controller)); - }, - start () {}, - type: void 0 - }); - assert(isReadableStreamLike(stream)); - let action = null; - let source = null; - let length = null; - let type = null; - if ('string' == typeof object) { - source = object; - type = 'text/plain;charset=UTF-8'; - } else if (object instanceof URLSearchParams) { - source = object.toString(); - type = 'application/x-www-form-urlencoded;charset=UTF-8'; - } else if (isArrayBuffer(object)) source = new Uint8Array(object.slice()); - else if (ArrayBuffer.isView(object)) source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)); - else if (util.isFormDataLike(object)) { - const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}`; - const prefix = `--${boundary}\r\nContent-Disposition: form-data`; - /*! formdata-polyfill. MIT License. Jimmy Wärting */ const escape = (str)=>str.replace(/\n/g, '%0A').replace(/\r/g, '%0D').replace(/"/g, '%22'); - const normalizeLinefeeds = (value)=>value.replace(/\r?\n|\r/g, '\r\n'); - const blobParts = []; - const rn = new Uint8Array([ - 13, - 10 - ]); - length = 0; - let hasUnknownSizeValue = false; - for (const [name, value] of object)if ('string' == typeof value) { - const chunk = textEncoder.encode(prefix + `; name="${escape(normalizeLinefeeds(name))}"` + `\r\n\r\n${normalizeLinefeeds(value)}\r\n`); - blobParts.push(chunk); - length += chunk.byteLength; - } else { - const chunk = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + (value.name ? `; filename="${escape(value.name)}"` : '') + '\r\n' + `Content-Type: ${value.type || 'application/octet-stream'}\r\n\r\n`); - blobParts.push(chunk, value, rn); - if ('number' == typeof value.size) length += chunk.byteLength + value.size + rn.byteLength; - else hasUnknownSizeValue = true; - } - const chunk = textEncoder.encode(`--${boundary}--`); - blobParts.push(chunk); - length += chunk.byteLength; - if (hasUnknownSizeValue) length = null; - source = object; - action = async function*() { - for (const part of blobParts)if (part.stream) yield* part.stream(); - else yield part; - }; - type = 'multipart/form-data; boundary=' + boundary; - } else if (isBlobLike(object)) { - source = object; - length = object.size; - if (object.type) type = object.type; - } else if ('function' == typeof object[Symbol.asyncIterator]) { - if (keepalive) throw new TypeError('keepalive'); - if (util.isDisturbed(object) || object.locked) throw new TypeError('Response body object should not be disturbed or locked'); - stream = object instanceof ReadableStream1 ? object : ReadableStreamFrom(object); - } - if ('string' == typeof source || util.isBuffer(source)) length = Buffer.byteLength(source); - if (null != action) { - let iterator; - stream = new ReadableStream1({ - async start () { - iterator = action(object)[Symbol.asyncIterator](); - }, - async pull (controller) { - const { value, done } = await iterator.next(); - if (done) queueMicrotask(()=>{ - controller.close(); - }); - else if (!isErrored(stream)) controller.enqueue(new Uint8Array(value)); - return controller.desiredSize > 0; - }, - async cancel (reason) { - await iterator.return(); - }, - type: void 0 - }); - } - const body = { - stream, - source, - length - }; - return [ - body, - type - ]; - } - function safelyExtractBody(object, keepalive = false) { - if (!ReadableStream1) ReadableStream1 = __webpack_require__("stream/web").ReadableStream; - if (object instanceof ReadableStream1) { - assert(!util.isDisturbed(object), 'The body has already been consumed.'); - assert(!object.locked, 'The stream is locked.'); - } - return extractBody(object, keepalive); - } - function cloneBody(body) { - const [out1, out2] = body.stream.tee(); - const out2Clone = structuredClone(out2, { - transfer: [ - out2 - ] - }); - const [, finalClone] = out2Clone.tee(); - body.stream = out1; - return { - stream: finalClone, - length: body.length, - source: body.source - }; - } - async function* consumeBody(body) { - if (body) if (isUint8Array(body)) yield body; - else { - const stream = body.stream; - if (util.isDisturbed(stream)) throw new TypeError('The body has already been consumed.'); - if (stream.locked) throw new TypeError('The stream is locked.'); - stream[kBodyUsed] = true; - yield* stream; - } - } - function throwIfAborted(state) { - if (state.aborted) throw new DOMException1('The operation was aborted.', 'AbortError'); - } - function bodyMixinMethods(instance) { - const methods = { - blob () { - return specConsumeBody(this, (bytes)=>{ - let mimeType = bodyMimeType(this); - if ('failure' === mimeType) mimeType = ''; - else if (mimeType) mimeType = serializeAMimeType(mimeType); - return new Blob1([ - bytes - ], { - type: mimeType - }); - }, instance); - }, - arrayBuffer () { - return specConsumeBody(this, (bytes)=>new Uint8Array(bytes).buffer, instance); - }, - text () { - return specConsumeBody(this, utf8DecodeBytes, instance); - }, - json () { - return specConsumeBody(this, parseJSONFromBytes, instance); - }, - async formData () { - webidl.brandCheck(this, instance); - throwIfAborted(this[kState]); - const contentType = this.headers.get('Content-Type'); - if (/multipart\/form-data/.test(contentType)) { - const headers = {}; - for (const [key, value] of this.headers)headers[key.toLowerCase()] = value; - const responseFormData = new FormData(); - let busboy; - try { - busboy = new Busboy({ - headers, - preservePath: true - }); - } catch (err) { - throw new DOMException1(`${err}`, 'AbortError'); - } - busboy.on('field', (name, value)=>{ - responseFormData.append(name, value); - }); - busboy.on('file', (name, value, filename, encoding, mimeType)=>{ - const chunks = []; - if ('base64' === encoding || 'base64' === encoding.toLowerCase()) { - let base64chunk = ''; - value.on('data', (chunk)=>{ - base64chunk += chunk.toString().replace(/[\r\n]/gm, ''); - const end = base64chunk.length - base64chunk.length % 4; - chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64')); - base64chunk = base64chunk.slice(end); - }); - value.on('end', ()=>{ - chunks.push(Buffer.from(base64chunk, 'base64')); - responseFormData.append(name, new File(chunks, filename, { - type: mimeType - })); - }); - } else { - value.on('data', (chunk)=>{ - chunks.push(chunk); - }); - value.on('end', ()=>{ - responseFormData.append(name, new File(chunks, filename, { - type: mimeType - })); - }); - } - }); - const busboyResolve = new Promise((resolve, reject)=>{ - busboy.on('finish', resolve); - busboy.on('error', (err)=>reject(new TypeError(err))); - }); - if (null !== this.body) for await (const chunk of consumeBody(this[kState].body))busboy.write(chunk); - busboy.end(); - await busboyResolve; - return responseFormData; - } - if (/application\/x-www-form-urlencoded/.test(contentType)) { - let entries; - try { - let text = ''; - const streamingDecoder = new TextDecoder('utf-8', { - ignoreBOM: true - }); - for await (const chunk of consumeBody(this[kState].body)){ - if (!isUint8Array(chunk)) throw new TypeError('Expected Uint8Array chunk'); - text += streamingDecoder.decode(chunk, { - stream: true - }); - } - text += streamingDecoder.decode(); - entries = new URLSearchParams(text); - } catch (err) { - throw Object.assign(new TypeError(), { - cause: err - }); - } - const formData = new FormData(); - for (const [name, value] of entries)formData.append(name, value); - return formData; - } - await Promise.resolve(); - throwIfAborted(this[kState]); - throw webidl.errors.exception({ - header: `${instance.name}.formData`, - message: 'Could not parse content as FormData.' - }); - } - }; - return methods; - } - function mixinBody(prototype) { - Object.assign(prototype.prototype, bodyMixinMethods(prototype)); - } - async function specConsumeBody(object, convertBytesToJSValue, instance) { - webidl.brandCheck(object, instance); - throwIfAborted(object[kState]); - if (bodyUnusable(object[kState].body)) throw new TypeError('Body is unusable'); - const promise = createDeferredPromise(); - const errorSteps = (error)=>promise.reject(error); - const successSteps = (data)=>{ - try { - promise.resolve(convertBytesToJSValue(data)); - } catch (e) { - errorSteps(e); - } - }; - if (null == object[kState].body) { - successSteps(new Uint8Array()); - return promise.promise; - } - await fullyReadBody(object[kState].body, successSteps, errorSteps); - return promise.promise; - } - function bodyUnusable(body) { - return null != body && (body.stream.locked || util.isDisturbed(body.stream)); - } - function utf8DecodeBytes(buffer) { - if (0 === buffer.length) return ''; - if (0xEF === buffer[0] && 0xBB === buffer[1] && 0xBF === buffer[2]) buffer = buffer.subarray(3); - const output = textDecoder.decode(buffer); - return output; - } - function parseJSONFromBytes(bytes) { - return JSON.parse(utf8DecodeBytes(bytes)); - } - function bodyMimeType(object) { - const { headersList } = object[kState]; - const contentType = headersList.get('content-type'); - if (null === contentType) return 'failure'; - return parseMIMEType(contentType); - } - module.exports = { - extractBody, - safelyExtractBody, - cloneBody, - mixinBody - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { MessageChannel, receiveMessageOnPort } = __webpack_require__("worker_threads"); - const corsSafeListedMethods = [ - 'GET', - 'HEAD', - 'POST' - ]; - const corsSafeListedMethodsSet = new Set(corsSafeListedMethods); - const nullBodyStatus = [ - 101, - 204, - 205, - 304 - ]; - const redirectStatus = [ - 301, - 302, - 303, - 307, - 308 - ]; - const redirectStatusSet = new Set(redirectStatus); - const badPorts = [ - '1', - '7', - '9', - '11', - '13', - '15', - '17', - '19', - '20', - '21', - '22', - '23', - '25', - '37', - '42', - '43', - '53', - '69', - '77', - '79', - '87', - '95', - '101', - '102', - '103', - '104', - '109', - '110', - '111', - '113', - '115', - '117', - '119', - '123', - '135', - '137', - '139', - '143', - '161', - '179', - '389', - '427', - '465', - '512', - '513', - '514', - '515', - '526', - '530', - '531', - '532', - '540', - '548', - '554', - '556', - '563', - '587', - '601', - '636', - '989', - '990', - '993', - '995', - '1719', - '1720', - '1723', - '2049', - '3659', - '4045', - '5060', - '5061', - '6000', - '6566', - '6665', - '6666', - '6667', - '6668', - '6669', - '6697', - '10080' - ]; - const badPortsSet = new Set(badPorts); - const referrerPolicy = [ - '', - 'no-referrer', - 'no-referrer-when-downgrade', - 'same-origin', - 'origin', - 'strict-origin', - 'origin-when-cross-origin', - 'strict-origin-when-cross-origin', - 'unsafe-url' - ]; - const referrerPolicySet = new Set(referrerPolicy); - const requestRedirect = [ - 'follow', - 'manual', - 'error' - ]; - const safeMethods = [ - 'GET', - 'HEAD', - 'OPTIONS', - 'TRACE' - ]; - const safeMethodsSet = new Set(safeMethods); - const requestMode = [ - 'navigate', - 'same-origin', - 'no-cors', - 'cors' - ]; - const requestCredentials = [ - 'omit', - 'same-origin', - 'include' - ]; - const requestCache = [ - 'default', - 'no-store', - 'reload', - 'no-cache', - 'force-cache', - 'only-if-cached' - ]; - const requestBodyHeader = [ - 'content-encoding', - 'content-language', - 'content-location', - 'content-type', - 'content-length' - ]; - const requestDuplex = [ - 'half' - ]; - const forbiddenMethods = [ - 'CONNECT', - 'TRACE', - 'TRACK' - ]; - const forbiddenMethodsSet = new Set(forbiddenMethods); - const subresource = [ - 'audio', - 'audioworklet', - 'font', - 'image', - 'manifest', - 'paintworklet', - "script", - 'style', - 'track', - 'video', - 'xslt', - '' - ]; - const subresourceSet = new Set(subresource); - const DOMException1 = globalThis.DOMException ?? (()=>{ - try { - atob('~'); - } catch (err) { - return Object.getPrototypeOf(err).constructor; - } - })(); - let channel; - const structuredClone = globalThis.structuredClone ?? function(value, options) { - if (0 === arguments.length) throw new TypeError('missing argument'); - if (!channel) channel = new MessageChannel(); - channel.port1.unref(); - channel.port2.unref(); - channel.port1.postMessage(value, options?.transfer); - return receiveMessageOnPort(channel.port2).message; - }; - module.exports = { - DOMException: DOMException1, - structuredClone, - subresource, - forbiddenMethods, - requestBodyHeader, - referrerPolicy, - requestRedirect, - requestMode, - requestCredentials, - requestCache, - redirectStatus, - corsSafeListedMethods, - nullBodyStatus, - safeMethods, - badPorts, - requestDuplex, - subresourceSet, - badPortsSet, - redirectStatusSet, - corsSafeListedMethodsSet, - safeMethodsSet, - forbiddenMethodsSet, - referrerPolicySet - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js" (module, __unused_rspack_exports, __webpack_require__) { - const assert = __webpack_require__("assert"); - const { atob: atob1 } = __webpack_require__("buffer"); - const { isomorphicDecode } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const encoder = new TextEncoder(); - const HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/; - const HTTP_WHITESPACE_REGEX = /(\u000A|\u000D|\u0009|\u0020)/; - const HTTP_QUOTED_STRING_TOKENS = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/; - function dataURLProcessor(dataURL) { - assert('data:' === dataURL.protocol); - let input = URLSerializer(dataURL, true); - input = input.slice(5); - const position = { - position: 0 - }; - let mimeType = collectASequenceOfCodePointsFast(',', input, position); - const mimeTypeLength = mimeType.length; - mimeType = removeASCIIWhitespace(mimeType, true, true); - if (position.position >= input.length) return 'failure'; - position.position++; - const encodedBody = input.slice(mimeTypeLength + 1); - let body = stringPercentDecode(encodedBody); - if (/;(\u0020){0,}base64$/i.test(mimeType)) { - const stringBody = isomorphicDecode(body); - body = forgivingBase64(stringBody); - if ('failure' === body) return 'failure'; - mimeType = mimeType.slice(0, -6); - mimeType = mimeType.replace(/(\u0020)+$/, ''); - mimeType = mimeType.slice(0, -1); - } - if (mimeType.startsWith(';')) mimeType = 'text/plain' + mimeType; - let mimeTypeRecord = parseMIMEType(mimeType); - if ('failure' === mimeTypeRecord) mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII'); - return { - mimeType: mimeTypeRecord, - body - }; - } - function URLSerializer(url, excludeFragment = false) { - if (!excludeFragment) return url.href; - const href = url.href; - const hashLength = url.hash.length; - return 0 === hashLength ? href : href.substring(0, href.length - hashLength); - } - function collectASequenceOfCodePoints(condition, input, position) { - let result = ''; - while(position.position < input.length && condition(input[position.position])){ - result += input[position.position]; - position.position++; - } - return result; - } - function collectASequenceOfCodePointsFast(char, input, position) { - const idx = input.indexOf(char, position.position); - const start = position.position; - if (-1 === idx) { - position.position = input.length; - return input.slice(start); - } - position.position = idx; - return input.slice(start, position.position); - } - function stringPercentDecode(input) { - const bytes = encoder.encode(input); - return percentDecode(bytes); - } - function percentDecode(input) { - const output = []; - for(let i = 0; i < input.length; i++){ - const byte = input[i]; - if (0x25 !== byte) output.push(byte); - else if (0x25 !== byte || /^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))) { - const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2]); - const bytePoint = Number.parseInt(nextTwoBytes, 16); - output.push(bytePoint); - i += 2; - } else output.push(0x25); - } - return Uint8Array.from(output); - } - function parseMIMEType(input) { - input = removeHTTPWhitespace(input, true, true); - const position = { - position: 0 - }; - const type = collectASequenceOfCodePointsFast('/', input, position); - if (0 === type.length || !HTTP_TOKEN_CODEPOINTS.test(type)) return 'failure'; - if (position.position > input.length) return 'failure'; - position.position++; - let subtype = collectASequenceOfCodePointsFast(';', input, position); - subtype = removeHTTPWhitespace(subtype, false, true); - if (0 === subtype.length || !HTTP_TOKEN_CODEPOINTS.test(subtype)) return 'failure'; - const typeLowercase = type.toLowerCase(); - const subtypeLowercase = subtype.toLowerCase(); - const mimeType = { - type: typeLowercase, - subtype: subtypeLowercase, - parameters: new Map(), - essence: `${typeLowercase}/${subtypeLowercase}` - }; - while(position.position < input.length){ - position.position++; - collectASequenceOfCodePoints((char)=>HTTP_WHITESPACE_REGEX.test(char), input, position); - let parameterName = collectASequenceOfCodePoints((char)=>';' !== char && '=' !== char, input, position); - parameterName = parameterName.toLowerCase(); - if (position.position < input.length) { - if (';' === input[position.position]) continue; - position.position++; - } - if (position.position > input.length) break; - let parameterValue = null; - if ('"' === input[position.position]) { - parameterValue = collectAnHTTPQuotedString(input, position, true); - collectASequenceOfCodePointsFast(';', input, position); - } else { - parameterValue = collectASequenceOfCodePointsFast(';', input, position); - parameterValue = removeHTTPWhitespace(parameterValue, false, true); - if (0 === parameterValue.length) continue; - } - if (0 !== parameterName.length && HTTP_TOKEN_CODEPOINTS.test(parameterName) && (0 === parameterValue.length || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && !mimeType.parameters.has(parameterName)) mimeType.parameters.set(parameterName, parameterValue); - } - return mimeType; - } - function forgivingBase64(data) { - data = data.replace(/[\u0009\u000A\u000C\u000D\u0020]/g, ''); - if (data.length % 4 === 0) data = data.replace(/=?=$/, ''); - if (data.length % 4 === 1) return 'failure'; - if (/[^+/0-9A-Za-z]/.test(data)) return 'failure'; - const binary = atob1(data); - const bytes = new Uint8Array(binary.length); - for(let byte = 0; byte < binary.length; byte++)bytes[byte] = binary.charCodeAt(byte); - return bytes; - } - function collectAnHTTPQuotedString(input, position, extractValue) { - const positionStart = position.position; - let value = ''; - assert('"' === input[position.position]); - position.position++; - while(true){ - value += collectASequenceOfCodePoints((char)=>'"' !== char && '\\' !== char, input, position); - if (position.position >= input.length) break; - const quoteOrBackslash = input[position.position]; - position.position++; - if ('\\' === quoteOrBackslash) { - if (position.position >= input.length) { - value += '\\'; - break; - } - value += input[position.position]; - position.position++; - } else { - assert('"' === quoteOrBackslash); - break; - } - } - if (extractValue) return value; - return input.slice(positionStart, position.position); - } - function serializeAMimeType(mimeType) { - assert('failure' !== mimeType); - const { parameters, essence } = mimeType; - let serialization = essence; - for (let [name, value] of parameters.entries()){ - serialization += ';'; - serialization += name; - serialization += '='; - if (!HTTP_TOKEN_CODEPOINTS.test(value)) { - value = value.replace(/(\\|")/g, '\\$1'); - value = '"' + value; - value += '"'; - } - serialization += value; - } - return serialization; - } - function isHTTPWhiteSpace(char) { - return '\r' === char || '\n' === char || '\t' === char || ' ' === char; - } - function removeHTTPWhitespace(str, leading = true, trailing = true) { - let lead = 0; - let trail = str.length - 1; - if (leading) for(; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++); - if (trailing) for(; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--); - return str.slice(lead, trail + 1); - } - function isASCIIWhitespace(char) { - return '\r' === char || '\n' === char || '\t' === char || '\f' === char || ' ' === char; - } - function removeASCIIWhitespace(str, leading = true, trailing = true) { - let lead = 0; - let trail = str.length - 1; - if (leading) for(; lead < str.length && isASCIIWhitespace(str[lead]); lead++); - if (trailing) for(; trail > 0 && isASCIIWhitespace(str[trail]); trail--); - return str.slice(lead, trail + 1); - } - module.exports = { - dataURLProcessor, - URLSerializer, - collectASequenceOfCodePoints, - collectASequenceOfCodePointsFast, - stringPercentDecode, - parseMIMEType, - collectAnHTTPQuotedString, - serializeAMimeType - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/file.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Blob: Blob1, File: NativeFile } = __webpack_require__("buffer"); - const { types } = __webpack_require__("util"); - const { kState } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { isBlobLike } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { parseMIMEType, serializeAMimeType } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const encoder = new TextEncoder(); - class File extends Blob1 { - constructor(fileBits, fileName, options = {}){ - webidl.argumentLengthCheck(arguments, 2, { - header: 'File constructor' - }); - fileBits = webidl.converters['sequence'](fileBits); - fileName = webidl.converters.USVString(fileName); - options = webidl.converters.FilePropertyBag(options); - const n = fileName; - let t = options.type; - let d; - substep: { - if (t) { - t = parseMIMEType(t); - if ('failure' === t) { - t = ''; - break substep; - } - t = serializeAMimeType(t).toLowerCase(); - } - d = options.lastModified; - } - super(processBlobParts(fileBits, options), { - type: t - }); - this[kState] = { - name: n, - lastModified: d, - type: t - }; - } - get name() { - webidl.brandCheck(this, File); - return this[kState].name; - } - get lastModified() { - webidl.brandCheck(this, File); - return this[kState].lastModified; - } - get type() { - webidl.brandCheck(this, File); - return this[kState].type; - } - } - class FileLike { - constructor(blobLike, fileName, options = {}){ - const n = fileName; - const t = options.type; - const d = options.lastModified ?? Date.now(); - this[kState] = { - blobLike, - name: n, - type: t, - lastModified: d - }; - } - stream(...args) { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.stream(...args); - } - arrayBuffer(...args) { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.arrayBuffer(...args); - } - slice(...args) { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.slice(...args); - } - text(...args) { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.text(...args); - } - get size() { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.size; - } - get type() { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.type; - } - get name() { - webidl.brandCheck(this, FileLike); - return this[kState].name; - } - get lastModified() { - webidl.brandCheck(this, FileLike); - return this[kState].lastModified; - } - get [Symbol.toStringTag]() { - return 'File'; - } - } - Object.defineProperties(File.prototype, { - [Symbol.toStringTag]: { - value: 'File', - configurable: true - }, - name: kEnumerableProperty, - lastModified: kEnumerableProperty - }); - webidl.converters.Blob = webidl.interfaceConverter(Blob1); - webidl.converters.BlobPart = function(V, opts) { - if ('Object' === webidl.util.Type(V)) { - if (isBlobLike(V)) return webidl.converters.Blob(V, { - strict: false - }); - if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) return webidl.converters.BufferSource(V, opts); - } - return webidl.converters.USVString(V, opts); - }; - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.BlobPart); - webidl.converters.FilePropertyBag = webidl.dictionaryConverter([ - { - key: 'lastModified', - converter: webidl.converters['long long'], - get defaultValue () { - return Date.now(); - } - }, - { - key: 'type', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'endings', - converter: (value)=>{ - value = webidl.converters.DOMString(value); - value = value.toLowerCase(); - if ('native' !== value) value = 'transparent'; - return value; - }, - defaultValue: 'transparent' - } - ]); - function processBlobParts(parts, options) { - const bytes = []; - for (const element of parts)if ('string' == typeof element) { - let s = element; - if ('native' === options.endings) s = convertLineEndingsNative(s); - bytes.push(encoder.encode(s)); - } else if (types.isAnyArrayBuffer(element) || types.isTypedArray(element)) if (element.buffer) bytes.push(new Uint8Array(element.buffer, element.byteOffset, element.byteLength)); - else bytes.push(new Uint8Array(element)); - else if (isBlobLike(element)) bytes.push(element); - return bytes; - } - function convertLineEndingsNative(s) { - let nativeLineEnding = '\n'; - if ('win32' === process.platform) nativeLineEnding = '\r\n'; - return s.replace(/\r?\n/g, nativeLineEnding); - } - function isFileLike(object) { - return NativeFile && object instanceof NativeFile || object instanceof File || object && ('function' == typeof object.stream || 'function' == typeof object.arrayBuffer) && 'File' === object[Symbol.toStringTag]; - } - module.exports = { - File, - FileLike, - isFileLike - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/formdata.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { isBlobLike, toUSVString, makeIterator } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { kState } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { File: UndiciFile, FileLike, isFileLike } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/file.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { Blob: Blob1, File: NativeFile } = __webpack_require__("buffer"); - const File = NativeFile ?? UndiciFile; - class FormData { - constructor(form){ - if (void 0 !== form) throw webidl.errors.conversionFailed({ - prefix: 'FormData constructor', - argument: 'Argument 1', - types: [ - 'undefined' - ] - }); - this[kState] = []; - } - append(name, value, filename) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 2, { - header: 'FormData.append' - }); - if (3 === arguments.length && !isBlobLike(value)) throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'"); - name = webidl.converters.USVString(name); - value = isBlobLike(value) ? webidl.converters.Blob(value, { - strict: false - }) : webidl.converters.USVString(value); - filename = 3 === arguments.length ? webidl.converters.USVString(filename) : void 0; - const entry = makeEntry(name, value, filename); - this[kState].push(entry); - } - delete(name) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FormData.delete' - }); - name = webidl.converters.USVString(name); - this[kState] = this[kState].filter((entry)=>entry.name !== name); - } - get(name) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FormData.get' - }); - name = webidl.converters.USVString(name); - const idx = this[kState].findIndex((entry)=>entry.name === name); - if (-1 === idx) return null; - return this[kState][idx].value; - } - getAll(name) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FormData.getAll' - }); - name = webidl.converters.USVString(name); - return this[kState].filter((entry)=>entry.name === name).map((entry)=>entry.value); - } - has(name) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FormData.has' - }); - name = webidl.converters.USVString(name); - return -1 !== this[kState].findIndex((entry)=>entry.name === name); - } - set(name, value, filename) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 2, { - header: 'FormData.set' - }); - if (3 === arguments.length && !isBlobLike(value)) throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'"); - name = webidl.converters.USVString(name); - value = isBlobLike(value) ? webidl.converters.Blob(value, { - strict: false - }) : webidl.converters.USVString(value); - filename = 3 === arguments.length ? toUSVString(filename) : void 0; - const entry = makeEntry(name, value, filename); - const idx = this[kState].findIndex((entry)=>entry.name === name); - if (-1 !== idx) this[kState] = [ - ...this[kState].slice(0, idx), - entry, - ...this[kState].slice(idx + 1).filter((entry)=>entry.name !== name) - ]; - else this[kState].push(entry); - } - entries() { - webidl.brandCheck(this, FormData); - return makeIterator(()=>this[kState].map((pair)=>[ - pair.name, - pair.value - ]), 'FormData', 'key+value'); - } - keys() { - webidl.brandCheck(this, FormData); - return makeIterator(()=>this[kState].map((pair)=>[ - pair.name, - pair.value - ]), 'FormData', 'key'); - } - values() { - webidl.brandCheck(this, FormData); - return makeIterator(()=>this[kState].map((pair)=>[ - pair.name, - pair.value - ]), 'FormData', 'value'); - } - forEach(callbackFn, thisArg = globalThis) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FormData.forEach' - }); - if ('function' != typeof callbackFn) throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'."); - for (const [key, value] of this)callbackFn.apply(thisArg, [ - value, - key, - this - ]); - } - } - FormData.prototype[Symbol.iterator] = FormData.prototype.entries; - Object.defineProperties(FormData.prototype, { - [Symbol.toStringTag]: { - value: 'FormData', - configurable: true - } - }); - function makeEntry(name, value, filename) { - name = Buffer.from(name).toString('utf8'); - if ('string' == typeof value) value = Buffer.from(value).toString('utf8'); - else { - if (!isFileLike(value)) value = value instanceof Blob1 ? new File([ - value - ], 'blob', { - type: value.type - }) : new FileLike(value, 'blob', { - type: value.type - }); - if (void 0 !== filename) { - const options = { - type: value.type, - lastModified: value.lastModified - }; - value = NativeFile && value instanceof NativeFile || value instanceof UndiciFile ? new File([ - value - ], filename, options) : new FileLike(value, filename, options); - } - } - return { - name, - value - }; - } - module.exports = { - FormData - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js" (module) { - "use strict"; - const globalOrigin = Symbol.for('undici.globalOrigin.1'); - function getGlobalOrigin() { - return globalThis[globalOrigin]; - } - function setGlobalOrigin(newOrigin) { - if (void 0 === newOrigin) return void Object.defineProperty(globalThis, globalOrigin, { - value: void 0, - writable: true, - enumerable: false, - configurable: false - }); - const parsedURL = new URL(newOrigin); - if ('http:' !== parsedURL.protocol && 'https:' !== parsedURL.protocol) throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`); - Object.defineProperty(globalThis, globalOrigin, { - value: parsedURL, - writable: true, - enumerable: false, - configurable: false - }); - } - module.exports = { - getGlobalOrigin, - setGlobalOrigin - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kHeadersList, kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { kGuard } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { makeIterator, isValidHeaderName, isValidHeaderValue } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const util = __webpack_require__("util"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const assert = __webpack_require__("assert"); - const kHeadersMap = Symbol('headers map'); - const kHeadersSortedMap = Symbol('headers map sorted'); - function isHTTPWhiteSpaceCharCode(code) { - return 0x00a === code || 0x00d === code || 0x009 === code || 0x020 === code; - } - function headerValueNormalize(potentialValue) { - let i = 0; - let j = potentialValue.length; - while(j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1)))--j; - while(j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i)))++i; - return 0 === i && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j); - } - function fill(headers, object) { - if (Array.isArray(object)) for(let i = 0; i < object.length; ++i){ - const header = object[i]; - if (2 !== header.length) throw webidl.errors.exception({ - header: 'Headers constructor', - message: `expected name/value pair to be length 2, found ${header.length}.` - }); - appendHeader(headers, header[0], header[1]); - } - else if ('object' == typeof object && null !== object) { - const keys = Object.keys(object); - for(let i = 0; i < keys.length; ++i)appendHeader(headers, keys[i], object[keys[i]]); - } else throw webidl.errors.conversionFailed({ - prefix: 'Headers constructor', - argument: 'Argument 1', - types: [ - 'sequence>', - 'record' - ] - }); - } - function appendHeader(headers, name, value) { - value = headerValueNormalize(value); - if (isValidHeaderName(name)) { - if (!isValidHeaderValue(value)) throw webidl.errors.invalidArgument({ - prefix: 'Headers.append', - value, - type: 'header value' - }); - } else throw webidl.errors.invalidArgument({ - prefix: 'Headers.append', - value: name, - type: 'header name' - }); - if ('immutable' === headers[kGuard]) throw new TypeError('immutable'); - headers[kGuard]; - return headers[kHeadersList].append(name, value); - } - class HeadersList { - cookies = null; - constructor(init){ - if (init instanceof HeadersList) { - this[kHeadersMap] = new Map(init[kHeadersMap]); - this[kHeadersSortedMap] = init[kHeadersSortedMap]; - this.cookies = null === init.cookies ? null : [ - ...init.cookies - ]; - } else { - this[kHeadersMap] = new Map(init); - this[kHeadersSortedMap] = null; - } - } - contains(name) { - name = name.toLowerCase(); - return this[kHeadersMap].has(name); - } - clear() { - this[kHeadersMap].clear(); - this[kHeadersSortedMap] = null; - this.cookies = null; - } - append(name, value) { - this[kHeadersSortedMap] = null; - const lowercaseName = name.toLowerCase(); - const exists = this[kHeadersMap].get(lowercaseName); - if (exists) { - const delimiter = 'cookie' === lowercaseName ? '; ' : ', '; - this[kHeadersMap].set(lowercaseName, { - name: exists.name, - value: `${exists.value}${delimiter}${value}` - }); - } else this[kHeadersMap].set(lowercaseName, { - name, - value - }); - if ('set-cookie' === lowercaseName) { - this.cookies ??= []; - this.cookies.push(value); - } - } - set(name, value) { - this[kHeadersSortedMap] = null; - const lowercaseName = name.toLowerCase(); - if ('set-cookie' === lowercaseName) this.cookies = [ - value - ]; - this[kHeadersMap].set(lowercaseName, { - name, - value - }); - } - delete(name) { - this[kHeadersSortedMap] = null; - name = name.toLowerCase(); - if ('set-cookie' === name) this.cookies = null; - this[kHeadersMap].delete(name); - } - get(name) { - const value = this[kHeadersMap].get(name.toLowerCase()); - return void 0 === value ? null : value.value; - } - *[Symbol.iterator]() { - for (const [name, { value }] of this[kHeadersMap])yield [ - name, - value - ]; - } - get entries() { - const headers = {}; - if (this[kHeadersMap].size) for (const { name, value } of this[kHeadersMap].values())headers[name] = value; - return headers; - } - } - class Headers { - constructor(init){ - if (init === kConstruct) return; - this[kHeadersList] = new HeadersList(); - this[kGuard] = 'none'; - if (void 0 !== init) { - init = webidl.converters.HeadersInit(init); - fill(this, init); - } - } - append(name, value) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 2, { - header: 'Headers.append' - }); - name = webidl.converters.ByteString(name); - value = webidl.converters.ByteString(value); - return appendHeader(this, name, value); - } - delete(name) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Headers.delete' - }); - name = webidl.converters.ByteString(name); - if (!isValidHeaderName(name)) throw webidl.errors.invalidArgument({ - prefix: 'Headers.delete', - value: name, - type: 'header name' - }); - if ('immutable' === this[kGuard]) throw new TypeError('immutable'); - this[kGuard]; - if (!this[kHeadersList].contains(name)) return; - this[kHeadersList].delete(name); - } - get(name) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Headers.get' - }); - name = webidl.converters.ByteString(name); - if (!isValidHeaderName(name)) throw webidl.errors.invalidArgument({ - prefix: 'Headers.get', - value: name, - type: 'header name' - }); - return this[kHeadersList].get(name); - } - has(name) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Headers.has' - }); - name = webidl.converters.ByteString(name); - if (!isValidHeaderName(name)) throw webidl.errors.invalidArgument({ - prefix: 'Headers.has', - value: name, - type: 'header name' - }); - return this[kHeadersList].contains(name); - } - set(name, value) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 2, { - header: 'Headers.set' - }); - name = webidl.converters.ByteString(name); - value = webidl.converters.ByteString(value); - value = headerValueNormalize(value); - if (isValidHeaderName(name)) { - if (!isValidHeaderValue(value)) throw webidl.errors.invalidArgument({ - prefix: 'Headers.set', - value, - type: 'header value' - }); - } else throw webidl.errors.invalidArgument({ - prefix: 'Headers.set', - value: name, - type: 'header name' - }); - if ('immutable' === this[kGuard]) throw new TypeError('immutable'); - this[kGuard]; - this[kHeadersList].set(name, value); - } - getSetCookie() { - webidl.brandCheck(this, Headers); - const list = this[kHeadersList].cookies; - if (list) return [ - ...list - ]; - return []; - } - get [kHeadersSortedMap]() { - if (this[kHeadersList][kHeadersSortedMap]) return this[kHeadersList][kHeadersSortedMap]; - const headers = []; - const names = [ - ...this[kHeadersList] - ].sort((a, b)=>a[0] < b[0] ? -1 : 1); - const cookies = this[kHeadersList].cookies; - for(let i = 0; i < names.length; ++i){ - const [name, value] = names[i]; - if ('set-cookie' === name) for(let j = 0; j < cookies.length; ++j)headers.push([ - name, - cookies[j] - ]); - else { - assert(null !== value); - headers.push([ - name, - value - ]); - } - } - this[kHeadersList][kHeadersSortedMap] = headers; - return headers; - } - keys() { - webidl.brandCheck(this, Headers); - if ('immutable' === this[kGuard]) { - const value = this[kHeadersSortedMap]; - return makeIterator(()=>value, 'Headers', 'key'); - } - return makeIterator(()=>[ - ...this[kHeadersSortedMap].values() - ], 'Headers', 'key'); - } - values() { - webidl.brandCheck(this, Headers); - if ('immutable' === this[kGuard]) { - const value = this[kHeadersSortedMap]; - return makeIterator(()=>value, 'Headers', 'value'); - } - return makeIterator(()=>[ - ...this[kHeadersSortedMap].values() - ], 'Headers', 'value'); - } - entries() { - webidl.brandCheck(this, Headers); - if ('immutable' === this[kGuard]) { - const value = this[kHeadersSortedMap]; - return makeIterator(()=>value, 'Headers', 'key+value'); - } - return makeIterator(()=>[ - ...this[kHeadersSortedMap].values() - ], 'Headers', 'key+value'); - } - forEach(callbackFn, thisArg = globalThis) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Headers.forEach' - }); - if ('function' != typeof callbackFn) throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'."); - for (const [key, value] of this)callbackFn.apply(thisArg, [ - value, - key, - this - ]); - } - [Symbol.for('nodejs.util.inspect.custom')]() { - webidl.brandCheck(this, Headers); - return this[kHeadersList]; - } - } - Headers.prototype[Symbol.iterator] = Headers.prototype.entries; - Object.defineProperties(Headers.prototype, { - append: kEnumerableProperty, - delete: kEnumerableProperty, - get: kEnumerableProperty, - has: kEnumerableProperty, - set: kEnumerableProperty, - getSetCookie: kEnumerableProperty, - keys: kEnumerableProperty, - values: kEnumerableProperty, - entries: kEnumerableProperty, - forEach: kEnumerableProperty, - [Symbol.iterator]: { - enumerable: false - }, - [Symbol.toStringTag]: { - value: 'Headers', - configurable: true - }, - [util.inspect.custom]: { - enumerable: false - } - }); - webidl.converters.HeadersInit = function(V) { - if ('Object' === webidl.util.Type(V)) { - if (V[Symbol.iterator]) return webidl.converters['sequence>'](V); - return webidl.converters['record'](V); - } - throw webidl.errors.conversionFailed({ - prefix: 'Headers constructor', - argument: 'Argument 1', - types: [ - 'sequence>', - 'record' - ] - }); - }; - module.exports = { - fill, - Headers, - HeadersList - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Response, makeNetworkError, makeAppropriateNetworkError, filterResponse, makeResponse } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/response.js"); - const { Headers } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js"); - const { Request, makeRequest } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/request.js"); - const zlib = __webpack_require__("zlib"); - const { bytesMatch, makePolicyContainer, clonePolicyContainer, requestBadPort, TAOCheck, appendRequestOriginHeader, responseLocationURL, requestCurrentURL, setRequestReferrerPolicyOnRedirect, tryUpgradeRequestToAPotentiallyTrustworthyURL, createOpaqueTimingInfo, appendFetchMetadata, corsCheck, crossOriginResourcePolicyCheck, determineRequestsReferrer, coarsenedSharedCurrentTime, createDeferredPromise, isBlobLike, sameOrigin, isCancelled, isAborted, isErrorLike, fullyReadBody, readableStreamClose, isomorphicEncode, urlIsLocal, urlIsHttpHttpsScheme, urlHasHttpsScheme } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { kState, kHeaders, kGuard, kRealm } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const assert = __webpack_require__("assert"); - const { safelyExtractBody } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/body.js"); - const { redirectStatusSet, nullBodyStatus, safeMethodsSet, requestBodyHeader, subresourceSet, DOMException: DOMException1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { kHeadersList } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const EE = __webpack_require__("events"); - const { Readable, pipeline } = __webpack_require__("stream"); - const { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { dataURLProcessor, serializeAMimeType } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { TransformStream: TransformStream1 } = __webpack_require__("stream/web"); - const { getGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { STATUS_CODES } = __webpack_require__("http"); - const GET_OR_HEAD = [ - 'GET', - 'HEAD' - ]; - let resolveObjectURL; - let ReadableStream1 = globalThis.ReadableStream; - class Fetch extends EE { - constructor(dispatcher){ - super(); - this.dispatcher = dispatcher; - this.connection = null; - this.dump = false; - this.state = 'ongoing'; - this.setMaxListeners(21); - } - terminate(reason) { - if ('ongoing' !== this.state) return; - this.state = 'terminated'; - this.connection?.destroy(reason); - this.emit('terminated', reason); - } - abort(error) { - if ('ongoing' !== this.state) return; - this.state = 'aborted'; - if (!error) error = new DOMException1('The operation was aborted.', 'AbortError'); - this.serializedAbortReason = error; - this.connection?.destroy(error); - this.emit('terminated', error); - } - } - function fetch(input, init = {}) { - webidl.argumentLengthCheck(arguments, 1, { - header: 'globalThis.fetch' - }); - const p = createDeferredPromise(); - let requestObject; - try { - requestObject = new Request(input, init); - } catch (e) { - p.reject(e); - return p.promise; - } - const request = requestObject[kState]; - if (requestObject.signal.aborted) { - abortFetch(p, request, null, requestObject.signal.reason); - return p.promise; - } - const globalObject = request.client.globalObject; - if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') request.serviceWorkers = 'none'; - let responseObject = null; - const relevantRealm = null; - let locallyAborted = false; - let controller = null; - addAbortListener(requestObject.signal, ()=>{ - locallyAborted = true; - assert(null != controller); - controller.abort(requestObject.signal.reason); - abortFetch(p, request, responseObject, requestObject.signal.reason); - }); - const handleFetchDone = (response)=>finalizeAndReportTiming(response, 'fetch'); - const processResponse = (response)=>{ - if (locallyAborted) return Promise.resolve(); - if (response.aborted) { - abortFetch(p, request, responseObject, controller.serializedAbortReason); - return Promise.resolve(); - } - if ('error' === response.type) { - p.reject(Object.assign(new TypeError('fetch failed'), { - cause: response.error - })); - return Promise.resolve(); - } - responseObject = new Response(); - responseObject[kState] = response; - responseObject[kRealm] = relevantRealm; - responseObject[kHeaders][kHeadersList] = response.headersList; - responseObject[kHeaders][kGuard] = 'immutable'; - responseObject[kHeaders][kRealm] = relevantRealm; - p.resolve(responseObject); - }; - controller = fetching({ - request, - processResponseEndOfBody: handleFetchDone, - processResponse, - dispatcher: init.dispatcher ?? getGlobalDispatcher() - }); - return p.promise; - } - function finalizeAndReportTiming(response, initiatorType = 'other') { - if ('error' === response.type && response.aborted) return; - if (!response.urlList?.length) return; - const originalURL = response.urlList[0]; - let timingInfo = response.timingInfo; - let cacheState = response.cacheState; - if (!urlIsHttpHttpsScheme(originalURL)) return; - if (null === timingInfo) return; - if (!response.timingAllowPassed) { - timingInfo = createOpaqueTimingInfo({ - startTime: timingInfo.startTime - }); - cacheState = ''; - } - timingInfo.endTime = coarsenedSharedCurrentTime(); - response.timingInfo = timingInfo; - markResourceTiming(timingInfo, originalURL, initiatorType, globalThis, cacheState); - } - function markResourceTiming(timingInfo, originalURL, initiatorType, globalThis1, cacheState) { - if (nodeMajor > 18 || 18 === nodeMajor && nodeMinor >= 2) performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis1, cacheState); - } - function abortFetch(p, request, responseObject, error) { - if (!error) error = new DOMException1('The operation was aborted.', 'AbortError'); - p.reject(error); - if (null != request.body && isReadable(request.body?.stream)) request.body.stream.cancel(error).catch((err)=>{ - if ('ERR_INVALID_STATE' === err.code) return; - throw err; - }); - if (null == responseObject) return; - const response = responseObject[kState]; - if (null != response.body && isReadable(response.body?.stream)) response.body.stream.cancel(error).catch((err)=>{ - if ('ERR_INVALID_STATE' === err.code) return; - throw err; - }); - } - function fetching({ request, processRequestBodyChunkLength, processRequestEndOfBody, processResponse, processResponseEndOfBody, processResponseConsumeBody, useParallelQueue = false, dispatcher }) { - let taskDestination = null; - let crossOriginIsolatedCapability = false; - if (null != request.client) { - taskDestination = request.client.globalObject; - crossOriginIsolatedCapability = request.client.crossOriginIsolatedCapability; - } - const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability); - const timingInfo = createOpaqueTimingInfo({ - startTime: currenTime - }); - const fetchParams = { - controller: new Fetch(dispatcher), - request, - timingInfo, - processRequestBodyChunkLength, - processRequestEndOfBody, - processResponse, - processResponseConsumeBody, - processResponseEndOfBody, - taskDestination, - crossOriginIsolatedCapability - }; - assert(!request.body || request.body.stream); - if ('client' === request.window) request.window = request.client?.globalObject?.constructor?.name === 'Window' ? request.client : 'no-window'; - if ('client' === request.origin) request.origin = request.client?.origin; - if ('client' === request.policyContainer) if (null != request.client) request.policyContainer = clonePolicyContainer(request.client.policyContainer); - else request.policyContainer = makePolicyContainer(); - if (!request.headersList.contains('accept')) { - const value = '*/*'; - request.headersList.append('accept', value); - } - if (!request.headersList.contains('accept-language')) request.headersList.append('accept-language', '*'); - request.priority; - subresourceSet.has(request.destination); - mainFetch(fetchParams).catch((err)=>{ - fetchParams.controller.terminate(err); - }); - return fetchParams.controller; - } - async function mainFetch(fetchParams, recursive = false) { - const request = fetchParams.request; - let response = null; - if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) response = makeNetworkError('local URLs only'); - tryUpgradeRequestToAPotentiallyTrustworthyURL(request); - if ('blocked' === requestBadPort(request)) response = makeNetworkError('bad port'); - if ('' === request.referrerPolicy) request.referrerPolicy = request.policyContainer.referrerPolicy; - if ('no-referrer' !== request.referrer) request.referrer = determineRequestsReferrer(request); - if (null === response) response = await (async ()=>{ - const currentURL = requestCurrentURL(request); - if (sameOrigin(currentURL, request.url) && 'basic' === request.responseTainting || 'data:' === currentURL.protocol || 'navigate' === request.mode || 'websocket' === request.mode) { - request.responseTainting = 'basic'; - return await schemeFetch(fetchParams); - } - if ('same-origin' === request.mode) return makeNetworkError('request mode cannot be "same-origin"'); - if ('no-cors' === request.mode) { - if ('follow' !== request.redirect) return makeNetworkError('redirect mode cannot be "follow" for "no-cors" request'); - request.responseTainting = 'opaque'; - return await schemeFetch(fetchParams); - } - if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) return makeNetworkError('URL scheme must be a HTTP(S) scheme'); - request.responseTainting = 'cors'; - return await httpFetch(fetchParams); - })(); - if (recursive) return response; - if (0 !== response.status && !response.internalResponse) { - request.responseTainting; - if ('basic' === request.responseTainting) response = filterResponse(response, 'basic'); - else if ('cors' === request.responseTainting) response = filterResponse(response, 'cors'); - else if ('opaque' === request.responseTainting) response = filterResponse(response, 'opaque'); - else assert(false); - } - let internalResponse = 0 === response.status ? response : response.internalResponse; - if (0 === internalResponse.urlList.length) internalResponse.urlList.push(...request.urlList); - if (!request.timingAllowFailed) response.timingAllowPassed = true; - if ('opaque' === response.type && 206 === internalResponse.status && internalResponse.rangeRequested && !request.headers.contains('range')) response = internalResponse = makeNetworkError(); - if (0 !== response.status && ('HEAD' === request.method || 'CONNECT' === request.method || nullBodyStatus.includes(internalResponse.status))) { - internalResponse.body = null; - fetchParams.controller.dump = true; - } - if (request.integrity) { - const processBodyError = (reason)=>fetchFinale(fetchParams, makeNetworkError(reason)); - if ('opaque' === request.responseTainting || null == response.body) return void processBodyError(response.error); - const processBody = (bytes)=>{ - if (!bytesMatch(bytes, request.integrity)) return void processBodyError('integrity mismatch'); - response.body = safelyExtractBody(bytes)[0]; - fetchFinale(fetchParams, response); - }; - await fullyReadBody(response.body, processBody, processBodyError); - } else fetchFinale(fetchParams, response); - } - function schemeFetch(fetchParams) { - if (isCancelled(fetchParams) && 0 === fetchParams.request.redirectCount) return Promise.resolve(makeAppropriateNetworkError(fetchParams)); - const { request } = fetchParams; - const { protocol: scheme } = requestCurrentURL(request); - switch(scheme){ - case 'about:': - return Promise.resolve(makeNetworkError('about scheme is not supported')); - case 'blob:': - { - if (!resolveObjectURL) resolveObjectURL = __webpack_require__("buffer").resolveObjectURL; - const blobURLEntry = requestCurrentURL(request); - if (0 !== blobURLEntry.search.length) return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.')); - const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString()); - if ('GET' !== request.method || !isBlobLike(blobURLEntryObject)) return Promise.resolve(makeNetworkError('invalid method')); - const bodyWithType = safelyExtractBody(blobURLEntryObject); - const body = bodyWithType[0]; - const length = isomorphicEncode(`${body.length}`); - const type = bodyWithType[1] ?? ''; - const response = makeResponse({ - statusText: 'OK', - headersList: [ - [ - 'content-length', - { - name: 'Content-Length', - value: length - } - ], - [ - 'content-type', - { - name: 'Content-Type', - value: type - } - ] - ] - }); - response.body = body; - return Promise.resolve(response); - } - case 'data:': - { - const currentURL = requestCurrentURL(request); - const dataURLStruct = dataURLProcessor(currentURL); - if ('failure' === dataURLStruct) return Promise.resolve(makeNetworkError('failed to fetch the data URL')); - const mimeType = serializeAMimeType(dataURLStruct.mimeType); - return Promise.resolve(makeResponse({ - statusText: 'OK', - headersList: [ - [ - 'content-type', - { - name: 'Content-Type', - value: mimeType - } - ] - ], - body: safelyExtractBody(dataURLStruct.body)[0] - })); - } - case 'file:': - return Promise.resolve(makeNetworkError('not implemented... yet...')); - case 'http:': - case 'https:': - return httpFetch(fetchParams).catch((err)=>makeNetworkError(err)); - default: - return Promise.resolve(makeNetworkError('unknown scheme')); - } - } - function finalizeResponse(fetchParams, response) { - fetchParams.request.done = true; - if (null != fetchParams.processResponseDone) queueMicrotask(()=>fetchParams.processResponseDone(response)); - } - function fetchFinale(fetchParams, response) { - if ('error' === response.type) { - response.urlList = [ - fetchParams.request.urlList[0] - ]; - response.timingInfo = createOpaqueTimingInfo({ - startTime: fetchParams.timingInfo.startTime - }); - } - const processResponseEndOfBody = ()=>{ - fetchParams.request.done = true; - if (null != fetchParams.processResponseEndOfBody) queueMicrotask(()=>fetchParams.processResponseEndOfBody(response)); - }; - if (null != fetchParams.processResponse) queueMicrotask(()=>fetchParams.processResponse(response)); - if (null == response.body) processResponseEndOfBody(); - else { - const identityTransformAlgorithm = (chunk, controller)=>{ - controller.enqueue(chunk); - }; - const transformStream = new TransformStream1({ - start () {}, - transform: identityTransformAlgorithm, - flush: processResponseEndOfBody - }, { - size () { - return 1; - } - }, { - size () { - return 1; - } - }); - response.body = { - stream: response.body.stream.pipeThrough(transformStream) - }; - } - if (null != fetchParams.processResponseConsumeBody) { - const processBody = (nullOrBytes)=>fetchParams.processResponseConsumeBody(response, nullOrBytes); - const processBodyError = (failure)=>fetchParams.processResponseConsumeBody(response, failure); - if (null != response.body) return fullyReadBody(response.body, processBody, processBodyError); - queueMicrotask(()=>processBody(null)); - return Promise.resolve(); - } - } - async function httpFetch(fetchParams) { - const request = fetchParams.request; - let response = null; - let actualResponse = null; - const timingInfo = fetchParams.timingInfo; - request.serviceWorkers; - if (null === response) { - if ('follow' === request.redirect) request.serviceWorkers = 'none'; - actualResponse = response = await httpNetworkOrCacheFetch(fetchParams); - if ('cors' === request.responseTainting && 'failure' === corsCheck(request, response)) return makeNetworkError('cors failure'); - if ('failure' === TAOCheck(request, response)) request.timingAllowFailed = true; - } - if (('opaque' === request.responseTainting || 'opaque' === response.type) && 'blocked' === crossOriginResourcePolicyCheck(request.origin, request.client, request.destination, actualResponse)) return makeNetworkError('blocked'); - if (redirectStatusSet.has(actualResponse.status)) { - if ('manual' !== request.redirect) fetchParams.controller.connection.destroy(); - if ('error' === request.redirect) response = makeNetworkError('unexpected redirect'); - else if ('manual' === request.redirect) response = actualResponse; - else if ('follow' === request.redirect) response = await httpRedirectFetch(fetchParams, response); - else assert(false); - } - response.timingInfo = timingInfo; - return response; - } - function httpRedirectFetch(fetchParams, response) { - const request = fetchParams.request; - const actualResponse = response.internalResponse ? response.internalResponse : response; - let locationURL; - try { - locationURL = responseLocationURL(actualResponse, requestCurrentURL(request).hash); - if (null == locationURL) return response; - } catch (err) { - return Promise.resolve(makeNetworkError(err)); - } - if (!urlIsHttpHttpsScheme(locationURL)) return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme')); - if (20 === request.redirectCount) return Promise.resolve(makeNetworkError('redirect count exceeded')); - request.redirectCount += 1; - if ('cors' === request.mode && (locationURL.username || locationURL.password) && !sameOrigin(request, locationURL)) return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')); - if ('cors' === request.responseTainting && (locationURL.username || locationURL.password)) return Promise.resolve(makeNetworkError('URL cannot contain credentials for request mode "cors"')); - if (303 !== actualResponse.status && null != request.body && null == request.body.source) return Promise.resolve(makeNetworkError()); - if ([ - 301, - 302 - ].includes(actualResponse.status) && 'POST' === request.method || 303 === actualResponse.status && !GET_OR_HEAD.includes(request.method)) { - request.method = 'GET'; - request.body = null; - for (const headerName of requestBodyHeader)request.headersList.delete(headerName); - } - if (!sameOrigin(requestCurrentURL(request), locationURL)) { - request.headersList.delete('authorization'); - request.headersList.delete('proxy-authorization', true); - request.headersList.delete('cookie'); - request.headersList.delete('host'); - } - if (null != request.body) { - assert(null != request.body.source); - request.body = safelyExtractBody(request.body.source)[0]; - } - const timingInfo = fetchParams.timingInfo; - timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); - if (0 === timingInfo.redirectStartTime) timingInfo.redirectStartTime = timingInfo.startTime; - request.urlList.push(locationURL); - setRequestReferrerPolicyOnRedirect(request, actualResponse); - return mainFetch(fetchParams, true); - } - async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) { - const request = fetchParams.request; - let httpFetchParams = null; - let httpRequest = null; - let response = null; - const httpCache = null; - const revalidatingFlag = false; - if ('no-window' === request.window && 'error' === request.redirect) { - httpFetchParams = fetchParams; - httpRequest = request; - } else { - httpRequest = makeRequest(request); - httpFetchParams = { - ...fetchParams - }; - httpFetchParams.request = httpRequest; - } - const includeCredentials = 'include' === request.credentials || 'same-origin' === request.credentials && 'basic' === request.responseTainting; - const contentLength = httpRequest.body ? httpRequest.body.length : null; - let contentLengthHeaderValue = null; - if (null == httpRequest.body && [ - 'POST', - 'PUT' - ].includes(httpRequest.method)) contentLengthHeaderValue = '0'; - if (null != contentLength) contentLengthHeaderValue = isomorphicEncode(`${contentLength}`); - if (null != contentLengthHeaderValue) httpRequest.headersList.append('content-length', contentLengthHeaderValue); - null != contentLength && httpRequest.keepalive; - if (httpRequest.referrer instanceof URL) httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href)); - appendRequestOriginHeader(httpRequest); - appendFetchMetadata(httpRequest); - if (!httpRequest.headersList.contains('user-agent')) httpRequest.headersList.append('user-agent', "u" < typeof esbuildDetection ? 'undici' : 'node'); - if ('default' === httpRequest.cache && (httpRequest.headersList.contains('if-modified-since') || httpRequest.headersList.contains('if-none-match') || httpRequest.headersList.contains('if-unmodified-since') || httpRequest.headersList.contains('if-match') || httpRequest.headersList.contains('if-range'))) httpRequest.cache = 'no-store'; - if ('no-cache' === httpRequest.cache && !httpRequest.preventNoCacheCacheControlHeaderModification && !httpRequest.headersList.contains('cache-control')) httpRequest.headersList.append('cache-control', 'max-age=0'); - if ('no-store' === httpRequest.cache || 'reload' === httpRequest.cache) { - if (!httpRequest.headersList.contains('pragma')) httpRequest.headersList.append('pragma', 'no-cache'); - if (!httpRequest.headersList.contains('cache-control')) httpRequest.headersList.append('cache-control', 'no-cache'); - } - if (httpRequest.headersList.contains('range')) httpRequest.headersList.append('accept-encoding', 'identity'); - if (!httpRequest.headersList.contains('accept-encoding')) if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate'); - else httpRequest.headersList.append('accept-encoding', 'gzip, deflate'); - httpRequest.headersList.delete('host'); - if (null == httpCache) httpRequest.cache = 'no-store'; - 'no-store' !== httpRequest.mode && httpRequest.mode; - if (null == response) { - if ('only-if-cached' === httpRequest.mode) return makeNetworkError('only if cached'); - const forwardResponse = await httpNetworkFetch(httpFetchParams, includeCredentials, isNewConnectionFetch); - !safeMethodsSet.has(httpRequest.method) && forwardResponse.status >= 200 && forwardResponse.status; - revalidatingFlag && forwardResponse.status; - if (null == response) response = forwardResponse; - } - response.urlList = [ - ...httpRequest.urlList - ]; - if (httpRequest.headersList.contains('range')) response.rangeRequested = true; - response.requestIncludesCredentials = includeCredentials; - if (407 === response.status) { - if ('no-window' === request.window) return makeNetworkError(); - if (isCancelled(fetchParams)) return makeAppropriateNetworkError(fetchParams); - return makeNetworkError('proxy authentication required'); - } - if (421 === response.status && !isNewConnectionFetch && (null == request.body || null != request.body.source)) { - if (isCancelled(fetchParams)) return makeAppropriateNetworkError(fetchParams); - fetchParams.controller.connection.destroy(); - response = await httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch, true); - } - return response; - } - async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) { - assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); - fetchParams.controller.connection = { - abort: null, - destroyed: false, - destroy (err) { - if (!this.destroyed) { - this.destroyed = true; - this.abort?.(err ?? new DOMException1('The operation was aborted.', 'AbortError')); - } - } - }; - const request = fetchParams.request; - let response = null; - const timingInfo = fetchParams.timingInfo; - const httpCache = null; - if (null == httpCache) request.cache = 'no-store'; - request.mode; - let requestBody = null; - if (null == request.body && fetchParams.processRequestEndOfBody) queueMicrotask(()=>fetchParams.processRequestEndOfBody()); - else if (null != request.body) { - const processBodyChunk = async function*(bytes) { - if (isCancelled(fetchParams)) return; - yield bytes; - fetchParams.processRequestBodyChunkLength?.(bytes.byteLength); - }; - const processEndOfBody = ()=>{ - if (isCancelled(fetchParams)) return; - if (fetchParams.processRequestEndOfBody) fetchParams.processRequestEndOfBody(); - }; - const processBodyError = (e)=>{ - if (isCancelled(fetchParams)) return; - if ('AbortError' === e.name) fetchParams.controller.abort(); - else fetchParams.controller.terminate(e); - }; - requestBody = async function*() { - try { - for await (const bytes of request.body.stream)yield* processBodyChunk(bytes); - processEndOfBody(); - } catch (err) { - processBodyError(err); - } - }(); - } - try { - const { body, status, statusText, headersList, socket } = await dispatch({ - body: requestBody - }); - if (socket) response = makeResponse({ - status, - statusText, - headersList, - socket - }); - else { - const iterator = body[Symbol.asyncIterator](); - fetchParams.controller.next = ()=>iterator.next(); - response = makeResponse({ - status, - statusText, - headersList - }); - } - } catch (err) { - if ('AbortError' === err.name) { - fetchParams.controller.connection.destroy(); - return makeAppropriateNetworkError(fetchParams, err); - } - return makeNetworkError(err); - } - const pullAlgorithm = ()=>{ - fetchParams.controller.resume(); - }; - const cancelAlgorithm = (reason)=>{ - fetchParams.controller.abort(reason); - }; - if (!ReadableStream1) ReadableStream1 = __webpack_require__("stream/web").ReadableStream; - const stream = new ReadableStream1({ - async start (controller) { - fetchParams.controller.controller = controller; - }, - async pull (controller) { - await pullAlgorithm(); - }, - async cancel (reason) { - await cancelAlgorithm(reason); - } - }, { - highWaterMark: 0, - size () { - return 1; - } - }); - response.body = { - stream - }; - fetchParams.controller.on('terminated', onAborted); - fetchParams.controller.resume = async ()=>{ - while(true){ - let bytes; - let isFailure; - try { - const { done, value } = await fetchParams.controller.next(); - if (isAborted(fetchParams)) break; - bytes = done ? void 0 : value; - } catch (err) { - if (fetchParams.controller.ended && !timingInfo.encodedBodySize) bytes = void 0; - else { - bytes = err; - isFailure = true; - } - } - if (void 0 === bytes) { - readableStreamClose(fetchParams.controller.controller); - finalizeResponse(fetchParams, response); - return; - } - timingInfo.decodedBodySize += bytes?.byteLength ?? 0; - if (isFailure) return void fetchParams.controller.terminate(bytes); - fetchParams.controller.controller.enqueue(new Uint8Array(bytes)); - if (isErrored(stream)) return void fetchParams.controller.terminate(); - if (!fetchParams.controller.controller.desiredSize) return; - } - }; - function onAborted(reason) { - if (isAborted(fetchParams)) { - response.aborted = true; - if (isReadable(stream)) fetchParams.controller.controller.error(fetchParams.controller.serializedAbortReason); - } else if (isReadable(stream)) fetchParams.controller.controller.error(new TypeError('terminated', { - cause: isErrorLike(reason) ? reason : void 0 - })); - fetchParams.controller.connection.destroy(); - } - return response; - async function dispatch({ body }) { - const url = requestCurrentURL(request); - const agent = fetchParams.controller.dispatcher; - return new Promise((resolve, reject)=>agent.dispatch({ - path: url.pathname + url.search, - origin: url.origin, - method: request.method, - body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body, - headers: request.headersList.entries, - maxRedirections: 0, - upgrade: 'websocket' === request.mode ? 'websocket' : void 0 - }, { - body: null, - abort: null, - onConnect (abort) { - const { connection } = fetchParams.controller; - if (connection.destroyed) abort(new DOMException1('The operation was aborted.', 'AbortError')); - else { - fetchParams.controller.on('terminated', abort); - this.abort = connection.abort = abort; - } - }, - onHeaders (status, headersList, resume, statusText) { - if (status < 200) return; - let codings = []; - let location = ''; - const headers = new Headers(); - if (Array.isArray(headersList)) for(let n = 0; n < headersList.length; n += 2){ - const key = headersList[n + 0].toString('latin1'); - const val = headersList[n + 1].toString('latin1'); - if ('content-encoding' === key.toLowerCase()) codings = val.toLowerCase().split(',').map((x)=>x.trim()); - else if ('location' === key.toLowerCase()) location = val; - headers[kHeadersList].append(key, val); - } - else { - const keys = Object.keys(headersList); - for (const key of keys){ - const val = headersList[key]; - if ('content-encoding' === key.toLowerCase()) codings = val.toLowerCase().split(',').map((x)=>x.trim()).reverse(); - else if ('location' === key.toLowerCase()) location = val; - headers[kHeadersList].append(key, val); - } - } - this.body = new Readable({ - read: resume - }); - const decoders = []; - const willFollow = 'follow' === request.redirect && location && redirectStatusSet.has(status); - if ('HEAD' !== request.method && 'CONNECT' !== request.method && !nullBodyStatus.includes(status) && !willFollow) for (const coding of codings)if ('x-gzip' === coding || 'gzip' === coding) decoders.push(zlib.createGunzip({ - flush: zlib.constants.Z_SYNC_FLUSH, - finishFlush: zlib.constants.Z_SYNC_FLUSH - })); - else if ('deflate' === coding) decoders.push(zlib.createInflate()); - else if ('br' === coding) decoders.push(zlib.createBrotliDecompress()); - else { - decoders.length = 0; - break; - } - resolve({ - status, - statusText, - headersList: headers[kHeadersList], - body: decoders.length ? pipeline(this.body, ...decoders, ()=>{}) : this.body.on('error', ()=>{}) - }); - return true; - }, - onData (chunk) { - if (fetchParams.controller.dump) return; - const bytes = chunk; - timingInfo.encodedBodySize += bytes.byteLength; - return this.body.push(bytes); - }, - onComplete () { - if (this.abort) fetchParams.controller.off('terminated', this.abort); - fetchParams.controller.ended = true; - this.body.push(null); - }, - onError (error) { - if (this.abort) fetchParams.controller.off('terminated', this.abort); - this.body?.destroy(error); - fetchParams.controller.terminate(error); - reject(error); - }, - onUpgrade (status, headersList, socket) { - if (101 !== status) return; - const headers = new Headers(); - for(let n = 0; n < headersList.length; n += 2){ - const key = headersList[n + 0].toString('latin1'); - const val = headersList[n + 1].toString('latin1'); - headers[kHeadersList].append(key, val); - } - resolve({ - status, - statusText: STATUS_CODES[status], - headersList: headers[kHeadersList], - socket - }); - return true; - } - })); - } - } - module.exports = { - fetch, - Fetch, - fetching, - finalizeAndReportTiming - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/request.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { extractBody, mixinBody, cloneBody } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/body.js"); - const { Headers, fill: fillHeaders, HeadersList } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js"); - const { FinalizationRegistry: FinalizationRegistry1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/compat/dispatcher-weakref.js")(); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { isValidHTTPToken, sameOrigin, normalizeMethod, makePolicyContainer, normalizeMethodRecord } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { forbiddenMethodsSet, corsSafeListedMethodsSet, referrerPolicy, requestRedirect, requestMode, requestCredentials, requestCache, requestDuplex } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { kEnumerableProperty } = util; - const { kHeaders, kSignal, kState, kGuard, kRealm } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { getGlobalOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js"); - const { URLSerializer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { kHeadersList, kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const assert = __webpack_require__("assert"); - const { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = __webpack_require__("events"); - let TransformStream1 = globalThis.TransformStream; - const kAbortController = Symbol('abortController'); - const requestFinalizer = new FinalizationRegistry1(({ signal, abort })=>{ - signal.removeEventListener('abort', abort); - }); - class Request { - constructor(input, init = {}){ - if (input === kConstruct) return; - webidl.argumentLengthCheck(arguments, 1, { - header: 'Request constructor' - }); - input = webidl.converters.RequestInfo(input); - init = webidl.converters.RequestInit(init); - this[kRealm] = { - settingsObject: { - baseUrl: getGlobalOrigin(), - get origin () { - return this.baseUrl?.origin; - }, - policyContainer: makePolicyContainer() - } - }; - let request = null; - let fallbackMode = null; - const baseUrl = this[kRealm].settingsObject.baseUrl; - let signal = null; - if ('string' == typeof input) { - let parsedURL; - try { - parsedURL = new URL(input, baseUrl); - } catch (err) { - throw new TypeError('Failed to parse URL from ' + input, { - cause: err - }); - } - if (parsedURL.username || parsedURL.password) throw new TypeError('Request cannot be constructed from a URL that includes credentials: ' + input); - request = makeRequest({ - urlList: [ - parsedURL - ] - }); - fallbackMode = 'cors'; - } else { - assert(input instanceof Request); - request = input[kState]; - signal = input[kSignal]; - } - const origin = this[kRealm].settingsObject.origin; - let window = 'client'; - if (request.window?.constructor?.name === 'EnvironmentSettingsObject' && sameOrigin(request.window, origin)) window = request.window; - if (null != init.window) throw new TypeError(`'window' option '${window}' must be null`); - if ('window' in init) window = 'no-window'; - request = makeRequest({ - method: request.method, - headersList: request.headersList, - unsafeRequest: request.unsafeRequest, - client: this[kRealm].settingsObject, - window, - priority: request.priority, - origin: request.origin, - referrer: request.referrer, - referrerPolicy: request.referrerPolicy, - mode: request.mode, - credentials: request.credentials, - cache: request.cache, - redirect: request.redirect, - integrity: request.integrity, - keepalive: request.keepalive, - reloadNavigation: request.reloadNavigation, - historyNavigation: request.historyNavigation, - urlList: [ - ...request.urlList - ] - }); - const initHasKey = 0 !== Object.keys(init).length; - if (initHasKey) { - if ('navigate' === request.mode) request.mode = 'same-origin'; - request.reloadNavigation = false; - request.historyNavigation = false; - request.origin = 'client'; - request.referrer = 'client'; - request.referrerPolicy = ''; - request.url = request.urlList[request.urlList.length - 1]; - request.urlList = [ - request.url - ]; - } - if (void 0 !== init.referrer) { - const referrer = init.referrer; - if ('' === referrer) request.referrer = 'no-referrer'; - else { - let parsedReferrer; - try { - parsedReferrer = new URL(referrer, baseUrl); - } catch (err) { - throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { - cause: err - }); - } - if ('about:' === parsedReferrer.protocol && 'client' === parsedReferrer.hostname || origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl)) request.referrer = 'client'; - else request.referrer = parsedReferrer; - } - } - if (void 0 !== init.referrerPolicy) request.referrerPolicy = init.referrerPolicy; - let mode; - mode = void 0 !== init.mode ? init.mode : fallbackMode; - if ('navigate' === mode) throw webidl.errors.exception({ - header: 'Request constructor', - message: 'invalid request mode navigate.' - }); - if (null != mode) request.mode = mode; - if (void 0 !== init.credentials) request.credentials = init.credentials; - if (void 0 !== init.cache) request.cache = init.cache; - if ('only-if-cached' === request.cache && 'same-origin' !== request.mode) throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode"); - if (void 0 !== init.redirect) request.redirect = init.redirect; - if (null != init.integrity) request.integrity = String(init.integrity); - if (void 0 !== init.keepalive) request.keepalive = Boolean(init.keepalive); - if (void 0 !== init.method) { - let method = init.method; - if (!isValidHTTPToken(method)) throw new TypeError(`'${method}' is not a valid HTTP method.`); - if (forbiddenMethodsSet.has(method.toUpperCase())) throw new TypeError(`'${method}' HTTP method is unsupported.`); - method = normalizeMethodRecord[method] ?? normalizeMethod(method); - request.method = method; - } - if (void 0 !== init.signal) signal = init.signal; - this[kState] = request; - const ac = new AbortController(); - this[kSignal] = ac.signal; - this[kSignal][kRealm] = this[kRealm]; - if (null != signal) { - if (!signal || 'boolean' != typeof signal.aborted || 'function' != typeof signal.addEventListener) throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal."); - if (signal.aborted) ac.abort(signal.reason); - else { - this[kAbortController] = ac; - const acRef = new WeakRef(ac); - const abort = function() { - const ac = acRef.deref(); - if (void 0 !== ac) ac.abort(this.reason); - }; - try { - if ('function' == typeof getMaxListeners && getMaxListeners(signal) === defaultMaxListeners) setMaxListeners(100, signal); - else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) setMaxListeners(100, signal); - } catch {} - util.addAbortListener(signal, abort); - requestFinalizer.register(ac, { - signal, - abort - }); - } - } - this[kHeaders] = new Headers(kConstruct); - this[kHeaders][kHeadersList] = request.headersList; - this[kHeaders][kGuard] = 'request'; - this[kHeaders][kRealm] = this[kRealm]; - if ('no-cors' === mode) { - if (!corsSafeListedMethodsSet.has(request.method)) throw new TypeError(`'${request.method} is unsupported in no-cors mode.`); - this[kHeaders][kGuard] = 'request-no-cors'; - } - if (initHasKey) { - const headersList = this[kHeaders][kHeadersList]; - const headers = void 0 !== init.headers ? init.headers : new HeadersList(headersList); - headersList.clear(); - if (headers instanceof HeadersList) { - for (const [key, val] of headers)headersList.append(key, val); - headersList.cookies = headers.cookies; - } else fillHeaders(this[kHeaders], headers); - } - const inputBody = input instanceof Request ? input[kState].body : null; - if ((null != init.body || null != inputBody) && ('GET' === request.method || 'HEAD' === request.method)) throw new TypeError('Request with GET/HEAD method cannot have body.'); - let initBody = null; - if (null != init.body) { - const [extractedBody, contentType] = extractBody(init.body, request.keepalive); - initBody = extractedBody; - if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) this[kHeaders].append('content-type', contentType); - } - const inputOrInitBody = initBody ?? inputBody; - if (null != inputOrInitBody && null == inputOrInitBody.source) { - if (null != initBody && null == init.duplex) throw new TypeError('RequestInit: duplex option is required when sending a body.'); - if ('same-origin' !== request.mode && 'cors' !== request.mode) throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"'); - request.useCORSPreflightFlag = true; - } - let finalBody = inputOrInitBody; - if (null == initBody && null != inputBody) { - if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) throw new TypeError('Cannot construct a Request with a Request object that has already been used.'); - if (!TransformStream1) TransformStream1 = __webpack_require__("stream/web").TransformStream; - const identityTransform = new TransformStream1(); - inputBody.stream.pipeThrough(identityTransform); - finalBody = { - source: inputBody.source, - length: inputBody.length, - stream: identityTransform.readable - }; - } - this[kState].body = finalBody; - } - get method() { - webidl.brandCheck(this, Request); - return this[kState].method; - } - get url() { - webidl.brandCheck(this, Request); - return URLSerializer(this[kState].url); - } - get headers() { - webidl.brandCheck(this, Request); - return this[kHeaders]; - } - get destination() { - webidl.brandCheck(this, Request); - return this[kState].destination; - } - get referrer() { - webidl.brandCheck(this, Request); - if ('no-referrer' === this[kState].referrer) return ''; - if ('client' === this[kState].referrer) return 'about:client'; - return this[kState].referrer.toString(); - } - get referrerPolicy() { - webidl.brandCheck(this, Request); - return this[kState].referrerPolicy; - } - get mode() { - webidl.brandCheck(this, Request); - return this[kState].mode; - } - get credentials() { - return this[kState].credentials; - } - get cache() { - webidl.brandCheck(this, Request); - return this[kState].cache; - } - get redirect() { - webidl.brandCheck(this, Request); - return this[kState].redirect; - } - get integrity() { - webidl.brandCheck(this, Request); - return this[kState].integrity; - } - get keepalive() { - webidl.brandCheck(this, Request); - return this[kState].keepalive; - } - get isReloadNavigation() { - webidl.brandCheck(this, Request); - return this[kState].reloadNavigation; - } - get isHistoryNavigation() { - webidl.brandCheck(this, Request); - return this[kState].historyNavigation; - } - get signal() { - webidl.brandCheck(this, Request); - return this[kSignal]; - } - get body() { - webidl.brandCheck(this, Request); - return this[kState].body ? this[kState].body.stream : null; - } - get bodyUsed() { - webidl.brandCheck(this, Request); - return !!this[kState].body && util.isDisturbed(this[kState].body.stream); - } - get duplex() { - webidl.brandCheck(this, Request); - return 'half'; - } - clone() { - webidl.brandCheck(this, Request); - if (this.bodyUsed || this.body?.locked) throw new TypeError('unusable'); - const clonedRequest = cloneRequest(this[kState]); - const clonedRequestObject = new Request(kConstruct); - clonedRequestObject[kState] = clonedRequest; - clonedRequestObject[kRealm] = this[kRealm]; - clonedRequestObject[kHeaders] = new Headers(kConstruct); - clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList; - clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]; - clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]; - const ac = new AbortController(); - if (this.signal.aborted) ac.abort(this.signal.reason); - else util.addAbortListener(this.signal, ()=>{ - ac.abort(this.signal.reason); - }); - clonedRequestObject[kSignal] = ac.signal; - return clonedRequestObject; - } - } - mixinBody(Request); - function makeRequest(init) { - const request = { - method: 'GET', - localURLsOnly: false, - unsafeRequest: false, - body: null, - client: null, - reservedClient: null, - replacesClientId: '', - window: 'client', - keepalive: false, - serviceWorkers: 'all', - initiator: '', - destination: '', - priority: null, - origin: 'client', - policyContainer: 'client', - referrer: 'client', - referrerPolicy: '', - mode: 'no-cors', - useCORSPreflightFlag: false, - credentials: 'same-origin', - useCredentials: false, - cache: 'default', - redirect: 'follow', - integrity: '', - cryptoGraphicsNonceMetadata: '', - parserMetadata: '', - reloadNavigation: false, - historyNavigation: false, - userActivation: false, - taintedOrigin: false, - redirectCount: 0, - responseTainting: 'basic', - preventNoCacheCacheControlHeaderModification: false, - done: false, - timingAllowFailed: false, - ...init, - headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList() - }; - request.url = request.urlList[0]; - return request; - } - function cloneRequest(request) { - const newRequest = makeRequest({ - ...request, - body: null - }); - if (null != request.body) newRequest.body = cloneBody(request.body); - return newRequest; - } - Object.defineProperties(Request.prototype, { - method: kEnumerableProperty, - url: kEnumerableProperty, - headers: kEnumerableProperty, - redirect: kEnumerableProperty, - clone: kEnumerableProperty, - signal: kEnumerableProperty, - duplex: kEnumerableProperty, - destination: kEnumerableProperty, - body: kEnumerableProperty, - bodyUsed: kEnumerableProperty, - isHistoryNavigation: kEnumerableProperty, - isReloadNavigation: kEnumerableProperty, - keepalive: kEnumerableProperty, - integrity: kEnumerableProperty, - cache: kEnumerableProperty, - credentials: kEnumerableProperty, - attribute: kEnumerableProperty, - referrerPolicy: kEnumerableProperty, - referrer: kEnumerableProperty, - mode: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'Request', - configurable: true - } - }); - webidl.converters.Request = webidl.interfaceConverter(Request); - webidl.converters.RequestInfo = function(V) { - if ('string' == typeof V) return webidl.converters.USVString(V); - if (V instanceof Request) return webidl.converters.Request(V); - return webidl.converters.USVString(V); - }; - webidl.converters.AbortSignal = webidl.interfaceConverter(AbortSignal); - webidl.converters.RequestInit = webidl.dictionaryConverter([ - { - key: 'method', - converter: webidl.converters.ByteString - }, - { - key: 'headers', - converter: webidl.converters.HeadersInit - }, - { - key: 'body', - converter: webidl.nullableConverter(webidl.converters.BodyInit) - }, - { - key: 'referrer', - converter: webidl.converters.USVString - }, - { - key: 'referrerPolicy', - converter: webidl.converters.DOMString, - allowedValues: referrerPolicy - }, - { - key: 'mode', - converter: webidl.converters.DOMString, - allowedValues: requestMode - }, - { - key: 'credentials', - converter: webidl.converters.DOMString, - allowedValues: requestCredentials - }, - { - key: 'cache', - converter: webidl.converters.DOMString, - allowedValues: requestCache - }, - { - key: 'redirect', - converter: webidl.converters.DOMString, - allowedValues: requestRedirect - }, - { - key: 'integrity', - converter: webidl.converters.DOMString - }, - { - key: 'keepalive', - converter: webidl.converters.boolean - }, - { - key: 'signal', - converter: webidl.nullableConverter((signal)=>webidl.converters.AbortSignal(signal, { - strict: false - })) - }, - { - key: 'window', - converter: webidl.converters.any - }, - { - key: 'duplex', - converter: webidl.converters.DOMString, - allowedValues: requestDuplex - } - ]); - module.exports = { - Request, - makeRequest - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/response.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Headers, HeadersList, fill } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js"); - const { extractBody, cloneBody, mixinBody } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/body.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { kEnumerableProperty } = util; - const { isValidReasonPhrase, isCancelled, isAborted, isBlobLike, serializeJavascriptValueToJSONString, isErrorLike, isomorphicEncode } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { redirectStatusSet, nullBodyStatus, DOMException: DOMException1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { kState, kHeaders, kGuard, kRealm } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { FormData } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/formdata.js"); - const { getGlobalOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js"); - const { URLSerializer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { kHeadersList, kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const assert = __webpack_require__("assert"); - const { types } = __webpack_require__("util"); - const ReadableStream1 = globalThis.ReadableStream || __webpack_require__("stream/web").ReadableStream; - const textEncoder = new TextEncoder('utf-8'); - class Response { - static error() { - const relevantRealm = { - settingsObject: {} - }; - const responseObject = new Response(); - responseObject[kState] = makeNetworkError(); - responseObject[kRealm] = relevantRealm; - responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList; - responseObject[kHeaders][kGuard] = 'immutable'; - responseObject[kHeaders][kRealm] = relevantRealm; - return responseObject; - } - static json(data, init = {}) { - webidl.argumentLengthCheck(arguments, 1, { - header: 'Response.json' - }); - if (null !== init) init = webidl.converters.ResponseInit(init); - const bytes = textEncoder.encode(serializeJavascriptValueToJSONString(data)); - const body = extractBody(bytes); - const relevantRealm = { - settingsObject: {} - }; - const responseObject = new Response(); - responseObject[kRealm] = relevantRealm; - responseObject[kHeaders][kGuard] = 'response'; - responseObject[kHeaders][kRealm] = relevantRealm; - initializeResponse(responseObject, init, { - body: body[0], - type: 'application/json' - }); - return responseObject; - } - static redirect(url, status = 302) { - const relevantRealm = { - settingsObject: {} - }; - webidl.argumentLengthCheck(arguments, 1, { - header: 'Response.redirect' - }); - url = webidl.converters.USVString(url); - status = webidl.converters['unsigned short'](status); - let parsedURL; - try { - parsedURL = new URL(url, getGlobalOrigin()); - } catch (err) { - throw Object.assign(new TypeError('Failed to parse URL from ' + url), { - cause: err - }); - } - if (!redirectStatusSet.has(status)) throw new RangeError('Invalid status code ' + status); - const responseObject = new Response(); - responseObject[kRealm] = relevantRealm; - responseObject[kHeaders][kGuard] = 'immutable'; - responseObject[kHeaders][kRealm] = relevantRealm; - responseObject[kState].status = status; - const value = isomorphicEncode(URLSerializer(parsedURL)); - responseObject[kState].headersList.append('location', value); - return responseObject; - } - constructor(body = null, init = {}){ - if (null !== body) body = webidl.converters.BodyInit(body); - init = webidl.converters.ResponseInit(init); - this[kRealm] = { - settingsObject: {} - }; - this[kState] = makeResponse({}); - this[kHeaders] = new Headers(kConstruct); - this[kHeaders][kGuard] = 'response'; - this[kHeaders][kHeadersList] = this[kState].headersList; - this[kHeaders][kRealm] = this[kRealm]; - let bodyWithType = null; - if (null != body) { - const [extractedBody, type] = extractBody(body); - bodyWithType = { - body: extractedBody, - type - }; - } - initializeResponse(this, init, bodyWithType); - } - get type() { - webidl.brandCheck(this, Response); - return this[kState].type; - } - get url() { - webidl.brandCheck(this, Response); - const urlList = this[kState].urlList; - const url = urlList[urlList.length - 1] ?? null; - if (null === url) return ''; - return URLSerializer(url, true); - } - get redirected() { - webidl.brandCheck(this, Response); - return this[kState].urlList.length > 1; - } - get status() { - webidl.brandCheck(this, Response); - return this[kState].status; - } - get ok() { - webidl.brandCheck(this, Response); - return this[kState].status >= 200 && this[kState].status <= 299; - } - get statusText() { - webidl.brandCheck(this, Response); - return this[kState].statusText; - } - get headers() { - webidl.brandCheck(this, Response); - return this[kHeaders]; - } - get body() { - webidl.brandCheck(this, Response); - return this[kState].body ? this[kState].body.stream : null; - } - get bodyUsed() { - webidl.brandCheck(this, Response); - return !!this[kState].body && util.isDisturbed(this[kState].body.stream); - } - clone() { - webidl.brandCheck(this, Response); - if (this.bodyUsed || this.body && this.body.locked) throw webidl.errors.exception({ - header: 'Response.clone', - message: 'Body has already been consumed.' - }); - const clonedResponse = cloneResponse(this[kState]); - const clonedResponseObject = new Response(); - clonedResponseObject[kState] = clonedResponse; - clonedResponseObject[kRealm] = this[kRealm]; - clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList; - clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]; - clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]; - return clonedResponseObject; - } - } - mixinBody(Response); - Object.defineProperties(Response.prototype, { - type: kEnumerableProperty, - url: kEnumerableProperty, - status: kEnumerableProperty, - ok: kEnumerableProperty, - redirected: kEnumerableProperty, - statusText: kEnumerableProperty, - headers: kEnumerableProperty, - clone: kEnumerableProperty, - body: kEnumerableProperty, - bodyUsed: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'Response', - configurable: true - } - }); - Object.defineProperties(Response, { - json: kEnumerableProperty, - redirect: kEnumerableProperty, - error: kEnumerableProperty - }); - function cloneResponse(response) { - if (response.internalResponse) return filterResponse(cloneResponse(response.internalResponse), response.type); - const newResponse = makeResponse({ - ...response, - body: null - }); - if (null != response.body) newResponse.body = cloneBody(response.body); - return newResponse; - } - function makeResponse(init) { - return { - aborted: false, - rangeRequested: false, - timingAllowPassed: false, - requestIncludesCredentials: false, - type: 'default', - status: 200, - timingInfo: null, - cacheState: '', - statusText: '', - ...init, - headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList(), - urlList: init.urlList ? [ - ...init.urlList - ] : [] - }; - } - function makeNetworkError(reason) { - const isError = isErrorLike(reason); - return makeResponse({ - type: 'error', - status: 0, - error: isError ? reason : new Error(reason ? String(reason) : reason), - aborted: reason && 'AbortError' === reason.name - }); - } - function makeFilteredResponse(response, state) { - state = { - internalResponse: response, - ...state - }; - return new Proxy(response, { - get (target, p) { - return p in state ? state[p] : target[p]; - }, - set (target, p, value) { - assert(!(p in state)); - target[p] = value; - return true; - } - }); - } - function filterResponse(response, type) { - if ('basic' === type) return makeFilteredResponse(response, { - type: 'basic', - headersList: response.headersList - }); - if ('cors' === type) return makeFilteredResponse(response, { - type: 'cors', - headersList: response.headersList - }); - if ('opaque' === type) return makeFilteredResponse(response, { - type: 'opaque', - urlList: Object.freeze([]), - status: 0, - statusText: '', - body: null - }); - if ('opaqueredirect' === type) return makeFilteredResponse(response, { - type: 'opaqueredirect', - status: 0, - statusText: '', - headersList: [], - body: null - }); - assert(false); - } - function makeAppropriateNetworkError(fetchParams, err = null) { - assert(isCancelled(fetchParams)); - return isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException1('The operation was aborted.', 'AbortError'), { - cause: err - })) : makeNetworkError(Object.assign(new DOMException1('Request was cancelled.'), { - cause: err - })); - } - function initializeResponse(response, init, body) { - if (null !== init.status && (init.status < 200 || init.status > 599)) throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.'); - if ('statusText' in init && null != init.statusText) { - if (!isValidReasonPhrase(String(init.statusText))) throw new TypeError('Invalid statusText'); - } - if ('status' in init && null != init.status) response[kState].status = init.status; - if ('statusText' in init && null != init.statusText) response[kState].statusText = init.statusText; - if ('headers' in init && null != init.headers) fill(response[kHeaders], init.headers); - if (body) { - if (nullBodyStatus.includes(response.status)) throw webidl.errors.exception({ - header: 'Response constructor', - message: 'Invalid response status code ' + response.status - }); - response[kState].body = body.body; - if (null != body.type && !response[kState].headersList.contains('Content-Type')) response[kState].headersList.append('content-type', body.type); - } - } - webidl.converters.ReadableStream = webidl.interfaceConverter(ReadableStream1); - webidl.converters.FormData = webidl.interfaceConverter(FormData); - webidl.converters.URLSearchParams = webidl.interfaceConverter(URLSearchParams); - webidl.converters.XMLHttpRequestBodyInit = function(V) { - if ('string' == typeof V) return webidl.converters.USVString(V); - if (isBlobLike(V)) return webidl.converters.Blob(V, { - strict: false - }); - if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) return webidl.converters.BufferSource(V); - if (util.isFormDataLike(V)) return webidl.converters.FormData(V, { - strict: false - }); - if (V instanceof URLSearchParams) return webidl.converters.URLSearchParams(V); - return webidl.converters.DOMString(V); - }; - webidl.converters.BodyInit = function(V) { - if (V instanceof ReadableStream1) return webidl.converters.ReadableStream(V); - if (V?.[Symbol.asyncIterator]) return V; - return webidl.converters.XMLHttpRequestBodyInit(V); - }; - webidl.converters.ResponseInit = webidl.dictionaryConverter([ - { - key: 'status', - converter: webidl.converters['unsigned short'], - defaultValue: 200 - }, - { - key: 'statusText', - converter: webidl.converters.ByteString, - defaultValue: '' - }, - { - key: 'headers', - converter: webidl.converters.HeadersInit - } - ]); - module.exports = { - makeNetworkError, - makeResponse, - makeAppropriateNetworkError, - filterResponse, - Response, - cloneResponse - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js" (module) { - "use strict"; - module.exports = { - kUrl: Symbol('url'), - kHeaders: Symbol('headers'), - kSignal: Symbol('signal'), - kState: Symbol('state'), - kGuard: Symbol('guard'), - kRealm: Symbol('realm') - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { getGlobalOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js"); - const { performance: performance1 } = __webpack_require__("perf_hooks"); - const { isBlobLike, toUSVString, ReadableStreamFrom } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const assert = __webpack_require__("assert"); - const { isUint8Array } = __webpack_require__("util/types"); - let supportedHashes = []; - let crypto; - try { - crypto = __webpack_require__("crypto"); - const possibleRelevantHashes = [ - 'sha256', - 'sha384', - 'sha512' - ]; - supportedHashes = crypto.getHashes().filter((hash)=>possibleRelevantHashes.includes(hash)); - } catch {} - function responseURL(response) { - const urlList = response.urlList; - const length = urlList.length; - return 0 === length ? null : urlList[length - 1].toString(); - } - function responseLocationURL(response, requestFragment) { - if (!redirectStatusSet.has(response.status)) return null; - let location = response.headersList.get('location'); - if (null !== location && isValidHeaderValue(location)) location = new URL(location, responseURL(response)); - if (location && !location.hash) location.hash = requestFragment; - return location; - } - function requestCurrentURL(request) { - return request.urlList[request.urlList.length - 1]; - } - function requestBadPort(request) { - const url = requestCurrentURL(request); - if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) return 'blocked'; - return 'allowed'; - } - function isErrorLike(object) { - return object instanceof Error || object?.constructor?.name === 'Error' || object?.constructor?.name === 'DOMException'; - } - function isValidReasonPhrase(statusText) { - for(let i = 0; i < statusText.length; ++i){ - const c = statusText.charCodeAt(i); - if (!(0x09 === c || c >= 0x20 && c <= 0x7e || c >= 0x80 && c <= 0xff)) return false; - } - return true; - } - function isTokenCharCode(c) { - switch(c){ - case 0x22: - case 0x28: - case 0x29: - case 0x2c: - case 0x2f: - case 0x3a: - case 0x3b: - case 0x3c: - case 0x3d: - case 0x3e: - case 0x3f: - case 0x40: - case 0x5b: - case 0x5c: - case 0x5d: - case 0x7b: - case 0x7d: - return false; - default: - return c >= 0x21 && c <= 0x7e; - } - } - function isValidHTTPToken(characters) { - if (0 === characters.length) return false; - for(let i = 0; i < characters.length; ++i)if (!isTokenCharCode(characters.charCodeAt(i))) return false; - return true; - } - function isValidHeaderName(potentialValue) { - return isValidHTTPToken(potentialValue); - } - function isValidHeaderValue(potentialValue) { - if (potentialValue.startsWith('\t') || potentialValue.startsWith(' ') || potentialValue.endsWith('\t') || potentialValue.endsWith(' ')) return false; - if (potentialValue.includes('\0') || potentialValue.includes('\r') || potentialValue.includes('\n')) return false; - return true; - } - function setRequestReferrerPolicyOnRedirect(request, actualResponse) { - const { headersList } = actualResponse; - const policyHeader = (headersList.get('referrer-policy') ?? '').split(','); - let policy = ''; - if (policyHeader.length > 0) for(let i = policyHeader.length; 0 !== i; i--){ - const token = policyHeader[i - 1].trim(); - if (referrerPolicyTokens.has(token)) { - policy = token; - break; - } - } - if ('' !== policy) request.referrerPolicy = policy; - } - function crossOriginResourcePolicyCheck() { - return 'allowed'; - } - function corsCheck() { - return 'success'; - } - function TAOCheck() { - return 'success'; - } - function appendFetchMetadata(httpRequest) { - let header = null; - header = httpRequest.mode; - httpRequest.headersList.set('sec-fetch-mode', header); - } - function appendRequestOriginHeader(request) { - let serializedOrigin = request.origin; - if ('cors' === request.responseTainting || 'websocket' === request.mode) { - if (serializedOrigin) request.headersList.append('origin', serializedOrigin); - } else if ('GET' !== request.method && 'HEAD' !== request.method) { - switch(request.referrerPolicy){ - case 'no-referrer': - serializedOrigin = null; - break; - case 'no-referrer-when-downgrade': - case 'strict-origin': - case 'strict-origin-when-cross-origin': - if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) serializedOrigin = null; - break; - case 'same-origin': - if (!sameOrigin(request, requestCurrentURL(request))) serializedOrigin = null; - break; - default: - } - if (serializedOrigin) request.headersList.append('origin', serializedOrigin); - } - } - function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { - return performance1.now(); - } - function createOpaqueTimingInfo(timingInfo) { - return { - startTime: timingInfo.startTime ?? 0, - redirectStartTime: 0, - redirectEndTime: 0, - postRedirectStartTime: timingInfo.startTime ?? 0, - finalServiceWorkerStartTime: 0, - finalNetworkResponseStartTime: 0, - finalNetworkRequestStartTime: 0, - endTime: 0, - encodedBodySize: 0, - decodedBodySize: 0, - finalConnectionTimingInfo: null - }; - } - function makePolicyContainer() { - return { - referrerPolicy: 'strict-origin-when-cross-origin' - }; - } - function clonePolicyContainer(policyContainer) { - return { - referrerPolicy: policyContainer.referrerPolicy - }; - } - function determineRequestsReferrer(request) { - const policy = request.referrerPolicy; - assert(policy); - let referrerSource = null; - if ('client' === request.referrer) { - const globalOrigin = getGlobalOrigin(); - if (!globalOrigin || 'null' === globalOrigin.origin) return 'no-referrer'; - referrerSource = new URL(globalOrigin); - } else if (request.referrer instanceof URL) referrerSource = request.referrer; - let referrerURL = stripURLForReferrer(referrerSource); - const referrerOrigin = stripURLForReferrer(referrerSource, true); - if (referrerURL.toString().length > 4096) referrerURL = referrerOrigin; - const areSameOrigin = sameOrigin(request, referrerURL); - const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(request.url); - switch(policy){ - case 'origin': - return null != referrerOrigin ? referrerOrigin : stripURLForReferrer(referrerSource, true); - case 'unsafe-url': - return referrerURL; - case 'same-origin': - return areSameOrigin ? referrerOrigin : 'no-referrer'; - case 'origin-when-cross-origin': - return areSameOrigin ? referrerURL : referrerOrigin; - case 'strict-origin-when-cross-origin': - { - const currentURL = requestCurrentURL(request); - if (sameOrigin(referrerURL, currentURL)) return referrerURL; - if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) return 'no-referrer'; - return referrerOrigin; - } - case 'strict-origin': - case 'no-referrer-when-downgrade': - default: - return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin; - } - } - function stripURLForReferrer(url, originOnly) { - assert(url instanceof URL); - if ('file:' === url.protocol || 'about:' === url.protocol || 'blank:' === url.protocol) return 'no-referrer'; - url.username = ''; - url.password = ''; - url.hash = ''; - if (originOnly) { - url.pathname = ''; - url.search = ''; - } - return url; - } - function isURLPotentiallyTrustworthy(url) { - if (!(url instanceof URL)) return false; - if ('about:blank' === url.href || 'about:srcdoc' === url.href) return true; - if ('data:' === url.protocol) return true; - if ('file:' === url.protocol) return true; - return isOriginPotentiallyTrustworthy(url.origin); - function isOriginPotentiallyTrustworthy(origin) { - if (null == origin || 'null' === origin) return false; - const originAsURL = new URL(origin); - if ('https:' === originAsURL.protocol || 'wss:' === originAsURL.protocol) return true; - if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || 'localhost' === originAsURL.hostname || originAsURL.hostname.includes('localhost.') || originAsURL.hostname.endsWith('.localhost')) return true; - return false; - } - } - function bytesMatch(bytes, metadataList) { - if (void 0 === crypto) return true; - const parsedMetadata = parseMetadata(metadataList); - if ('no metadata' === parsedMetadata) return true; - if (0 === parsedMetadata.length) return true; - const strongest = getStrongestMetadata(parsedMetadata); - const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest); - for (const item of metadata){ - const algorithm = item.algo; - const expectedValue = item.hash; - let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64'); - if ('=' === actualValue[actualValue.length - 1]) actualValue = '=' === actualValue[actualValue.length - 2] ? actualValue.slice(0, -2) : actualValue.slice(0, -1); - if (compareBase64Mixed(actualValue, expectedValue)) return true; - } - return false; - } - const parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i; - function parseMetadata(metadata) { - const result = []; - let empty = true; - for (const token of metadata.split(' ')){ - empty = false; - const parsedToken = parseHashWithOptions.exec(token); - if (null === parsedToken || void 0 === parsedToken.groups || void 0 === parsedToken.groups.algo) continue; - const algorithm = parsedToken.groups.algo.toLowerCase(); - if (supportedHashes.includes(algorithm)) result.push(parsedToken.groups); - } - if (true === empty) return 'no metadata'; - return result; - } - function getStrongestMetadata(metadataList) { - let algorithm = metadataList[0].algo; - if ('5' === algorithm[3]) return algorithm; - for(let i = 1; i < metadataList.length; ++i){ - const metadata = metadataList[i]; - if ('5' === metadata.algo[3]) { - algorithm = 'sha512'; - break; - } - if ('3' !== algorithm[3]) { - if ('3' === metadata.algo[3]) algorithm = 'sha384'; - } - } - return algorithm; - } - function filterMetadataListByAlgorithm(metadataList, algorithm) { - if (1 === metadataList.length) return metadataList; - let pos = 0; - for(let i = 0; i < metadataList.length; ++i)if (metadataList[i].algo === algorithm) metadataList[pos++] = metadataList[i]; - metadataList.length = pos; - return metadataList; - } - function compareBase64Mixed(actualValue, expectedValue) { - if (actualValue.length !== expectedValue.length) return false; - for(let i = 0; i < actualValue.length; ++i)if (actualValue[i] !== expectedValue[i]) { - if ('+' === actualValue[i] && '-' === expectedValue[i] || '/' === actualValue[i] && '_' === expectedValue[i]) continue; - return false; - } - return true; - } - function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) {} - function sameOrigin(A, B) { - if (A.origin === B.origin && 'null' === A.origin) return true; - if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) return true; - return false; - } - function createDeferredPromise() { - let res; - let rej; - const promise = new Promise((resolve, reject)=>{ - res = resolve; - rej = reject; - }); - return { - promise, - resolve: res, - reject: rej - }; - } - function isAborted(fetchParams) { - return 'aborted' === fetchParams.controller.state; - } - function isCancelled(fetchParams) { - return 'aborted' === fetchParams.controller.state || 'terminated' === fetchParams.controller.state; - } - const normalizeMethodRecord = { - delete: 'DELETE', - DELETE: 'DELETE', - get: 'GET', - GET: 'GET', - head: 'HEAD', - HEAD: 'HEAD', - options: 'OPTIONS', - OPTIONS: 'OPTIONS', - post: 'POST', - POST: 'POST', - put: 'PUT', - PUT: 'PUT' - }; - Object.setPrototypeOf(normalizeMethodRecord, null); - function normalizeMethod(method) { - return normalizeMethodRecord[method.toLowerCase()] ?? method; - } - function serializeJavascriptValueToJSONString(value) { - const result = JSON.stringify(value); - if (void 0 === result) throw new TypeError('Value is not JSON serializable'); - assert('string' == typeof result); - return result; - } - const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); - function makeIterator(iterator, name, kind) { - const object = { - index: 0, - kind, - target: iterator - }; - const i = { - next () { - if (Object.getPrototypeOf(this) !== i) throw new TypeError(`'next' called on an object that does not implement interface ${name} Iterator.`); - const { index, kind, target } = object; - const values = target(); - const len = values.length; - if (index >= len) return { - value: void 0, - done: true - }; - const pair = values[index]; - object.index = index + 1; - return iteratorResult(pair, kind); - }, - [Symbol.toStringTag]: `${name} Iterator` - }; - Object.setPrototypeOf(i, esIteratorPrototype); - return Object.setPrototypeOf({}, i); - } - function iteratorResult(pair, kind) { - let result; - switch(kind){ - case 'key': - result = pair[0]; - break; - case 'value': - result = pair[1]; - break; - case 'key+value': - result = pair; - break; - } - return { - value: result, - done: false - }; - } - async function fullyReadBody(body, processBody, processBodyError) { - const successSteps = processBody; - const errorSteps = processBodyError; - let reader; - try { - reader = body.stream.getReader(); - } catch (e) { - errorSteps(e); - return; - } - try { - const result = await readAllBytes(reader); - successSteps(result); - } catch (e) { - errorSteps(e); - } - } - let ReadableStream1 = globalThis.ReadableStream; - function isReadableStreamLike(stream) { - if (!ReadableStream1) ReadableStream1 = __webpack_require__("stream/web").ReadableStream; - return stream instanceof ReadableStream1 || 'ReadableStream' === stream[Symbol.toStringTag] && 'function' == typeof stream.tee; - } - const MAXIMUM_ARGUMENT_LENGTH = 65535; - function isomorphicDecode(input) { - if (input.length < MAXIMUM_ARGUMENT_LENGTH) return String.fromCharCode(...input); - return input.reduce((previous, current)=>previous + String.fromCharCode(current), ''); - } - function readableStreamClose(controller) { - try { - controller.close(); - } catch (err) { - if (!err.message.includes('Controller is already closed')) throw err; - } - } - function isomorphicEncode(input) { - for(let i = 0; i < input.length; i++)assert(input.charCodeAt(i) <= 0xFF); - return input; - } - async function readAllBytes(reader) { - const bytes = []; - let byteLength = 0; - while(true){ - const { done, value: chunk } = await reader.read(); - if (done) return Buffer.concat(bytes, byteLength); - if (!isUint8Array(chunk)) throw new TypeError('Received non-Uint8Array chunk'); - bytes.push(chunk); - byteLength += chunk.length; - } - } - function urlIsLocal(url) { - assert('protocol' in url); - const protocol = url.protocol; - return 'about:' === protocol || 'blob:' === protocol || 'data:' === protocol; - } - function urlHasHttpsScheme(url) { - if ('string' == typeof url) return url.startsWith('https:'); - return 'https:' === url.protocol; - } - function urlIsHttpHttpsScheme(url) { - assert('protocol' in url); - const protocol = url.protocol; - return 'http:' === protocol || 'https:' === protocol; - } - const hasOwn = Object.hasOwn || ((dict, key)=>Object.prototype.hasOwnProperty.call(dict, key)); - module.exports = { - isAborted, - isCancelled, - createDeferredPromise, - ReadableStreamFrom, - toUSVString, - tryUpgradeRequestToAPotentiallyTrustworthyURL, - coarsenedSharedCurrentTime, - determineRequestsReferrer, - makePolicyContainer, - clonePolicyContainer, - appendFetchMetadata, - appendRequestOriginHeader, - TAOCheck, - corsCheck, - crossOriginResourcePolicyCheck, - createOpaqueTimingInfo, - setRequestReferrerPolicyOnRedirect, - isValidHTTPToken, - requestBadPort, - requestCurrentURL, - responseURL, - responseLocationURL, - isBlobLike, - isURLPotentiallyTrustworthy, - isValidReasonPhrase, - sameOrigin, - normalizeMethod, - serializeJavascriptValueToJSONString, - makeIterator, - isValidHeaderName, - isValidHeaderValue, - hasOwn, - isErrorLike, - fullyReadBody, - bytesMatch, - isReadableStreamLike, - readableStreamClose, - isomorphicEncode, - isomorphicDecode, - urlIsLocal, - urlHasHttpsScheme, - urlIsHttpHttpsScheme, - readAllBytes, - normalizeMethodRecord, - parseMetadata - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { types } = __webpack_require__("util"); - const { hasOwn, toUSVString } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const webidl = {}; - webidl.converters = {}; - webidl.util = {}; - webidl.errors = {}; - webidl.errors.exception = function(message) { - return new TypeError(`${message.header}: ${message.message}`); - }; - webidl.errors.conversionFailed = function(context) { - const plural = 1 === context.types.length ? '' : ' one of'; - const message = `${context.argument} could not be converted to${plural}: ${context.types.join(', ')}.`; - return webidl.errors.exception({ - header: context.prefix, - message - }); - }; - webidl.errors.invalidArgument = function(context) { - return webidl.errors.exception({ - header: context.prefix, - message: `"${context.value}" is an invalid ${context.type}.` - }); - }; - webidl.brandCheck = function(V, I, opts) { - if (opts?.strict === false || V instanceof I) return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]; - throw new TypeError('Illegal invocation'); - }; - webidl.argumentLengthCheck = function({ length }, min, ctx) { - if (length < min) throw webidl.errors.exception({ - message: `${min} argument${1 !== min ? 's' : ''} required, but${length ? ' only' : ''} ${length} found.`, - ...ctx - }); - }; - webidl.illegalConstructor = function() { - throw webidl.errors.exception({ - header: 'TypeError', - message: 'Illegal constructor' - }); - }; - webidl.util.Type = function(V) { - switch(typeof V){ - case 'undefined': - return 'Undefined'; - case 'boolean': - return 'Boolean'; - case 'string': - return 'String'; - case 'symbol': - return 'Symbol'; - case 'number': - return 'Number'; - case 'bigint': - return 'BigInt'; - case 'function': - case 'object': - if (null === V) return 'Null'; - return 'Object'; - } - }; - webidl.util.ConvertToInt = function(V, bitLength, signedness, opts = {}) { - let upperBound; - let lowerBound; - if (64 === bitLength) { - upperBound = Math.pow(2, 53) - 1; - lowerBound = 'unsigned' === signedness ? 0 : Math.pow(-2, 53) + 1; - } else if ('unsigned' === signedness) { - lowerBound = 0; - upperBound = Math.pow(2, bitLength) - 1; - } else { - lowerBound = Math.pow(-2, bitLength) - 1; - upperBound = Math.pow(2, bitLength - 1) - 1; - } - let x = Number(V); - if (0 === x) x = 0; - if (true === opts.enforceRange) { - if (Number.isNaN(x) || x === 1 / 0 || x === -1 / 0) throw webidl.errors.exception({ - header: 'Integer conversion', - message: `Could not convert ${V} to an integer.` - }); - x = webidl.util.IntegerPart(x); - if (x < lowerBound || x > upperBound) throw webidl.errors.exception({ - header: 'Integer conversion', - message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` - }); - return x; - } - if (!Number.isNaN(x) && true === opts.clamp) { - x = Math.min(Math.max(x, lowerBound), upperBound); - x = Math.floor(x) % 2 === 0 ? Math.floor(x) : Math.ceil(x); - return x; - } - if (Number.isNaN(x) || 0 === x && Object.is(0, x) || x === 1 / 0 || x === -1 / 0) return 0; - x = webidl.util.IntegerPart(x); - x %= Math.pow(2, bitLength); - if ('signed' === signedness && x >= Math.pow(2, bitLength) - 1) return x - Math.pow(2, bitLength); - return x; - }; - webidl.util.IntegerPart = function(n) { - const r = Math.floor(Math.abs(n)); - if (n < 0) return -1 * r; - return r; - }; - webidl.sequenceConverter = function(converter) { - return (V)=>{ - if ('Object' !== webidl.util.Type(V)) throw webidl.errors.exception({ - header: 'Sequence', - message: `Value of type ${webidl.util.Type(V)} is not an Object.` - }); - const method = V?.[Symbol.iterator]?.(); - const seq = []; - if (void 0 === method || 'function' != typeof method.next) throw webidl.errors.exception({ - header: 'Sequence', - message: 'Object is not an iterator.' - }); - while(true){ - const { done, value } = method.next(); - if (done) break; - seq.push(converter(value)); - } - return seq; - }; - }; - webidl.recordConverter = function(keyConverter, valueConverter) { - return (O)=>{ - if ('Object' !== webidl.util.Type(O)) throw webidl.errors.exception({ - header: 'Record', - message: `Value of type ${webidl.util.Type(O)} is not an Object.` - }); - const result = {}; - if (!types.isProxy(O)) { - const keys = Object.keys(O); - for (const key of keys){ - const typedKey = keyConverter(key); - const typedValue = valueConverter(O[key]); - result[typedKey] = typedValue; - } - return result; - } - const keys = Reflect.ownKeys(O); - for (const key of keys){ - const desc = Reflect.getOwnPropertyDescriptor(O, key); - if (desc?.enumerable) { - const typedKey = keyConverter(key); - const typedValue = valueConverter(O[key]); - result[typedKey] = typedValue; - } - } - return result; - }; - }; - webidl.interfaceConverter = function(i) { - return (V, opts = {})=>{ - if (false !== opts.strict && !(V instanceof i)) throw webidl.errors.exception({ - header: i.name, - message: `Expected ${V} to be an instance of ${i.name}.` - }); - return V; - }; - }; - webidl.dictionaryConverter = function(converters) { - return (dictionary)=>{ - const type = webidl.util.Type(dictionary); - const dict = {}; - if ('Null' === type || 'Undefined' === type) return dict; - if ('Object' !== type) throw webidl.errors.exception({ - header: 'Dictionary', - message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` - }); - for (const options of converters){ - const { key, defaultValue, required, converter } = options; - if (true === required) { - if (!hasOwn(dictionary, key)) throw webidl.errors.exception({ - header: 'Dictionary', - message: `Missing required key "${key}".` - }); - } - let value = dictionary[key]; - const hasDefault = hasOwn(options, 'defaultValue'); - if (hasDefault && null !== value) value = value ?? defaultValue; - if (required || hasDefault || void 0 !== value) { - value = converter(value); - if (options.allowedValues && !options.allowedValues.includes(value)) throw webidl.errors.exception({ - header: 'Dictionary', - message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.` - }); - dict[key] = value; - } - } - return dict; - }; - }; - webidl.nullableConverter = function(converter) { - return (V)=>{ - if (null === V) return V; - return converter(V); - }; - }; - webidl.converters.DOMString = function(V, opts = {}) { - if (null === V && opts.legacyNullToEmptyString) return ''; - if ('symbol' == typeof V) throw new TypeError('Could not convert argument of type symbol to string.'); - return String(V); - }; - webidl.converters.ByteString = function(V) { - const x = webidl.converters.DOMString(V); - for(let index = 0; index < x.length; index++)if (x.charCodeAt(index) > 255) throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.`); - return x; - }; - webidl.converters.USVString = toUSVString; - webidl.converters.boolean = function(V) { - const x = Boolean(V); - return x; - }; - webidl.converters.any = function(V) { - return V; - }; - webidl.converters['long long'] = function(V) { - const x = webidl.util.ConvertToInt(V, 64, 'signed'); - return x; - }; - webidl.converters['unsigned long long'] = function(V) { - const x = webidl.util.ConvertToInt(V, 64, 'unsigned'); - return x; - }; - webidl.converters['unsigned long'] = function(V) { - const x = webidl.util.ConvertToInt(V, 32, 'unsigned'); - return x; - }; - webidl.converters['unsigned short'] = function(V, opts) { - const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts); - return x; - }; - webidl.converters.ArrayBuffer = function(V, opts = {}) { - if ('Object' !== webidl.util.Type(V) || !types.isAnyArrayBuffer(V)) throw webidl.errors.conversionFailed({ - prefix: `${V}`, - argument: `${V}`, - types: [ - 'ArrayBuffer' - ] - }); - if (false === opts.allowShared && types.isSharedArrayBuffer(V)) throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }); - return V; - }; - webidl.converters.TypedArray = function(V, T, opts = {}) { - if ('Object' !== webidl.util.Type(V) || !types.isTypedArray(V) || V.constructor.name !== T.name) throw webidl.errors.conversionFailed({ - prefix: `${T.name}`, - argument: `${V}`, - types: [ - T.name - ] - }); - if (false === opts.allowShared && types.isSharedArrayBuffer(V.buffer)) throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }); - return V; - }; - webidl.converters.DataView = function(V, opts = {}) { - if ('Object' !== webidl.util.Type(V) || !types.isDataView(V)) throw webidl.errors.exception({ - header: 'DataView', - message: 'Object is not a DataView.' - }); - if (false === opts.allowShared && types.isSharedArrayBuffer(V.buffer)) throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }); - return V; - }; - webidl.converters.BufferSource = function(V, opts = {}) { - if (types.isAnyArrayBuffer(V)) return webidl.converters.ArrayBuffer(V, opts); - if (types.isTypedArray(V)) return webidl.converters.TypedArray(V, V.constructor); - if (types.isDataView(V)) return webidl.converters.DataView(V, opts); - throw new TypeError(`Could not convert ${V} to a BufferSource.`); - }; - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.ByteString); - webidl.converters['sequence>'] = webidl.sequenceConverter(webidl.converters['sequence']); - webidl.converters['record'] = webidl.recordConverter(webidl.converters.ByteString, webidl.converters.ByteString); - module.exports = { - webidl - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/encoding.js" (module) { - "use strict"; - function getEncoding(label) { - if (!label) return 'failure'; - switch(label.trim().toLowerCase()){ - case 'unicode-1-1-utf-8': - case 'unicode11utf8': - case 'unicode20utf8': - case 'utf-8': - case 'utf8': - case 'x-unicode20utf8': - return 'UTF-8'; - case '866': - case 'cp866': - case 'csibm866': - case 'ibm866': - return 'IBM866'; - case 'csisolatin2': - case 'iso-8859-2': - case 'iso-ir-101': - case 'iso8859-2': - case 'iso88592': - case 'iso_8859-2': - case 'iso_8859-2:1987': - case 'l2': - case 'latin2': - return 'ISO-8859-2'; - case 'csisolatin3': - case 'iso-8859-3': - case 'iso-ir-109': - case 'iso8859-3': - case 'iso88593': - case 'iso_8859-3': - case 'iso_8859-3:1988': - case 'l3': - case 'latin3': - return 'ISO-8859-3'; - case 'csisolatin4': - case 'iso-8859-4': - case 'iso-ir-110': - case 'iso8859-4': - case 'iso88594': - case 'iso_8859-4': - case 'iso_8859-4:1988': - case 'l4': - case 'latin4': - return 'ISO-8859-4'; - case 'csisolatincyrillic': - case 'cyrillic': - case 'iso-8859-5': - case 'iso-ir-144': - case 'iso8859-5': - case 'iso88595': - case 'iso_8859-5': - case 'iso_8859-5:1988': - return 'ISO-8859-5'; - case 'arabic': - case 'asmo-708': - case 'csiso88596e': - case 'csiso88596i': - case 'csisolatinarabic': - case 'ecma-114': - case 'iso-8859-6': - case 'iso-8859-6-e': - case 'iso-8859-6-i': - case 'iso-ir-127': - case 'iso8859-6': - case 'iso88596': - case 'iso_8859-6': - case 'iso_8859-6:1987': - return 'ISO-8859-6'; - case 'csisolatingreek': - case 'ecma-118': - case 'elot_928': - case 'greek': - case 'greek8': - case 'iso-8859-7': - case 'iso-ir-126': - case 'iso8859-7': - case 'iso88597': - case 'iso_8859-7': - case 'iso_8859-7:1987': - case 'sun_eu_greek': - return 'ISO-8859-7'; - case 'csiso88598e': - case 'csisolatinhebrew': - case 'hebrew': - case 'iso-8859-8': - case 'iso-8859-8-e': - case 'iso-ir-138': - case 'iso8859-8': - case 'iso88598': - case 'iso_8859-8': - case 'iso_8859-8:1988': - case 'visual': - return 'ISO-8859-8'; - case 'csiso88598i': - case 'iso-8859-8-i': - case 'logical': - return 'ISO-8859-8-I'; - case 'csisolatin6': - case 'iso-8859-10': - case 'iso-ir-157': - case 'iso8859-10': - case 'iso885910': - case 'l6': - case 'latin6': - return 'ISO-8859-10'; - case 'iso-8859-13': - case 'iso8859-13': - case 'iso885913': - return 'ISO-8859-13'; - case 'iso-8859-14': - case 'iso8859-14': - case 'iso885914': - return 'ISO-8859-14'; - case 'csisolatin9': - case 'iso-8859-15': - case 'iso8859-15': - case 'iso885915': - case 'iso_8859-15': - case 'l9': - return 'ISO-8859-15'; - case 'iso-8859-16': - return 'ISO-8859-16'; - case 'cskoi8r': - case 'koi': - case 'koi8': - case 'koi8-r': - case 'koi8_r': - return 'KOI8-R'; - case 'koi8-ru': - case 'koi8-u': - return 'KOI8-U'; - case 'csmacintosh': - case 'mac': - case 'macintosh': - case 'x-mac-roman': - return 'macintosh'; - case 'iso-8859-11': - case 'iso8859-11': - case 'iso885911': - case 'tis-620': - case 'windows-874': - return 'windows-874'; - case 'cp1250': - case 'windows-1250': - case 'x-cp1250': - return 'windows-1250'; - case 'cp1251': - case 'windows-1251': - case 'x-cp1251': - return 'windows-1251'; - case 'ansi_x3.4-1968': - case 'ascii': - case 'cp1252': - case 'cp819': - case 'csisolatin1': - case 'ibm819': - case 'iso-8859-1': - case 'iso-ir-100': - case 'iso8859-1': - case 'iso88591': - case 'iso_8859-1': - case 'iso_8859-1:1987': - case 'l1': - case 'latin1': - case 'us-ascii': - case 'windows-1252': - case 'x-cp1252': - return 'windows-1252'; - case 'cp1253': - case 'windows-1253': - case 'x-cp1253': - return 'windows-1253'; - case 'cp1254': - case 'csisolatin5': - case 'iso-8859-9': - case 'iso-ir-148': - case 'iso8859-9': - case 'iso88599': - case 'iso_8859-9': - case 'iso_8859-9:1989': - case 'l5': - case 'latin5': - case 'windows-1254': - case 'x-cp1254': - return 'windows-1254'; - case 'cp1255': - case 'windows-1255': - case 'x-cp1255': - return 'windows-1255'; - case 'cp1256': - case 'windows-1256': - case 'x-cp1256': - return 'windows-1256'; - case 'cp1257': - case 'windows-1257': - case 'x-cp1257': - return 'windows-1257'; - case 'cp1258': - case 'windows-1258': - case 'x-cp1258': - return 'windows-1258'; - case 'x-mac-cyrillic': - case 'x-mac-ukrainian': - return 'x-mac-cyrillic'; - case 'chinese': - case 'csgb2312': - case 'csiso58gb231280': - case 'gb2312': - case 'gb_2312': - case 'gb_2312-80': - case 'gbk': - case 'iso-ir-58': - case 'x-gbk': - return 'GBK'; - case 'gb18030': - return 'gb18030'; - case 'big5': - case 'big5-hkscs': - case 'cn-big5': - case 'csbig5': - case 'x-x-big5': - return 'Big5'; - case 'cseucpkdfmtjapanese': - case 'euc-jp': - case 'x-euc-jp': - return 'EUC-JP'; - case 'csiso2022jp': - case 'iso-2022-jp': - return 'ISO-2022-JP'; - case 'csshiftjis': - case 'ms932': - case 'ms_kanji': - case 'shift-jis': - case 'shift_jis': - case 'sjis': - case 'windows-31j': - case 'x-sjis': - return 'Shift_JIS'; - case 'cseuckr': - case 'csksc56011987': - case 'euc-kr': - case 'iso-ir-149': - case 'korean': - case 'ks_c_5601-1987': - case 'ks_c_5601-1989': - case 'ksc5601': - case 'ksc_5601': - case 'windows-949': - return 'EUC-KR'; - case 'csiso2022kr': - case 'hz-gb-2312': - case 'iso-2022-cn': - case 'iso-2022-cn-ext': - case 'iso-2022-kr': - case 'replacement': - return 'replacement'; - case 'unicodefffe': - case 'utf-16be': - return 'UTF-16BE'; - case 'csunicode': - case 'iso-10646-ucs-2': - case 'ucs-2': - case 'unicode': - case 'unicodefeff': - case 'utf-16': - case 'utf-16le': - return 'UTF-16LE'; - case 'x-user-defined': - return 'x-user-defined'; - default: - return 'failure'; - } - } - module.exports = { - getEncoding - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/filereader.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { staticPropertyDescriptors, readOperation, fireAProgressEvent } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/util.js"); - const { kState, kError, kResult, kEvents, kAborted } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/symbols.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - class FileReader extends EventTarget { - constructor(){ - super(); - this[kState] = 'empty'; - this[kResult] = null; - this[kError] = null; - this[kEvents] = { - loadend: null, - error: null, - abort: null, - load: null, - progress: null, - loadstart: null - }; - } - readAsArrayBuffer(blob) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FileReader.readAsArrayBuffer' - }); - blob = webidl.converters.Blob(blob, { - strict: false - }); - readOperation(this, blob, 'ArrayBuffer'); - } - readAsBinaryString(blob) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FileReader.readAsBinaryString' - }); - blob = webidl.converters.Blob(blob, { - strict: false - }); - readOperation(this, blob, 'BinaryString'); - } - readAsText(blob, encoding) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FileReader.readAsText' - }); - blob = webidl.converters.Blob(blob, { - strict: false - }); - if (void 0 !== encoding) encoding = webidl.converters.DOMString(encoding); - readOperation(this, blob, 'Text', encoding); - } - readAsDataURL(blob) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FileReader.readAsDataURL' - }); - blob = webidl.converters.Blob(blob, { - strict: false - }); - readOperation(this, blob, 'DataURL'); - } - abort() { - if ('empty' === this[kState] || 'done' === this[kState]) { - this[kResult] = null; - return; - } - if ('loading' === this[kState]) { - this[kState] = 'done'; - this[kResult] = null; - } - this[kAborted] = true; - fireAProgressEvent('abort', this); - if ('loading' !== this[kState]) fireAProgressEvent('loadend', this); - } - get readyState() { - webidl.brandCheck(this, FileReader); - switch(this[kState]){ - case 'empty': - return this.EMPTY; - case 'loading': - return this.LOADING; - case 'done': - return this.DONE; - } - } - get result() { - webidl.brandCheck(this, FileReader); - return this[kResult]; - } - get error() { - webidl.brandCheck(this, FileReader); - return this[kError]; - } - get onloadend() { - webidl.brandCheck(this, FileReader); - return this[kEvents].loadend; - } - set onloadend(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].loadend) this.removeEventListener('loadend', this[kEvents].loadend); - if ('function' == typeof fn) { - this[kEvents].loadend = fn; - this.addEventListener('loadend', fn); - } else this[kEvents].loadend = null; - } - get onerror() { - webidl.brandCheck(this, FileReader); - return this[kEvents].error; - } - set onerror(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].error) this.removeEventListener('error', this[kEvents].error); - if ('function' == typeof fn) { - this[kEvents].error = fn; - this.addEventListener('error', fn); - } else this[kEvents].error = null; - } - get onloadstart() { - webidl.brandCheck(this, FileReader); - return this[kEvents].loadstart; - } - set onloadstart(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].loadstart) this.removeEventListener('loadstart', this[kEvents].loadstart); - if ('function' == typeof fn) { - this[kEvents].loadstart = fn; - this.addEventListener('loadstart', fn); - } else this[kEvents].loadstart = null; - } - get onprogress() { - webidl.brandCheck(this, FileReader); - return this[kEvents].progress; - } - set onprogress(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].progress) this.removeEventListener('progress', this[kEvents].progress); - if ('function' == typeof fn) { - this[kEvents].progress = fn; - this.addEventListener('progress', fn); - } else this[kEvents].progress = null; - } - get onload() { - webidl.brandCheck(this, FileReader); - return this[kEvents].load; - } - set onload(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].load) this.removeEventListener('load', this[kEvents].load); - if ('function' == typeof fn) { - this[kEvents].load = fn; - this.addEventListener('load', fn); - } else this[kEvents].load = null; - } - get onabort() { - webidl.brandCheck(this, FileReader); - return this[kEvents].abort; - } - set onabort(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].abort) this.removeEventListener('abort', this[kEvents].abort); - if ('function' == typeof fn) { - this[kEvents].abort = fn; - this.addEventListener('abort', fn); - } else this[kEvents].abort = null; - } - } - FileReader.EMPTY = FileReader.prototype.EMPTY = 0; - FileReader.LOADING = FileReader.prototype.LOADING = 1; - FileReader.DONE = FileReader.prototype.DONE = 2; - Object.defineProperties(FileReader.prototype, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors, - readAsArrayBuffer: kEnumerableProperty, - readAsBinaryString: kEnumerableProperty, - readAsText: kEnumerableProperty, - readAsDataURL: kEnumerableProperty, - abort: kEnumerableProperty, - readyState: kEnumerableProperty, - result: kEnumerableProperty, - error: kEnumerableProperty, - onloadstart: kEnumerableProperty, - onprogress: kEnumerableProperty, - onload: kEnumerableProperty, - onabort: kEnumerableProperty, - onerror: kEnumerableProperty, - onloadend: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'FileReader', - writable: false, - enumerable: false, - configurable: true - } - }); - Object.defineProperties(FileReader, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors - }); - module.exports = { - FileReader - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/progressevent.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const kState = Symbol('ProgressEvent state'); - class ProgressEvent extends Event { - constructor(type, eventInitDict = {}){ - type = webidl.converters.DOMString(type); - eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}); - super(type, eventInitDict); - this[kState] = { - lengthComputable: eventInitDict.lengthComputable, - loaded: eventInitDict.loaded, - total: eventInitDict.total - }; - } - get lengthComputable() { - webidl.brandCheck(this, ProgressEvent); - return this[kState].lengthComputable; - } - get loaded() { - webidl.brandCheck(this, ProgressEvent); - return this[kState].loaded; - } - get total() { - webidl.brandCheck(this, ProgressEvent); - return this[kState].total; - } - } - webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ - { - key: 'lengthComputable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'loaded', - converter: webidl.converters['unsigned long long'], - defaultValue: 0 - }, - { - key: 'total', - converter: webidl.converters['unsigned long long'], - defaultValue: 0 - }, - { - key: 'bubbles', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'cancelable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'composed', - converter: webidl.converters.boolean, - defaultValue: false - } - ]); - module.exports = { - ProgressEvent - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/symbols.js" (module) { - "use strict"; - module.exports = { - kState: Symbol('FileReader state'), - kResult: Symbol('FileReader result'), - kError: Symbol('FileReader error'), - kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'), - kEvents: Symbol('FileReader events'), - kAborted: Symbol('FileReader aborted') - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/util.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kState, kError, kResult, kAborted, kLastProgressEventFired } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/symbols.js"); - const { ProgressEvent } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/progressevent.js"); - const { getEncoding } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/encoding.js"); - const { DOMException: DOMException1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { serializeAMimeType, parseMIMEType } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { types } = __webpack_require__("util"); - const { StringDecoder } = __webpack_require__("string_decoder"); - const { btoa } = __webpack_require__("buffer"); - const staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false - }; - function readOperation(fr, blob, type, encodingName) { - if ('loading' === fr[kState]) throw new DOMException1('Invalid state', 'InvalidStateError'); - fr[kState] = 'loading'; - fr[kResult] = null; - fr[kError] = null; - const stream = blob.stream(); - const reader = stream.getReader(); - const bytes = []; - let chunkPromise = reader.read(); - let isFirstChunk = true; - (async ()=>{ - while(!fr[kAborted])try { - const { done, value } = await chunkPromise; - if (isFirstChunk && !fr[kAborted]) queueMicrotask(()=>{ - fireAProgressEvent('loadstart', fr); - }); - isFirstChunk = false; - if (!done && types.isUint8Array(value)) { - bytes.push(value); - if ((void 0 === fr[kLastProgressEventFired] || Date.now() - fr[kLastProgressEventFired] >= 50) && !fr[kAborted]) { - fr[kLastProgressEventFired] = Date.now(); - queueMicrotask(()=>{ - fireAProgressEvent('progress', fr); - }); - } - chunkPromise = reader.read(); - } else if (done) { - queueMicrotask(()=>{ - fr[kState] = 'done'; - try { - const result = packageData(bytes, type, blob.type, encodingName); - if (fr[kAborted]) return; - fr[kResult] = result; - fireAProgressEvent('load', fr); - } catch (error) { - fr[kError] = error; - fireAProgressEvent('error', fr); - } - if ('loading' !== fr[kState]) fireAProgressEvent('loadend', fr); - }); - break; - } - } catch (error) { - if (fr[kAborted]) return; - queueMicrotask(()=>{ - fr[kState] = 'done'; - fr[kError] = error; - fireAProgressEvent('error', fr); - if ('loading' !== fr[kState]) fireAProgressEvent('loadend', fr); - }); - break; - } - })(); - } - function fireAProgressEvent(e, reader) { - const event = new ProgressEvent(e, { - bubbles: false, - cancelable: false - }); - reader.dispatchEvent(event); - } - function packageData(bytes, type, mimeType, encodingName) { - switch(type){ - case 'DataURL': - { - let dataURL = 'data:'; - const parsed = parseMIMEType(mimeType || 'application/octet-stream'); - if ('failure' !== parsed) dataURL += serializeAMimeType(parsed); - dataURL += ';base64,'; - const decoder = new StringDecoder('latin1'); - for (const chunk of bytes)dataURL += btoa(decoder.write(chunk)); - dataURL += btoa(decoder.end()); - return dataURL; - } - case 'Text': - { - let encoding = 'failure'; - if (encodingName) encoding = getEncoding(encodingName); - if ('failure' === encoding && mimeType) { - const type = parseMIMEType(mimeType); - if ('failure' !== type) encoding = getEncoding(type.parameters.get('charset')); - } - if ('failure' === encoding) encoding = 'UTF-8'; - return decode(bytes, encoding); - } - case 'ArrayBuffer': - { - const sequence = combineByteSequences(bytes); - return sequence.buffer; - } - case 'BinaryString': - { - let binaryString = ''; - const decoder = new StringDecoder('latin1'); - for (const chunk of bytes)binaryString += decoder.write(chunk); - binaryString += decoder.end(); - return binaryString; - } - } - } - function decode(ioQueue, encoding) { - const bytes = combineByteSequences(ioQueue); - const BOMEncoding = BOMSniffing(bytes); - let slice = 0; - if (null !== BOMEncoding) { - encoding = BOMEncoding; - slice = 'UTF-8' === BOMEncoding ? 3 : 2; - } - const sliced = bytes.slice(slice); - return new TextDecoder(encoding).decode(sliced); - } - function BOMSniffing(ioQueue) { - const [a, b, c] = ioQueue; - if (0xEF === a && 0xBB === b && 0xBF === c) return 'UTF-8'; - if (0xFE === a && 0xFF === b) return 'UTF-16BE'; - if (0xFF === a && 0xFE === b) return 'UTF-16LE'; - return null; - } - function combineByteSequences(sequences) { - const size = sequences.reduce((a, b)=>a + b.byteLength, 0); - let offset = 0; - return sequences.reduce((a, b)=>{ - a.set(b, offset); - offset += b.byteLength; - return a; - }, new Uint8Array(size)); - } - module.exports = { - staticPropertyDescriptors, - readOperation, - fireAProgressEvent - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const globalDispatcher = Symbol.for('undici.globalDispatcher.1'); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const Agent = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/agent.js"); - if (void 0 === getGlobalDispatcher()) setGlobalDispatcher(new Agent()); - function setGlobalDispatcher(agent) { - if (!agent || 'function' != typeof agent.dispatch) throw new InvalidArgumentError('Argument agent must implement Agent'); - Object.defineProperty(globalThis, globalDispatcher, { - value: agent, - writable: true, - enumerable: false, - configurable: false - }); - } - function getGlobalDispatcher() { - return globalThis[globalDispatcher]; - } - module.exports = { - setGlobalDispatcher, - getGlobalDispatcher - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/DecoratorHandler.js" (module) { - "use strict"; - module.exports = class { - constructor(handler){ - this.handler = handler; - } - onConnect(...args) { - return this.handler.onConnect(...args); - } - onError(...args) { - return this.handler.onError(...args); - } - onUpgrade(...args) { - return this.handler.onUpgrade(...args); - } - onHeaders(...args) { - return this.handler.onHeaders(...args); - } - onData(...args) { - return this.handler.onData(...args); - } - onComplete(...args) { - return this.handler.onComplete(...args); - } - onBodySent(...args) { - return this.handler.onBodySent(...args); - } - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/RedirectHandler.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { kBodyUsed } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const assert = __webpack_require__("assert"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const EE = __webpack_require__("events"); - const redirectableStatusCodes = [ - 300, - 301, - 302, - 303, - 307, - 308 - ]; - const kBody = Symbol('body'); - class BodyAsyncIterable { - constructor(body){ - this[kBody] = body; - this[kBodyUsed] = false; - } - async *[Symbol.asyncIterator]() { - assert(!this[kBodyUsed], 'disturbed'); - this[kBodyUsed] = true; - yield* this[kBody]; - } - } - class RedirectHandler { - constructor(dispatch, maxRedirections, opts, handler){ - if (null != maxRedirections && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) throw new InvalidArgumentError('maxRedirections must be a positive number'); - util.validateHandler(handler, opts.method, opts.upgrade); - this.dispatch = dispatch; - this.location = null; - this.abort = null; - this.opts = { - ...opts, - maxRedirections: 0 - }; - this.maxRedirections = maxRedirections; - this.handler = handler; - this.history = []; - if (util.isStream(this.opts.body)) { - if (0 === util.bodyLength(this.opts.body)) this.opts.body.on('data', function() { - assert(false); - }); - if ('boolean' != typeof this.opts.body.readableDidRead) { - this.opts.body[kBodyUsed] = false; - EE.prototype.on.call(this.opts.body, 'data', function() { - this[kBodyUsed] = true; - }); - } - } else if (this.opts.body && 'function' == typeof this.opts.body.pipeTo) this.opts.body = new BodyAsyncIterable(this.opts.body); - else if (this.opts.body && 'string' != typeof this.opts.body && !ArrayBuffer.isView(this.opts.body) && util.isIterable(this.opts.body)) this.opts.body = new BodyAsyncIterable(this.opts.body); - } - onConnect(abort) { - this.abort = abort; - this.handler.onConnect(abort, { - history: this.history - }); - } - onUpgrade(statusCode, headers, socket) { - this.handler.onUpgrade(statusCode, headers, socket); - } - onError(error) { - this.handler.onError(error); - } - onHeaders(statusCode, headers, resume, statusText) { - this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body) ? null : parseLocation(statusCode, headers); - if (this.opts.origin) this.history.push(new URL(this.opts.path, this.opts.origin)); - if (!this.location) return this.handler.onHeaders(statusCode, headers, resume, statusText); - const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))); - const path = search ? `${pathname}${search}` : pathname; - this.opts.headers = cleanRequestHeaders(this.opts.headers, 303 === statusCode, this.opts.origin !== origin); - this.opts.path = path; - this.opts.origin = origin; - this.opts.maxRedirections = 0; - this.opts.query = null; - if (303 === statusCode && 'HEAD' !== this.opts.method) { - this.opts.method = 'GET'; - this.opts.body = null; - } - } - onData(chunk) { - if (!this.location) return this.handler.onData(chunk); - } - onComplete(trailers) { - if (this.location) { - this.location = null; - this.abort = null; - this.dispatch(this.opts, this); - } else this.handler.onComplete(trailers); - } - onBodySent(chunk) { - if (this.handler.onBodySent) this.handler.onBodySent(chunk); - } - } - function parseLocation(statusCode, headers) { - if (-1 === redirectableStatusCodes.indexOf(statusCode)) return null; - for(let i = 0; i < headers.length; i += 2)if ('location' === headers[i].toString().toLowerCase()) return headers[i + 1]; - } - function shouldRemoveHeader(header, removeContent, unknownOrigin) { - if (4 === header.length) return 'host' === util.headerNameToString(header); - if (removeContent && util.headerNameToString(header).startsWith('content-')) return true; - if (unknownOrigin && (13 === header.length || 6 === header.length || 19 === header.length)) { - const name = util.headerNameToString(header); - return 'authorization' === name || 'cookie' === name || 'proxy-authorization' === name; - } - return false; - } - function cleanRequestHeaders(headers, removeContent, unknownOrigin) { - const ret = []; - if (Array.isArray(headers)) { - for(let i = 0; i < headers.length; i += 2)if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) ret.push(headers[i], headers[i + 1]); - } else if (headers && 'object' == typeof headers) { - for (const key of Object.keys(headers))if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) ret.push(key, headers[key]); - } else assert(null == headers, 'headers must be an object or an array'); - return ret; - } - module.exports = RedirectHandler; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/RetryHandler.js" (module, __unused_rspack_exports, __webpack_require__) { - const assert = __webpack_require__("assert"); - const { kRetryHandlerDefaultRetry } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { RequestRetryError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { isDisturbed, parseHeaders, parseRangeHeader } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - function calculateRetryAfterHeader(retryAfter) { - const current = Date.now(); - const diff = new Date(retryAfter).getTime() - current; - return diff; - } - class RetryHandler { - constructor(opts, handlers){ - const { retryOptions, ...dispatchOpts } = opts; - const { retry: retryFn, maxRetries, maxTimeout, minTimeout, timeoutFactor, methods, errorCodes, retryAfter, statusCodes } = retryOptions ?? {}; - this.dispatch = handlers.dispatch; - this.handler = handlers.handler; - this.opts = dispatchOpts; - this.abort = null; - this.aborted = false; - this.retryOpts = { - retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry], - retryAfter: retryAfter ?? true, - maxTimeout: maxTimeout ?? 30000, - timeout: minTimeout ?? 500, - timeoutFactor: timeoutFactor ?? 2, - maxRetries: maxRetries ?? 5, - methods: methods ?? [ - 'GET', - 'HEAD', - 'OPTIONS', - 'PUT', - 'DELETE', - 'TRACE' - ], - statusCodes: statusCodes ?? [ - 500, - 502, - 503, - 504, - 429 - ], - errorCodes: errorCodes ?? [ - 'ECONNRESET', - 'ECONNREFUSED', - 'ENOTFOUND', - 'ENETDOWN', - 'ENETUNREACH', - 'EHOSTDOWN', - 'EHOSTUNREACH', - 'EPIPE' - ] - }; - this.retryCount = 0; - this.start = 0; - this.end = null; - this.etag = null; - this.resume = null; - this.handler.onConnect((reason)=>{ - this.aborted = true; - if (this.abort) this.abort(reason); - else this.reason = reason; - }); - } - onRequestSent() { - if (this.handler.onRequestSent) this.handler.onRequestSent(); - } - onUpgrade(statusCode, headers, socket) { - if (this.handler.onUpgrade) this.handler.onUpgrade(statusCode, headers, socket); - } - onConnect(abort) { - if (this.aborted) abort(this.reason); - else this.abort = abort; - } - onBodySent(chunk) { - if (this.handler.onBodySent) return this.handler.onBodySent(chunk); - } - static [kRetryHandlerDefaultRetry](err, { state, opts }, cb) { - const { statusCode, code, headers } = err; - const { method, retryOptions } = opts; - const { maxRetries, timeout, maxTimeout, timeoutFactor, statusCodes, errorCodes, methods } = retryOptions; - let { counter, currentTimeout } = state; - currentTimeout = null != currentTimeout && currentTimeout > 0 ? currentTimeout : timeout; - if (code && 'UND_ERR_REQ_RETRY' !== code && 'UND_ERR_SOCKET' !== code && !errorCodes.includes(code)) return void cb(err); - if (Array.isArray(methods) && !methods.includes(method)) return void cb(err); - if (null != statusCode && Array.isArray(statusCodes) && !statusCodes.includes(statusCode)) return void cb(err); - if (counter > maxRetries) return void cb(err); - let retryAfterHeader = null != headers && headers['retry-after']; - if (retryAfterHeader) { - retryAfterHeader = Number(retryAfterHeader); - retryAfterHeader = isNaN(retryAfterHeader) ? calculateRetryAfterHeader(retryAfterHeader) : 1e3 * retryAfterHeader; - } - const retryTimeout = retryAfterHeader > 0 ? Math.min(retryAfterHeader, maxTimeout) : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout); - state.currentTimeout = retryTimeout; - setTimeout(()=>cb(null), retryTimeout); - } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { - const headers = parseHeaders(rawHeaders); - this.retryCount += 1; - if (statusCode >= 300) { - this.abort(new RequestRetryError('Request failed', statusCode, { - headers, - count: this.retryCount - })); - return false; - } - if (null != this.resume) { - this.resume = null; - if (206 !== statusCode) return true; - const contentRange = parseRangeHeader(headers['content-range']); - if (!contentRange) { - this.abort(new RequestRetryError('Content-Range mismatch', statusCode, { - headers, - count: this.retryCount - })); - return false; - } - if (null != this.etag && this.etag !== headers.etag) { - this.abort(new RequestRetryError('ETag mismatch', statusCode, { - headers, - count: this.retryCount - })); - return false; - } - const { start, size, end = size } = contentRange; - assert(this.start === start, 'content-range mismatch'); - assert(null == this.end || this.end === end, 'content-range mismatch'); - this.resume = resume; - return true; - } - if (null == this.end) { - if (206 === statusCode) { - const range = parseRangeHeader(headers['content-range']); - if (null == range) return this.handler.onHeaders(statusCode, rawHeaders, resume, statusMessage); - const { start, size, end = size } = range; - assert(null != start && Number.isFinite(start) && this.start !== start, 'content-range mismatch'); - assert(Number.isFinite(start)); - assert(null != end && Number.isFinite(end) && this.end !== end, 'invalid content-length'); - this.start = start; - this.end = end; - } - if (null == this.end) { - const contentLength = headers['content-length']; - this.end = null != contentLength ? Number(contentLength) : null; - } - assert(Number.isFinite(this.start)); - assert(null == this.end || Number.isFinite(this.end), 'invalid content-length'); - this.resume = resume; - this.etag = null != headers.etag ? headers.etag : null; - return this.handler.onHeaders(statusCode, rawHeaders, resume, statusMessage); - } - const err = new RequestRetryError('Request failed', statusCode, { - headers, - count: this.retryCount - }); - this.abort(err); - return false; - } - onData(chunk) { - this.start += chunk.length; - return this.handler.onData(chunk); - } - onComplete(rawTrailers) { - this.retryCount = 0; - return this.handler.onComplete(rawTrailers); - } - onError(err) { - if (this.aborted || isDisturbed(this.opts.body)) return this.handler.onError(err); - this.retryOpts.retry(err, { - state: { - counter: this.retryCount++, - currentTimeout: this.retryAfter - }, - opts: { - retryOptions: this.retryOpts, - ...this.opts - } - }, onRetry.bind(this)); - function onRetry(err) { - if (null != err || this.aborted || isDisturbed(this.opts.body)) return this.handler.onError(err); - if (0 !== this.start) this.opts = { - ...this.opts, - headers: { - ...this.opts.headers, - range: `bytes=${this.start}-${this.end ?? ''}` - } - }; - try { - this.dispatch(this.opts, this); - } catch (err) { - this.handler.onError(err); - } - } - } - } - module.exports = RetryHandler; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/interceptor/redirectInterceptor.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const RedirectHandler = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/RedirectHandler.js"); - function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) { - return (dispatch)=>function(opts, handler) { - const { maxRedirections = defaultMaxRedirections } = opts; - if (!maxRedirections) return dispatch(opts, handler); - const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler); - opts = { - ...opts, - maxRedirections: 0 - }; - return dispatch(opts, redirectHandler); - }; - } - module.exports = createRedirectInterceptor; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/constants.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - exports1.ww = exports1.oC = exports1.GP = exports1.e9 = exports1.l5 = exports1.Xc = exports1.M$ = exports1.N_ = exports1.pF = exports1.Y6 = exports1.Nh = exports1.CV = exports1.KO = exports1.XV = exports1.J8 = exports1.W4 = exports1.Wg = exports1.TYPE = exports1.ERROR = void 0; - const utils_1 = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/utils.js"); - (function(ERROR) { - ERROR[ERROR["OK"] = 0] = "OK"; - ERROR[ERROR["INTERNAL"] = 1] = "INTERNAL"; - ERROR[ERROR["STRICT"] = 2] = "STRICT"; - ERROR[ERROR["LF_EXPECTED"] = 3] = "LF_EXPECTED"; - ERROR[ERROR["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; - ERROR[ERROR["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; - ERROR[ERROR["INVALID_METHOD"] = 6] = "INVALID_METHOD"; - ERROR[ERROR["INVALID_URL"] = 7] = "INVALID_URL"; - ERROR[ERROR["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; - ERROR[ERROR["INVALID_VERSION"] = 9] = "INVALID_VERSION"; - ERROR[ERROR["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; - ERROR[ERROR["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; - ERROR[ERROR["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; - ERROR[ERROR["INVALID_STATUS"] = 13] = "INVALID_STATUS"; - ERROR[ERROR["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; - ERROR[ERROR["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; - ERROR[ERROR["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; - ERROR[ERROR["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; - ERROR[ERROR["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; - ERROR[ERROR["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; - ERROR[ERROR["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; - ERROR[ERROR["PAUSED"] = 21] = "PAUSED"; - ERROR[ERROR["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; - ERROR[ERROR["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; - ERROR[ERROR["USER"] = 24] = "USER"; - })(exports1.ERROR || (exports1.ERROR = {})); - (function(TYPE) { - TYPE[TYPE["BOTH"] = 0] = "BOTH"; - TYPE[TYPE["REQUEST"] = 1] = "REQUEST"; - TYPE[TYPE["RESPONSE"] = 2] = "RESPONSE"; - })(exports1.TYPE || (exports1.TYPE = {})); - (function(FLAGS) { - FLAGS[FLAGS["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; - FLAGS[FLAGS["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; - FLAGS[FLAGS["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; - FLAGS[FLAGS["CHUNKED"] = 8] = "CHUNKED"; - FLAGS[FLAGS["UPGRADE"] = 16] = "UPGRADE"; - FLAGS[FLAGS["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; - FLAGS[FLAGS["SKIPBODY"] = 64] = "SKIPBODY"; - FLAGS[FLAGS["TRAILING"] = 128] = "TRAILING"; - FLAGS[FLAGS["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; - })(exports1.Wg || (exports1.Wg = {})); - (function(LENIENT_FLAGS) { - LENIENT_FLAGS[LENIENT_FLAGS["HEADERS"] = 1] = "HEADERS"; - LENIENT_FLAGS[LENIENT_FLAGS["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; - LENIENT_FLAGS[LENIENT_FLAGS["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; - })(exports1.W4 || (exports1.W4 = {})); - var METHODS; - (function(METHODS) { - METHODS[METHODS["DELETE"] = 0] = "DELETE"; - METHODS[METHODS["GET"] = 1] = "GET"; - METHODS[METHODS["HEAD"] = 2] = "HEAD"; - METHODS[METHODS["POST"] = 3] = "POST"; - METHODS[METHODS["PUT"] = 4] = "PUT"; - METHODS[METHODS["CONNECT"] = 5] = "CONNECT"; - METHODS[METHODS["OPTIONS"] = 6] = "OPTIONS"; - METHODS[METHODS["TRACE"] = 7] = "TRACE"; - METHODS[METHODS["COPY"] = 8] = "COPY"; - METHODS[METHODS["LOCK"] = 9] = "LOCK"; - METHODS[METHODS["MKCOL"] = 10] = "MKCOL"; - METHODS[METHODS["MOVE"] = 11] = "MOVE"; - METHODS[METHODS["PROPFIND"] = 12] = "PROPFIND"; - METHODS[METHODS["PROPPATCH"] = 13] = "PROPPATCH"; - METHODS[METHODS["SEARCH"] = 14] = "SEARCH"; - METHODS[METHODS["UNLOCK"] = 15] = "UNLOCK"; - METHODS[METHODS["BIND"] = 16] = "BIND"; - METHODS[METHODS["REBIND"] = 17] = "REBIND"; - METHODS[METHODS["UNBIND"] = 18] = "UNBIND"; - METHODS[METHODS["ACL"] = 19] = "ACL"; - METHODS[METHODS["REPORT"] = 20] = "REPORT"; - METHODS[METHODS["MKACTIVITY"] = 21] = "MKACTIVITY"; - METHODS[METHODS["CHECKOUT"] = 22] = "CHECKOUT"; - METHODS[METHODS["MERGE"] = 23] = "MERGE"; - METHODS[METHODS["M-SEARCH"] = 24] = "M-SEARCH"; - METHODS[METHODS["NOTIFY"] = 25] = "NOTIFY"; - METHODS[METHODS["SUBSCRIBE"] = 26] = "SUBSCRIBE"; - METHODS[METHODS["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; - METHODS[METHODS["PATCH"] = 28] = "PATCH"; - METHODS[METHODS["PURGE"] = 29] = "PURGE"; - METHODS[METHODS["MKCALENDAR"] = 30] = "MKCALENDAR"; - METHODS[METHODS["LINK"] = 31] = "LINK"; - METHODS[METHODS["UNLINK"] = 32] = "UNLINK"; - METHODS[METHODS["SOURCE"] = 33] = "SOURCE"; - METHODS[METHODS["PRI"] = 34] = "PRI"; - METHODS[METHODS["DESCRIBE"] = 35] = "DESCRIBE"; - METHODS[METHODS["ANNOUNCE"] = 36] = "ANNOUNCE"; - METHODS[METHODS["SETUP"] = 37] = "SETUP"; - METHODS[METHODS["PLAY"] = 38] = "PLAY"; - METHODS[METHODS["PAUSE"] = 39] = "PAUSE"; - METHODS[METHODS["TEARDOWN"] = 40] = "TEARDOWN"; - METHODS[METHODS["GET_PARAMETER"] = 41] = "GET_PARAMETER"; - METHODS[METHODS["SET_PARAMETER"] = 42] = "SET_PARAMETER"; - METHODS[METHODS["REDIRECT"] = 43] = "REDIRECT"; - METHODS[METHODS["RECORD"] = 44] = "RECORD"; - METHODS[METHODS["FLUSH"] = 45] = "FLUSH"; - })(METHODS = exports1.J8 || (exports1.J8 = {})); - METHODS.DELETE, METHODS.GET, METHODS.HEAD, METHODS.POST, METHODS.PUT, METHODS.CONNECT, METHODS.OPTIONS, METHODS.TRACE, METHODS.COPY, METHODS.LOCK, METHODS.MKCOL, METHODS.MOVE, METHODS.PROPFIND, METHODS.PROPPATCH, METHODS.SEARCH, METHODS.UNLOCK, METHODS.BIND, METHODS.REBIND, METHODS.UNBIND, METHODS.ACL, METHODS.REPORT, METHODS.MKACTIVITY, METHODS.CHECKOUT, METHODS.MERGE, METHODS['M-SEARCH'], METHODS.NOTIFY, METHODS.SUBSCRIBE, METHODS.UNSUBSCRIBE, METHODS.PATCH, METHODS.PURGE, METHODS.MKCALENDAR, METHODS.LINK, METHODS.UNLINK, METHODS.PRI, METHODS.SOURCE; - METHODS.SOURCE; - METHODS.OPTIONS, METHODS.DESCRIBE, METHODS.ANNOUNCE, METHODS.SETUP, METHODS.PLAY, METHODS.PAUSE, METHODS.TEARDOWN, METHODS.GET_PARAMETER, METHODS.SET_PARAMETER, METHODS.REDIRECT, METHODS.RECORD, METHODS.FLUSH, METHODS.GET, METHODS.POST; - exports1.XV = utils_1.enumToMap(METHODS); - exports1.KO = {}; - Object.keys(exports1.XV).forEach((key)=>{ - if (/^H/.test(key)) exports1.KO[key] = exports1.XV[key]; - }); - (function(FINISH) { - FINISH[FINISH["SAFE"] = 0] = "SAFE"; - FINISH[FINISH["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; - FINISH[FINISH["UNSAFE"] = 2] = "UNSAFE"; - })(exports1.CV || (exports1.CV = {})); - exports1.Nh = []; - for(let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++){ - exports1.Nh.push(String.fromCharCode(i)); - exports1.Nh.push(String.fromCharCode(i + 0x20)); - } - exports1.Y6 = { - 0: 0, - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - 7: 7, - 8: 8, - 9: 9 - }; - exports1.pF = [ - '0', - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9' - ]; - exports1.N_ = exports1.Nh.concat(exports1.pF); - exports1.M$ = [ - '-', - '_', - '.', - '!', - '~', - '*', - '\'', - '(', - ')' - ]; - exports1.N_.concat(exports1.M$).concat([ - '%', - ';', - ':', - '&', - '=', - '+', - '$', - ',' - ]); - exports1.Xc = [ - '!', - '"', - '$', - '%', - '&', - '\'', - '(', - ')', - '*', - '+', - ',', - '-', - '.', - '/', - ':', - ';', - '<', - '=', - '>', - '@', - '[', - '\\', - ']', - '^', - '_', - '`', - '{', - '|', - '}', - '~' - ].concat(exports1.N_); - exports1.l5 = exports1.Xc.concat([ - '\t', - '\f' - ]); - for(let i = 0x80; i <= 0xff; i++)exports1.l5.push(i); - exports1.pF.concat([ - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'A', - 'B', - 'C', - 'D', - 'E', - 'F' - ]); - exports1.e9 = [ - '!', - '#', - '$', - '%', - '&', - '\'', - '*', - '+', - '-', - '.', - '^', - '_', - '`', - '|', - '~' - ].concat(exports1.N_); - exports1.e9.concat([ - ' ' - ]); - exports1.GP = [ - '\t' - ]; - for(let i = 32; i <= 255; i++)if (127 !== i) exports1.GP.push(i); - exports1.GP.filter((c)=>44 !== c); - exports1.oC = exports1.Y6; - exports1.oC; - var HEADER_STATE; - (function(HEADER_STATE) { - HEADER_STATE[HEADER_STATE["GENERAL"] = 0] = "GENERAL"; - HEADER_STATE[HEADER_STATE["CONNECTION"] = 1] = "CONNECTION"; - HEADER_STATE[HEADER_STATE["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; - HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; - HEADER_STATE[HEADER_STATE["UPGRADE"] = 4] = "UPGRADE"; - HEADER_STATE[HEADER_STATE["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; - HEADER_STATE[HEADER_STATE["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; - HEADER_STATE[HEADER_STATE["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; - HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; - })(HEADER_STATE = exports1.ww || (exports1.ww = {})); - HEADER_STATE.CONNECTION, HEADER_STATE.CONTENT_LENGTH, HEADER_STATE.CONNECTION, HEADER_STATE.TRANSFER_ENCODING, HEADER_STATE.UPGRADE; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/llhttp-wasm.js" (module) { - module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js" (module) { - module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/utils.js" (__unused_rspack_module, exports1) { - "use strict"; - exports1.enumToMap = void 0; - function enumToMap(obj) { - const res = {}; - Object.keys(obj).forEach((key)=>{ - const value = obj[key]; - if ('number' == typeof value) res[key] = value; - }); - return res; - } - exports1.enumToMap = enumToMap; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-agent.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kClients } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const Agent = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/agent.js"); - const { kAgent, kMockAgentSet, kMockAgentGet, kDispatches, kIsMockActive, kNetConnect, kGetNetConnect, kOptions, kFactory } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js"); - const MockClient = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-client.js"); - const MockPool = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-pool.js"); - const { matchValue, buildMockOptions } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-utils.js"); - const { InvalidArgumentError, UndiciError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const Dispatcher = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher.js"); - const Pluralizer = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/pluralizer.js"); - const PendingInterceptorsFormatter = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js"); - class FakeWeakRef { - constructor(value){ - this.value = value; - } - deref() { - return this.value; - } - } - class MockAgent extends Dispatcher { - constructor(opts){ - super(opts); - this[kNetConnect] = true; - this[kIsMockActive] = true; - if (opts && opts.agent && 'function' != typeof opts.agent.dispatch) throw new InvalidArgumentError('Argument opts.agent must implement Agent'); - const agent = opts && opts.agent ? opts.agent : new Agent(opts); - this[kAgent] = agent; - this[kClients] = agent[kClients]; - this[kOptions] = buildMockOptions(opts); - } - get(origin) { - let dispatcher = this[kMockAgentGet](origin); - if (!dispatcher) { - dispatcher = this[kFactory](origin); - this[kMockAgentSet](origin, dispatcher); - } - return dispatcher; - } - dispatch(opts, handler) { - this.get(opts.origin); - return this[kAgent].dispatch(opts, handler); - } - async close() { - await this[kAgent].close(); - this[kClients].clear(); - } - deactivate() { - this[kIsMockActive] = false; - } - activate() { - this[kIsMockActive] = true; - } - enableNetConnect(matcher) { - if ('string' == typeof matcher || 'function' == typeof matcher || matcher instanceof RegExp) if (Array.isArray(this[kNetConnect])) this[kNetConnect].push(matcher); - else this[kNetConnect] = [ - matcher - ]; - else if (void 0 === matcher) this[kNetConnect] = true; - else throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.'); - } - disableNetConnect() { - this[kNetConnect] = false; - } - get isMockActive() { - return this[kIsMockActive]; - } - [kMockAgentSet](origin, dispatcher) { - this[kClients].set(origin, new FakeWeakRef(dispatcher)); - } - [kFactory](origin) { - const mockOptions = Object.assign({ - agent: this - }, this[kOptions]); - return this[kOptions] && 1 === this[kOptions].connections ? new MockClient(origin, mockOptions) : new MockPool(origin, mockOptions); - } - [kMockAgentGet](origin) { - const ref = this[kClients].get(origin); - if (ref) return ref.deref(); - if ('string' != typeof origin) { - const dispatcher = this[kFactory]('http://localhost:9999'); - this[kMockAgentSet](origin, dispatcher); - return dispatcher; - } - for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])){ - const nonExplicitDispatcher = nonExplicitRef.deref(); - if (nonExplicitDispatcher && 'string' != typeof keyMatcher && matchValue(keyMatcher, origin)) { - const dispatcher = this[kFactory](origin); - this[kMockAgentSet](origin, dispatcher); - dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]; - return dispatcher; - } - } - } - [kGetNetConnect]() { - return this[kNetConnect]; - } - pendingInterceptors() { - const mockAgentClients = this[kClients]; - return Array.from(mockAgentClients.entries()).flatMap(([origin, scope])=>scope.deref()[kDispatches].map((dispatch)=>({ - ...dispatch, - origin - }))).filter(({ pending })=>pending); - } - assertNoPendingInterceptors({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { - const pending = this.pendingInterceptors(); - if (0 === pending.length) return; - const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length); - throw new UndiciError(` -${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: - -${pendingInterceptorsFormatter.format(pending)} -`.trim()); - } - } - module.exports = MockAgent; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-client.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { promisify } = __webpack_require__("util"); - const Client = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/client.js"); - const { buildMockDispatch } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-utils.js"); - const { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js"); - const { MockInterceptor } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-interceptor.js"); - const Symbols = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - class MockClient extends Client { - constructor(origin, opts){ - super(origin, opts); - if (!opts || !opts.agent || 'function' != typeof opts.agent.dispatch) throw new InvalidArgumentError('Argument opts.agent must implement Agent'); - this[kMockAgent] = opts.agent; - this[kOrigin] = origin; - this[kDispatches] = []; - this[kConnected] = 1; - this[kOriginalDispatch] = this.dispatch; - this[kOriginalClose] = this.close.bind(this); - this.dispatch = buildMockDispatch.call(this); - this.close = this[kClose]; - } - get [Symbols.kConnected]() { - return this[kConnected]; - } - intercept(opts) { - return new MockInterceptor(opts, this[kDispatches]); - } - async [kClose]() { - await promisify(this[kOriginalClose])(); - this[kConnected] = 0; - this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); - } - } - module.exports = MockClient; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-errors.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { UndiciError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - class MockNotMatchedError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, MockNotMatchedError); - this.name = 'MockNotMatchedError'; - this.message = message || 'The request does not match any registered mock dispatches'; - this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'; - } - } - module.exports = { - MockNotMatchedError - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-interceptor.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { getResponseData, buildKey, addMockDispatch } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-utils.js"); - const { kDispatches, kDispatchKey, kDefaultHeaders, kDefaultTrailers, kContentLength, kMockDispatch } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { buildURL } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - class MockScope { - constructor(mockDispatch){ - this[kMockDispatch] = mockDispatch; - } - delay(waitInMs) { - if ('number' != typeof waitInMs || !Number.isInteger(waitInMs) || waitInMs <= 0) throw new InvalidArgumentError('waitInMs must be a valid integer > 0'); - this[kMockDispatch].delay = waitInMs; - return this; - } - persist() { - this[kMockDispatch].persist = true; - return this; - } - times(repeatTimes) { - if ('number' != typeof repeatTimes || !Number.isInteger(repeatTimes) || repeatTimes <= 0) throw new InvalidArgumentError('repeatTimes must be a valid integer > 0'); - this[kMockDispatch].times = repeatTimes; - return this; - } - } - class MockInterceptor { - constructor(opts, mockDispatches){ - if ('object' != typeof opts) throw new InvalidArgumentError('opts must be an object'); - if (void 0 === opts.path) throw new InvalidArgumentError('opts.path must be defined'); - if (void 0 === opts.method) opts.method = 'GET'; - if ('string' == typeof opts.path) if (opts.query) opts.path = buildURL(opts.path, opts.query); - else { - const parsedURL = new URL(opts.path, 'data://'); - opts.path = parsedURL.pathname + parsedURL.search; - } - if ('string' == typeof opts.method) opts.method = opts.method.toUpperCase(); - this[kDispatchKey] = buildKey(opts); - this[kDispatches] = mockDispatches; - this[kDefaultHeaders] = {}; - this[kDefaultTrailers] = {}; - this[kContentLength] = false; - } - createMockScopeDispatchData(statusCode, data, responseOptions = {}) { - const responseData = getResponseData(data); - const contentLength = this[kContentLength] ? { - 'content-length': responseData.length - } : {}; - const headers = { - ...this[kDefaultHeaders], - ...contentLength, - ...responseOptions.headers - }; - const trailers = { - ...this[kDefaultTrailers], - ...responseOptions.trailers - }; - return { - statusCode, - data, - headers, - trailers - }; - } - validateReplyParameters(statusCode, data, responseOptions) { - if (void 0 === statusCode) throw new InvalidArgumentError('statusCode must be defined'); - if (void 0 === data) throw new InvalidArgumentError('data must be defined'); - if ('object' != typeof responseOptions) throw new InvalidArgumentError('responseOptions must be an object'); - } - reply(replyData) { - if ('function' == typeof replyData) { - const wrappedDefaultsCallback = (opts)=>{ - const resolvedData = replyData(opts); - if ('object' != typeof resolvedData) throw new InvalidArgumentError('reply options callback must return an object'); - const { statusCode, data = '', responseOptions = {} } = resolvedData; - this.validateReplyParameters(statusCode, data, responseOptions); - return { - ...this.createMockScopeDispatchData(statusCode, data, responseOptions) - }; - }; - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback); - return new MockScope(newMockDispatch); - } - const [statusCode, data = '', responseOptions = {}] = [ - ...arguments - ]; - this.validateReplyParameters(statusCode, data, responseOptions); - const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions); - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData); - return new MockScope(newMockDispatch); - } - replyWithError(error) { - if (void 0 === error) throw new InvalidArgumentError('error must be defined'); - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { - error - }); - return new MockScope(newMockDispatch); - } - defaultReplyHeaders(headers) { - if (void 0 === headers) throw new InvalidArgumentError('headers must be defined'); - this[kDefaultHeaders] = headers; - return this; - } - defaultReplyTrailers(trailers) { - if (void 0 === trailers) throw new InvalidArgumentError('trailers must be defined'); - this[kDefaultTrailers] = trailers; - return this; - } - replyContentLength() { - this[kContentLength] = true; - return this; - } - } - module.exports.MockInterceptor = MockInterceptor; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-pool.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { promisify } = __webpack_require__("util"); - const Pool = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js"); - const { buildMockDispatch } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-utils.js"); - const { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js"); - const { MockInterceptor } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-interceptor.js"); - const Symbols = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - class MockPool extends Pool { - constructor(origin, opts){ - super(origin, opts); - if (!opts || !opts.agent || 'function' != typeof opts.agent.dispatch) throw new InvalidArgumentError('Argument opts.agent must implement Agent'); - this[kMockAgent] = opts.agent; - this[kOrigin] = origin; - this[kDispatches] = []; - this[kConnected] = 1; - this[kOriginalDispatch] = this.dispatch; - this[kOriginalClose] = this.close.bind(this); - this.dispatch = buildMockDispatch.call(this); - this.close = this[kClose]; - } - get [Symbols.kConnected]() { - return this[kConnected]; - } - intercept(opts) { - return new MockInterceptor(opts, this[kDispatches]); - } - async [kClose]() { - await promisify(this[kOriginalClose])(); - this[kConnected] = 0; - this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); - } - } - module.exports = MockPool; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js" (module) { - "use strict"; - module.exports = { - kAgent: Symbol('agent'), - kOptions: Symbol('options'), - kFactory: Symbol('factory'), - kDispatches: Symbol('dispatches'), - kDispatchKey: Symbol('dispatch key'), - kDefaultHeaders: Symbol('default headers'), - kDefaultTrailers: Symbol('default trailers'), - kContentLength: Symbol('content length'), - kMockAgent: Symbol('mock agent'), - kMockAgentSet: Symbol('mock agent set'), - kMockAgentGet: Symbol('mock agent get'), - kMockDispatch: Symbol('mock dispatch'), - kClose: Symbol('close'), - kOriginalClose: Symbol('original agent close'), - kOrigin: Symbol('origin'), - kIsMockActive: Symbol('is mock active'), - kNetConnect: Symbol('net connect'), - kGetNetConnect: Symbol('get net connect'), - kConnected: Symbol('connected') - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-utils.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { MockNotMatchedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-errors.js"); - const { kDispatches, kMockAgent, kOriginalDispatch, kOrigin, kGetNetConnect } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js"); - const { buildURL, nop } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { STATUS_CODES } = __webpack_require__("http"); - const { types: { isPromise } } = __webpack_require__("util"); - function matchValue(match, value) { - if ('string' == typeof match) return match === value; - if (match instanceof RegExp) return match.test(value); - if ('function' == typeof match) return true === match(value); - return false; - } - function lowerCaseEntries(headers) { - return Object.fromEntries(Object.entries(headers).map(([headerName, headerValue])=>[ - headerName.toLocaleLowerCase(), - headerValue - ])); - } - function getHeaderByName(headers, key) { - if (Array.isArray(headers)) { - for(let i = 0; i < headers.length; i += 2)if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) return headers[i + 1]; - return; - } - if ('function' == typeof headers.get) return headers.get(key); - return lowerCaseEntries(headers)[key.toLocaleLowerCase()]; - } - function buildHeadersFromArray(headers) { - const clone = headers.slice(); - const entries = []; - for(let index = 0; index < clone.length; index += 2)entries.push([ - clone[index], - clone[index + 1] - ]); - return Object.fromEntries(entries); - } - function matchHeaders(mockDispatch, headers) { - if ('function' == typeof mockDispatch.headers) { - if (Array.isArray(headers)) headers = buildHeadersFromArray(headers); - return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {}); - } - if (void 0 === mockDispatch.headers) return true; - if ('object' != typeof headers || 'object' != typeof mockDispatch.headers) return false; - for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)){ - const headerValue = getHeaderByName(headers, matchHeaderName); - if (!matchValue(matchHeaderValue, headerValue)) return false; - } - return true; - } - function safeUrl(path) { - if ('string' != typeof path) return path; - const pathSegments = path.split('?'); - if (2 !== pathSegments.length) return path; - const qp = new URLSearchParams(pathSegments.pop()); - qp.sort(); - return [ - ...pathSegments, - qp.toString() - ].join('?'); - } - function matchKey(mockDispatch, { path, method, body, headers }) { - const pathMatch = matchValue(mockDispatch.path, path); - const methodMatch = matchValue(mockDispatch.method, method); - const bodyMatch = void 0 !== mockDispatch.body ? matchValue(mockDispatch.body, body) : true; - const headersMatch = matchHeaders(mockDispatch, headers); - return pathMatch && methodMatch && bodyMatch && headersMatch; - } - function getResponseData(data) { - if (Buffer.isBuffer(data)) return data; - if ('object' == typeof data) return JSON.stringify(data); - return data.toString(); - } - function getMockDispatch(mockDispatches, key) { - const basePath = key.query ? buildURL(key.path, key.query) : key.path; - const resolvedPath = 'string' == typeof basePath ? safeUrl(basePath) : basePath; - let matchedMockDispatches = mockDispatches.filter(({ consumed })=>!consumed).filter(({ path })=>matchValue(safeUrl(path), resolvedPath)); - if (0 === matchedMockDispatches.length) throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`); - matchedMockDispatches = matchedMockDispatches.filter(({ method })=>matchValue(method, key.method)); - if (0 === matchedMockDispatches.length) throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`); - matchedMockDispatches = matchedMockDispatches.filter(({ body })=>void 0 !== body ? matchValue(body, key.body) : true); - if (0 === matchedMockDispatches.length) throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`); - matchedMockDispatches = matchedMockDispatches.filter((mockDispatch)=>matchHeaders(mockDispatch, key.headers)); - if (0 === matchedMockDispatches.length) throw new MockNotMatchedError(`Mock dispatch not matched for headers '${'object' == typeof key.headers ? JSON.stringify(key.headers) : key.headers}'`); - return matchedMockDispatches[0]; - } - function addMockDispatch(mockDispatches, key, data) { - const baseData = { - timesInvoked: 0, - times: 1, - persist: false, - consumed: false - }; - const replyData = 'function' == typeof data ? { - callback: data - } : { - ...data - }; - const newMockDispatch = { - ...baseData, - ...key, - pending: true, - data: { - error: null, - ...replyData - } - }; - mockDispatches.push(newMockDispatch); - return newMockDispatch; - } - function deleteMockDispatch(mockDispatches, key) { - const index = mockDispatches.findIndex((dispatch)=>{ - if (!dispatch.consumed) return false; - return matchKey(dispatch, key); - }); - if (-1 !== index) mockDispatches.splice(index, 1); - } - function buildKey(opts) { - const { path, method, body, headers, query } = opts; - return { - path, - method, - body, - headers, - query - }; - } - function generateKeyValues(data) { - return Object.entries(data).reduce((keyValuePairs, [key, value])=>[ - ...keyValuePairs, - Buffer.from(`${key}`), - Array.isArray(value) ? value.map((x)=>Buffer.from(`${x}`)) : Buffer.from(`${value}`) - ], []); - } - function getStatusText(statusCode) { - return STATUS_CODES[statusCode] || 'unknown'; - } - async function getResponse(body) { - const buffers = []; - for await (const data of body)buffers.push(data); - return Buffer.concat(buffers).toString('utf8'); - } - function mockDispatch(opts, handler) { - const key = buildKey(opts); - const mockDispatch = getMockDispatch(this[kDispatches], key); - mockDispatch.timesInvoked++; - if (mockDispatch.data.callback) mockDispatch.data = { - ...mockDispatch.data, - ...mockDispatch.data.callback(opts) - }; - const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch; - const { timesInvoked, times } = mockDispatch; - mockDispatch.consumed = !persist && timesInvoked >= times; - mockDispatch.pending = timesInvoked < times; - if (null !== error) { - deleteMockDispatch(this[kDispatches], key); - handler.onError(error); - return true; - } - if ('number' == typeof delay && delay > 0) setTimeout(()=>{ - handleReply(this[kDispatches]); - }, delay); - else handleReply(this[kDispatches]); - function handleReply(mockDispatches, _data = data) { - const optsHeaders = Array.isArray(opts.headers) ? buildHeadersFromArray(opts.headers) : opts.headers; - const body = 'function' == typeof _data ? _data({ - ...opts, - headers: optsHeaders - }) : _data; - if (isPromise(body)) return void body.then((newData)=>handleReply(mockDispatches, newData)); - const responseData = getResponseData(body); - const responseHeaders = generateKeyValues(headers); - const responseTrailers = generateKeyValues(trailers); - handler.abort = nop; - handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode)); - handler.onData(Buffer.from(responseData)); - handler.onComplete(responseTrailers); - deleteMockDispatch(mockDispatches, key); - } - function resume() {} - return true; - } - function buildMockDispatch() { - const agent = this[kMockAgent]; - const origin = this[kOrigin]; - const originalDispatch = this[kOriginalDispatch]; - return function(opts, handler) { - if (agent.isMockActive) try { - mockDispatch.call(this, opts, handler); - } catch (error) { - if (error instanceof MockNotMatchedError) { - const netConnect = agent[kGetNetConnect](); - if (false === netConnect) throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`); - if (checkNetConnect(netConnect, origin)) originalDispatch.call(this, opts, handler); - else throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`); - } else throw error; - } - else originalDispatch.call(this, opts, handler); - }; - } - function checkNetConnect(netConnect, origin) { - const url = new URL(origin); - if (true === netConnect) return true; - if (Array.isArray(netConnect) && netConnect.some((matcher)=>matchValue(matcher, url.host))) return true; - return false; - } - function buildMockOptions(opts) { - if (opts) { - const { agent, ...mockOptions } = opts; - return mockOptions; - } - } - module.exports = { - getResponseData, - getMockDispatch, - addMockDispatch, - deleteMockDispatch, - buildKey, - generateKeyValues, - matchValue, - getResponse, - getStatusText, - mockDispatch, - buildMockDispatch, - checkNetConnect, - buildMockOptions, - getHeaderByName - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Transform } = __webpack_require__("stream"); - const { Console } = __webpack_require__("console"); - module.exports = class { - constructor({ disableColors } = {}){ - this.transform = new Transform({ - transform (chunk, _enc, cb) { - cb(null, chunk); - } - }); - this.logger = new Console({ - stdout: this.transform, - inspectOptions: { - colors: !disableColors && !process.env.CI - } - }); - } - format(pendingInterceptors) { - const withPrettyHeaders = pendingInterceptors.map(({ method, path, data: { statusCode }, persist, times, timesInvoked, origin })=>({ - Method: method, - Origin: origin, - Path: path, - 'Status code': statusCode, - Persistent: persist ? '✅' : '❌', - Invocations: timesInvoked, - Remaining: persist ? 1 / 0 : times - timesInvoked - })); - this.logger.table(withPrettyHeaders); - return this.transform.read().toString(); - } - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/pluralizer.js" (module) { - "use strict"; - const singulars = { - pronoun: 'it', - is: 'is', - was: 'was', - this: 'this' - }; - const plurals = { - pronoun: 'they', - is: 'are', - was: 'were', - this: 'these' - }; - module.exports = class { - constructor(singular, plural){ - this.singular = singular; - this.plural = plural; - } - pluralize(count) { - const one = 1 === count; - const keys = one ? singulars : plurals; - const noun = one ? this.singular : this.plural; - return { - ...keys, - count, - noun - }; - } - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/node/fixed-queue.js" (module) { - "use strict"; - const kSize = 2048; - const kMask = kSize - 1; - class FixedCircularBuffer { - constructor(){ - this.bottom = 0; - this.top = 0; - this.list = new Array(kSize); - this.next = null; - } - isEmpty() { - return this.top === this.bottom; - } - isFull() { - return (this.top + 1 & kMask) === this.bottom; - } - push(data) { - this.list[this.top] = data; - this.top = this.top + 1 & kMask; - } - shift() { - const nextItem = this.list[this.bottom]; - if (void 0 === nextItem) return null; - this.list[this.bottom] = void 0; - this.bottom = this.bottom + 1 & kMask; - return nextItem; - } - } - module.exports = class { - constructor(){ - this.head = this.tail = new FixedCircularBuffer(); - } - isEmpty() { - return this.head.isEmpty(); - } - push(data) { - if (this.head.isFull()) this.head = this.head.next = new FixedCircularBuffer(); - this.head.push(data); - } - shift() { - const tail = this.tail; - const next = tail.shift(); - if (tail.isEmpty() && null !== tail.next) this.tail = tail.next; - return next; - } - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool-base.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const DispatcherBase = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher-base.js"); - const FixedQueue = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/node/fixed-queue.js"); - const { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const PoolStats = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool-stats.js"); - const kClients = Symbol('clients'); - const kNeedDrain = Symbol('needDrain'); - const kQueue = Symbol('queue'); - const kClosedResolve = Symbol('closed resolve'); - const kOnDrain = Symbol('onDrain'); - const kOnConnect = Symbol('onConnect'); - const kOnDisconnect = Symbol('onDisconnect'); - const kOnConnectionError = Symbol('onConnectionError'); - const kGetDispatcher = Symbol('get dispatcher'); - const kAddClient = Symbol('add client'); - const kRemoveClient = Symbol('remove client'); - const kStats = Symbol('stats'); - class PoolBase extends DispatcherBase { - constructor(){ - super(); - this[kQueue] = new FixedQueue(); - this[kClients] = []; - this[kQueued] = 0; - const pool = this; - this[kOnDrain] = function(origin, targets) { - const queue = pool[kQueue]; - let needDrain = false; - while(!needDrain){ - const item = queue.shift(); - if (!item) break; - pool[kQueued]--; - needDrain = !this.dispatch(item.opts, item.handler); - } - this[kNeedDrain] = needDrain; - if (!this[kNeedDrain] && pool[kNeedDrain]) { - pool[kNeedDrain] = false; - pool.emit('drain', origin, [ - pool, - ...targets - ]); - } - if (pool[kClosedResolve] && queue.isEmpty()) Promise.all(pool[kClients].map((c)=>c.close())).then(pool[kClosedResolve]); - }; - this[kOnConnect] = (origin, targets)=>{ - pool.emit('connect', origin, [ - pool, - ...targets - ]); - }; - this[kOnDisconnect] = (origin, targets, err)=>{ - pool.emit('disconnect', origin, [ - pool, - ...targets - ], err); - }; - this[kOnConnectionError] = (origin, targets, err)=>{ - pool.emit('connectionError', origin, [ - pool, - ...targets - ], err); - }; - this[kStats] = new PoolStats(this); - } - get [kBusy]() { - return this[kNeedDrain]; - } - get [kConnected]() { - return this[kClients].filter((client)=>client[kConnected]).length; - } - get [kFree]() { - return this[kClients].filter((client)=>client[kConnected] && !client[kNeedDrain]).length; - } - get [kPending]() { - let ret = this[kQueued]; - for (const { [kPending]: pending } of this[kClients])ret += pending; - return ret; - } - get [kRunning]() { - let ret = 0; - for (const { [kRunning]: running } of this[kClients])ret += running; - return ret; - } - get [kSize]() { - let ret = this[kQueued]; - for (const { [kSize]: size } of this[kClients])ret += size; - return ret; - } - get stats() { - return this[kStats]; - } - async [kClose]() { - if (this[kQueue].isEmpty()) return Promise.all(this[kClients].map((c)=>c.close())); - return new Promise((resolve)=>{ - this[kClosedResolve] = resolve; - }); - } - async [kDestroy](err) { - while(true){ - const item = this[kQueue].shift(); - if (!item) break; - item.handler.onError(err); - } - return Promise.all(this[kClients].map((c)=>c.destroy(err))); - } - [kDispatch](opts, handler) { - const dispatcher = this[kGetDispatcher](); - if (dispatcher) { - if (!dispatcher.dispatch(opts, handler)) { - dispatcher[kNeedDrain] = true; - this[kNeedDrain] = !this[kGetDispatcher](); - } - } else { - this[kNeedDrain] = true; - this[kQueue].push({ - opts, - handler - }); - this[kQueued]++; - } - return !this[kNeedDrain]; - } - [kAddClient](client) { - client.on('drain', this[kOnDrain]).on('connect', this[kOnConnect]).on('disconnect', this[kOnDisconnect]).on('connectionError', this[kOnConnectionError]); - this[kClients].push(client); - if (this[kNeedDrain]) process.nextTick(()=>{ - if (this[kNeedDrain]) this[kOnDrain](client[kUrl], [ - this, - client - ]); - }); - return this; - } - [kRemoveClient](client) { - client.close(()=>{ - const idx = this[kClients].indexOf(client); - if (-1 !== idx) this[kClients].splice(idx, 1); - }); - this[kNeedDrain] = this[kClients].some((dispatcher)=>!dispatcher[kNeedDrain] && true !== dispatcher.closed && true !== dispatcher.destroyed); - } - } - module.exports = { - PoolBase, - kClients, - kNeedDrain, - kAddClient, - kRemoveClient, - kGetDispatcher - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool-stats.js" (module, __unused_rspack_exports, __webpack_require__) { - const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const kPool = Symbol('pool'); - class PoolStats { - constructor(pool){ - this[kPool] = pool; - } - get connected() { - return this[kPool][kConnected]; - } - get free() { - return this[kPool][kFree]; - } - get pending() { - return this[kPool][kPending]; - } - get queued() { - return this[kPool][kQueued]; - } - get running() { - return this[kPool][kRunning]; - } - get size() { - return this[kPool][kSize]; - } - } - module.exports = PoolStats; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { PoolBase, kClients, kNeedDrain, kAddClient, kGetDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool-base.js"); - const Client = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/client.js"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { kUrl, kInterceptors } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const buildConnector = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/connect.js"); - const kOptions = Symbol('options'); - const kConnections = Symbol('connections'); - const kFactory = Symbol('factory'); - function defaultFactory(origin, opts) { - return new Client(origin, opts); - } - class Pool extends PoolBase { - constructor(origin, { connections, factory = defaultFactory, connect, connectTimeout, tls, maxCachedSessions, socketPath, autoSelectFamily, autoSelectFamilyAttemptTimeout, allowH2, ...options } = {}){ - super(); - if (null != connections && (!Number.isFinite(connections) || connections < 0)) throw new InvalidArgumentError('invalid connections'); - if ('function' != typeof factory) throw new InvalidArgumentError('factory must be a function.'); - if (null != connect && 'function' != typeof connect && 'object' != typeof connect) throw new InvalidArgumentError('connect must be a function or an object'); - if ('function' != typeof connect) connect = buildConnector({ - ...tls, - maxCachedSessions, - allowH2, - socketPath, - timeout: connectTimeout, - ...util.nodeHasAutoSelectFamily && autoSelectFamily ? { - autoSelectFamily, - autoSelectFamilyAttemptTimeout - } : void 0, - ...connect - }); - this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool) ? options.interceptors.Pool : []; - this[kConnections] = connections || null; - this[kUrl] = util.parseOrigin(origin); - this[kOptions] = { - ...util.deepClone(options), - connect, - allowH2 - }; - this[kOptions].interceptors = options.interceptors ? { - ...options.interceptors - } : void 0; - this[kFactory] = factory; - this.on('connectionError', (origin, targets, error)=>{ - for (const target of targets){ - const idx = this[kClients].indexOf(target); - if (-1 !== idx) this[kClients].splice(idx, 1); - } - }); - } - [kGetDispatcher]() { - let dispatcher = this[kClients].find((dispatcher)=>!dispatcher[kNeedDrain]); - if (dispatcher) return dispatcher; - if (!this[kConnections] || this[kClients].length < this[kConnections]) { - dispatcher = this[kFactory](this[kUrl], this[kOptions]); - this[kAddClient](dispatcher); - } - return dispatcher; - } - } - module.exports = Pool; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/proxy-agent.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kProxy, kClose, kDestroy, kInterceptors } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { URL: URL1 } = __webpack_require__("url"); - const Agent = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/agent.js"); - const Pool = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js"); - const DispatcherBase = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher-base.js"); - const { InvalidArgumentError, RequestAbortedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const buildConnector = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/connect.js"); - const kAgent = Symbol('proxy agent'); - const kClient = Symbol('proxy client'); - const kProxyHeaders = Symbol('proxy headers'); - const kRequestTls = Symbol('request tls settings'); - const kProxyTls = Symbol('proxy tls settings'); - const kConnectEndpoint = Symbol('connect endpoint function'); - function defaultProtocolPort(protocol) { - return 'https:' === protocol ? 443 : 80; - } - function buildProxyOptions(opts) { - if ('string' == typeof opts) opts = { - uri: opts - }; - if (!opts || !opts.uri) throw new InvalidArgumentError('Proxy opts.uri is mandatory'); - return { - uri: opts.uri, - protocol: opts.protocol || 'https' - }; - } - function defaultFactory(origin, opts) { - return new Pool(origin, opts); - } - class ProxyAgent extends DispatcherBase { - constructor(opts){ - super(opts); - this[kProxy] = buildProxyOptions(opts); - this[kAgent] = new Agent(opts); - this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) ? opts.interceptors.ProxyAgent : []; - if ('string' == typeof opts) opts = { - uri: opts - }; - if (!opts || !opts.uri) throw new InvalidArgumentError('Proxy opts.uri is mandatory'); - const { clientFactory = defaultFactory } = opts; - if ('function' != typeof clientFactory) throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.'); - this[kRequestTls] = opts.requestTls; - this[kProxyTls] = opts.proxyTls; - this[kProxyHeaders] = opts.headers || {}; - const resolvedUrl = new URL1(opts.uri); - const { origin, port, host, username, password } = resolvedUrl; - if (opts.auth && opts.token) throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token'); - if (opts.auth) this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`; - else if (opts.token) this[kProxyHeaders]['proxy-authorization'] = opts.token; - else if (username && password) this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}`; - const connect = buildConnector({ - ...opts.proxyTls - }); - this[kConnectEndpoint] = buildConnector({ - ...opts.requestTls - }); - this[kClient] = clientFactory(resolvedUrl, { - connect - }); - this[kAgent] = new Agent({ - ...opts, - connect: async (opts, callback)=>{ - let requestedHost = opts.host; - if (!opts.port) requestedHost += `:${defaultProtocolPort(opts.protocol)}`; - try { - const { socket, statusCode } = await this[kClient].connect({ - origin, - port, - path: requestedHost, - signal: opts.signal, - headers: { - ...this[kProxyHeaders], - host - } - }); - if (200 !== statusCode) { - socket.on('error', ()=>{}).destroy(); - callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)); - } - if ('https:' !== opts.protocol) return void callback(null, socket); - let servername; - servername = this[kRequestTls] ? this[kRequestTls].servername : opts.servername; - this[kConnectEndpoint]({ - ...opts, - servername, - httpSocket: socket - }, callback); - } catch (err) { - callback(err); - } - } - }); - } - dispatch(opts, handler) { - const { host } = new URL1(opts.origin); - const headers = buildHeaders(opts.headers); - throwIfProxyAuthIsSent(headers); - return this[kAgent].dispatch({ - ...opts, - headers: { - ...headers, - host - } - }, handler); - } - async [kClose]() { - await this[kAgent].close(); - await this[kClient].close(); - } - async [kDestroy]() { - await this[kAgent].destroy(); - await this[kClient].destroy(); - } - } - function buildHeaders(headers) { - if (Array.isArray(headers)) { - const headersPair = {}; - for(let i = 0; i < headers.length; i += 2)headersPair[headers[i]] = headers[i + 1]; - return headersPair; - } - return headers; - } - function throwIfProxyAuthIsSent(headers) { - const existProxyAuth = headers && Object.keys(headers).find((key)=>'proxy-authorization' === key.toLowerCase()); - if (existProxyAuth) throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor'); - } - module.exports = ProxyAgent; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/timers.js" (module) { - "use strict"; - let fastNow = Date.now(); - let fastNowTimeout; - const fastTimers = []; - function onTimeout() { - fastNow = Date.now(); - let len = fastTimers.length; - let idx = 0; - while(idx < len){ - const timer = fastTimers[idx]; - if (0 === timer.state) timer.state = fastNow + timer.delay; - else if (timer.state > 0 && fastNow >= timer.state) { - timer.state = -1; - timer.callback(timer.opaque); - } - if (-1 === timer.state) { - timer.state = -2; - if (idx !== len - 1) fastTimers[idx] = fastTimers.pop(); - else fastTimers.pop(); - len -= 1; - } else idx += 1; - } - if (fastTimers.length > 0) refreshTimeout(); - } - function refreshTimeout() { - if (fastNowTimeout && fastNowTimeout.refresh) fastNowTimeout.refresh(); - else { - clearTimeout(fastNowTimeout); - fastNowTimeout = setTimeout(onTimeout, 1e3); - if (fastNowTimeout.unref) fastNowTimeout.unref(); - } - } - class Timeout { - constructor(callback, delay, opaque){ - this.callback = callback; - this.delay = delay; - this.opaque = opaque; - this.state = -2; - this.refresh(); - } - refresh() { - if (-2 === this.state) { - fastTimers.push(this); - if (!fastNowTimeout || 1 === fastTimers.length) refreshTimeout(); - } - this.state = 0; - } - clear() { - this.state = -1; - } - } - module.exports = { - setTimeout (callback, delay, opaque) { - return delay < 1e3 ? setTimeout(callback, delay, opaque) : new Timeout(callback, delay, opaque); - }, - clearTimeout (timeout) { - if (timeout instanceof Timeout) timeout.clear(); - else clearTimeout(timeout); - } - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/connection.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const diagnosticsChannel = __webpack_require__("diagnostics_channel"); - const { uid, states } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js"); - const { kReadyState, kSentClose, kByteParser, kReceivedClose } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/symbols.js"); - const { fireEvent, failWebsocketConnection } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/util.js"); - const { CloseEvent } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/events.js"); - const { makeRequest } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/request.js"); - const { fetching } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/index.js"); - const { Headers } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js"); - const { getGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js"); - const { kHeadersList } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const channels = {}; - channels.open = diagnosticsChannel.channel('undici:websocket:open'); - channels.close = diagnosticsChannel.channel('undici:websocket:close'); - channels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error'); - let crypto; - try { - crypto = __webpack_require__("crypto"); - } catch {} - function establishWebSocketConnection(url, protocols, ws, onEstablish, options) { - const requestURL = url; - requestURL.protocol = 'ws:' === url.protocol ? 'http:' : 'https:'; - const request = makeRequest({ - urlList: [ - requestURL - ], - serviceWorkers: 'none', - referrer: 'no-referrer', - mode: 'websocket', - credentials: 'include', - cache: 'no-store', - redirect: 'error' - }); - if (options.headers) { - const headersList = new Headers(options.headers)[kHeadersList]; - request.headersList = headersList; - } - const keyValue = crypto.randomBytes(16).toString('base64'); - request.headersList.append('sec-websocket-key', keyValue); - request.headersList.append('sec-websocket-version', '13'); - for (const protocol of protocols)request.headersList.append('sec-websocket-protocol', protocol); - const permessageDeflate = ''; - const controller = fetching({ - request, - useParallelQueue: true, - dispatcher: options.dispatcher ?? getGlobalDispatcher(), - processResponse (response) { - if ('error' === response.type || 101 !== response.status) return void failWebsocketConnection(ws, 'Received network error or non-101 status code.'); - if (0 !== protocols.length && !response.headersList.get('Sec-WebSocket-Protocol')) return void failWebsocketConnection(ws, 'Server did not respond with sent protocols.'); - if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') return void failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".'); - if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') return void failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".'); - const secWSAccept = response.headersList.get('Sec-WebSocket-Accept'); - const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64'); - if (secWSAccept !== digest) return void failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.'); - const secExtension = response.headersList.get('Sec-WebSocket-Extensions'); - if (null !== secExtension && secExtension !== permessageDeflate) return void failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.'); - const secProtocol = response.headersList.get('Sec-WebSocket-Protocol'); - if (null !== secProtocol && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) return void failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.'); - response.socket.on('data', onSocketData); - response.socket.on('close', onSocketClose); - response.socket.on('error', onSocketError); - if (channels.open.hasSubscribers) channels.open.publish({ - address: response.socket.address(), - protocol: secProtocol, - extensions: secExtension - }); - onEstablish(response); - } - }); - return controller; - } - function onSocketData(chunk) { - if (!this.ws[kByteParser].write(chunk)) this.pause(); - } - function onSocketClose() { - const { ws } = this; - const wasClean = ws[kSentClose] && ws[kReceivedClose]; - let code = 1005; - let reason = ''; - const result = ws[kByteParser].closingInfo; - if (result) { - code = result.code ?? 1005; - reason = result.reason; - } else if (!ws[kSentClose]) code = 1006; - ws[kReadyState] = states.CLOSED; - fireEvent('close', ws, CloseEvent, { - wasClean, - code, - reason - }); - if (channels.close.hasSubscribers) channels.close.publish({ - websocket: ws, - code, - reason - }); - } - function onSocketError(error) { - const { ws } = this; - ws[kReadyState] = states.CLOSING; - if (channels.socketError.hasSubscribers) channels.socketError.publish(error); - this.destroy(); - } - module.exports = { - establishWebSocketConnection - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js" (module) { - "use strict"; - const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'; - const staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false - }; - const states = { - CONNECTING: 0, - OPEN: 1, - CLOSING: 2, - CLOSED: 3 - }; - const opcodes = { - CONTINUATION: 0x0, - TEXT: 0x1, - BINARY: 0x2, - CLOSE: 0x8, - PING: 0x9, - PONG: 0xA - }; - const maxUnsigned16Bit = 2 ** 16 - 1; - const parserStates = { - INFO: 0, - PAYLOADLENGTH_16: 2, - PAYLOADLENGTH_64: 3, - READ_DATA: 4 - }; - const emptyBuffer = Buffer.allocUnsafe(0); - module.exports = { - uid, - staticPropertyDescriptors, - states, - opcodes, - maxUnsigned16Bit, - parserStates, - emptyBuffer - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/events.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { MessagePort } = __webpack_require__("worker_threads"); - class MessageEvent extends Event { - #eventInit; - constructor(type, eventInitDict = {}){ - webidl.argumentLengthCheck(arguments, 1, { - header: 'MessageEvent constructor' - }); - type = webidl.converters.DOMString(type); - eventInitDict = webidl.converters.MessageEventInit(eventInitDict); - super(type, eventInitDict); - this.#eventInit = eventInitDict; - } - get data() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.data; - } - get origin() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.origin; - } - get lastEventId() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.lastEventId; - } - get source() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.source; - } - get ports() { - webidl.brandCheck(this, MessageEvent); - if (!Object.isFrozen(this.#eventInit.ports)) Object.freeze(this.#eventInit.ports); - return this.#eventInit.ports; - } - initMessageEvent(type, bubbles = false, cancelable = false, data = null, origin = '', lastEventId = '', source = null, ports = []) { - webidl.brandCheck(this, MessageEvent); - webidl.argumentLengthCheck(arguments, 1, { - header: 'MessageEvent.initMessageEvent' - }); - return new MessageEvent(type, { - bubbles, - cancelable, - data, - origin, - lastEventId, - source, - ports - }); - } - } - class CloseEvent extends Event { - #eventInit; - constructor(type, eventInitDict = {}){ - webidl.argumentLengthCheck(arguments, 1, { - header: 'CloseEvent constructor' - }); - type = webidl.converters.DOMString(type); - eventInitDict = webidl.converters.CloseEventInit(eventInitDict); - super(type, eventInitDict); - this.#eventInit = eventInitDict; - } - get wasClean() { - webidl.brandCheck(this, CloseEvent); - return this.#eventInit.wasClean; - } - get code() { - webidl.brandCheck(this, CloseEvent); - return this.#eventInit.code; - } - get reason() { - webidl.brandCheck(this, CloseEvent); - return this.#eventInit.reason; - } - } - class ErrorEvent extends Event { - #eventInit; - constructor(type, eventInitDict){ - webidl.argumentLengthCheck(arguments, 1, { - header: 'ErrorEvent constructor' - }); - super(type, eventInitDict); - type = webidl.converters.DOMString(type); - eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}); - this.#eventInit = eventInitDict; - } - get message() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.message; - } - get filename() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.filename; - } - get lineno() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.lineno; - } - get colno() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.colno; - } - get error() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.error; - } - } - Object.defineProperties(MessageEvent.prototype, { - [Symbol.toStringTag]: { - value: 'MessageEvent', - configurable: true - }, - data: kEnumerableProperty, - origin: kEnumerableProperty, - lastEventId: kEnumerableProperty, - source: kEnumerableProperty, - ports: kEnumerableProperty, - initMessageEvent: kEnumerableProperty - }); - Object.defineProperties(CloseEvent.prototype, { - [Symbol.toStringTag]: { - value: 'CloseEvent', - configurable: true - }, - reason: kEnumerableProperty, - code: kEnumerableProperty, - wasClean: kEnumerableProperty - }); - Object.defineProperties(ErrorEvent.prototype, { - [Symbol.toStringTag]: { - value: 'ErrorEvent', - configurable: true - }, - message: kEnumerableProperty, - filename: kEnumerableProperty, - lineno: kEnumerableProperty, - colno: kEnumerableProperty, - error: kEnumerableProperty - }); - webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort); - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.MessagePort); - const eventInit = [ - { - key: 'bubbles', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'cancelable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'composed', - converter: webidl.converters.boolean, - defaultValue: false - } - ]; - webidl.converters.MessageEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'data', - converter: webidl.converters.any, - defaultValue: null - }, - { - key: 'origin', - converter: webidl.converters.USVString, - defaultValue: '' - }, - { - key: 'lastEventId', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'source', - converter: webidl.nullableConverter(webidl.converters.MessagePort), - defaultValue: null - }, - { - key: 'ports', - converter: webidl.converters['sequence'], - get defaultValue () { - return []; - } - } - ]); - webidl.converters.CloseEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'wasClean', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'code', - converter: webidl.converters['unsigned short'], - defaultValue: 0 - }, - { - key: 'reason', - converter: webidl.converters.USVString, - defaultValue: '' - } - ]); - webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'message', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'filename', - converter: webidl.converters.USVString, - defaultValue: '' - }, - { - key: 'lineno', - converter: webidl.converters['unsigned long'], - defaultValue: 0 - }, - { - key: 'colno', - converter: webidl.converters['unsigned long'], - defaultValue: 0 - }, - { - key: 'error', - converter: webidl.converters.any - } - ]); - module.exports = { - MessageEvent, - CloseEvent, - ErrorEvent - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/frame.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { maxUnsigned16Bit } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js"); - let crypto; - try { - crypto = __webpack_require__("crypto"); - } catch {} - class WebsocketFrameSend { - constructor(data){ - this.frameData = data; - this.maskKey = crypto.randomBytes(4); - } - createFrame(opcode) { - const bodyLength = this.frameData?.byteLength ?? 0; - let payloadLength = bodyLength; - let offset = 6; - if (bodyLength > maxUnsigned16Bit) { - offset += 8; - payloadLength = 127; - } else if (bodyLength > 125) { - offset += 2; - payloadLength = 126; - } - const buffer = Buffer.allocUnsafe(bodyLength + offset); - buffer[0] = buffer[1] = 0; - buffer[0] |= 0x80; - buffer[0] = (0xF0 & buffer[0]) + opcode; - /*! ws. MIT License. Einar Otto Stangvik */ buffer[offset - 4] = this.maskKey[0]; - buffer[offset - 3] = this.maskKey[1]; - buffer[offset - 2] = this.maskKey[2]; - buffer[offset - 1] = this.maskKey[3]; - buffer[1] = payloadLength; - if (126 === payloadLength) buffer.writeUInt16BE(bodyLength, 2); - else if (127 === payloadLength) { - buffer[2] = buffer[3] = 0; - buffer.writeUIntBE(bodyLength, 4, 6); - } - buffer[1] |= 0x80; - for(let i = 0; i < bodyLength; i++)buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]; - return buffer; - } - } - module.exports = { - WebsocketFrameSend - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/receiver.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Writable } = __webpack_require__("stream"); - const diagnosticsChannel = __webpack_require__("diagnostics_channel"); - const { parserStates, opcodes, states, emptyBuffer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js"); - const { kReadyState, kSentClose, kResponse, kReceivedClose } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/symbols.js"); - const { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/util.js"); - const { WebsocketFrameSend } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/frame.js"); - const channels = {}; - channels.ping = diagnosticsChannel.channel('undici:websocket:ping'); - channels.pong = diagnosticsChannel.channel('undici:websocket:pong'); - class ByteParser extends Writable { - #buffers = []; - #byteOffset = 0; - #state = parserStates.INFO; - #info = {}; - #fragments = []; - constructor(ws){ - super(); - this.ws = ws; - } - _write(chunk, _, callback) { - this.#buffers.push(chunk); - this.#byteOffset += chunk.length; - this.run(callback); - } - run(callback) { - while(true){ - if (this.#state === parserStates.INFO) { - if (this.#byteOffset < 2) return callback(); - const buffer = this.consume(2); - this.#info.fin = (0x80 & buffer[0]) !== 0; - this.#info.opcode = 0x0F & buffer[0]; - this.#info.originalOpcode ??= this.#info.opcode; - this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION; - if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) return void failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.'); - const payloadLength = 0x7F & buffer[1]; - if (payloadLength <= 125) { - this.#info.payloadLength = payloadLength; - this.#state = parserStates.READ_DATA; - } else if (126 === payloadLength) this.#state = parserStates.PAYLOADLENGTH_16; - else if (127 === payloadLength) this.#state = parserStates.PAYLOADLENGTH_64; - if (this.#info.fragmented && payloadLength > 125) return void failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.'); - if ((this.#info.opcode === opcodes.PING || this.#info.opcode === opcodes.PONG || this.#info.opcode === opcodes.CLOSE) && payloadLength > 125) return void failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.'); - if (this.#info.opcode === opcodes.CLOSE) { - if (1 === payloadLength) return void failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.'); - const body = this.consume(payloadLength); - this.#info.closeInfo = this.parseCloseBody(false, body); - if (!this.ws[kSentClose]) { - const body = Buffer.allocUnsafe(2); - body.writeUInt16BE(this.#info.closeInfo.code, 0); - const closeFrame = new WebsocketFrameSend(body); - this.ws[kResponse].socket.write(closeFrame.createFrame(opcodes.CLOSE), (err)=>{ - if (!err) this.ws[kSentClose] = true; - }); - } - this.ws[kReadyState] = states.CLOSING; - this.ws[kReceivedClose] = true; - this.end(); - return; - } else if (this.#info.opcode === opcodes.PING) { - const body = this.consume(payloadLength); - if (!this.ws[kReceivedClose]) { - const frame = new WebsocketFrameSend(body); - this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)); - if (channels.ping.hasSubscribers) channels.ping.publish({ - payload: body - }); - } - this.#state = parserStates.INFO; - if (this.#byteOffset > 0) continue; - return void callback(); - } else if (this.#info.opcode === opcodes.PONG) { - const body = this.consume(payloadLength); - if (channels.pong.hasSubscribers) channels.pong.publish({ - payload: body - }); - if (this.#byteOffset > 0) continue; - return void callback(); - } - } else if (this.#state === parserStates.PAYLOADLENGTH_16) { - if (this.#byteOffset < 2) return callback(); - const buffer = this.consume(2); - this.#info.payloadLength = buffer.readUInt16BE(0); - this.#state = parserStates.READ_DATA; - } else if (this.#state === parserStates.PAYLOADLENGTH_64) { - if (this.#byteOffset < 8) return callback(); - const buffer = this.consume(8); - const upper = buffer.readUInt32BE(0); - if (upper > 2 ** 31 - 1) return void failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.'); - const lower = buffer.readUInt32BE(4); - this.#info.payloadLength = (upper << 8) + lower; - this.#state = parserStates.READ_DATA; - } else if (this.#state === parserStates.READ_DATA) { - if (this.#byteOffset < this.#info.payloadLength) return callback(); - else if (this.#byteOffset >= this.#info.payloadLength) { - const body = this.consume(this.#info.payloadLength); - this.#fragments.push(body); - if (!this.#info.fragmented || this.#info.fin && this.#info.opcode === opcodes.CONTINUATION) { - const fullMessage = Buffer.concat(this.#fragments); - websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage); - this.#info = {}; - this.#fragments.length = 0; - } - this.#state = parserStates.INFO; - } - } - if (this.#byteOffset > 0) continue; - callback(); - break; - } - } - consume(n) { - if (n > this.#byteOffset) return null; - if (0 === n) return emptyBuffer; - if (this.#buffers[0].length === n) { - this.#byteOffset -= this.#buffers[0].length; - return this.#buffers.shift(); - } - const buffer = Buffer.allocUnsafe(n); - let offset = 0; - while(offset !== n){ - const next = this.#buffers[0]; - const { length } = next; - if (length + offset === n) { - buffer.set(this.#buffers.shift(), offset); - break; - } - if (length + offset > n) { - buffer.set(next.subarray(0, n - offset), offset); - this.#buffers[0] = next.subarray(n - offset); - break; - } - buffer.set(this.#buffers.shift(), offset); - offset += next.length; - } - this.#byteOffset -= n; - return buffer; - } - parseCloseBody(onlyCode, data) { - let code; - if (data.length >= 2) code = data.readUInt16BE(0); - if (onlyCode) { - if (!isValidStatusCode(code)) return null; - return { - code - }; - } - let reason = data.subarray(2); - if (0xEF === reason[0] && 0xBB === reason[1] && 0xBF === reason[2]) reason = reason.subarray(3); - if (void 0 !== code && !isValidStatusCode(code)) return null; - try { - reason = new TextDecoder('utf-8', { - fatal: true - }).decode(reason); - } catch { - return null; - } - return { - code, - reason - }; - } - get closingInfo() { - return this.#info.closeInfo; - } - } - module.exports = { - ByteParser - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/symbols.js" (module) { - "use strict"; - module.exports = { - kWebSocketURL: Symbol('url'), - kReadyState: Symbol('ready state'), - kController: Symbol('controller'), - kResponse: Symbol('response'), - kBinaryType: Symbol('binary type'), - kSentClose: Symbol('sent close'), - kReceivedClose: Symbol('received close'), - kByteParser: Symbol('byte parser') - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/util.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/symbols.js"); - const { states, opcodes } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js"); - const { MessageEvent, ErrorEvent } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/events.js"); - function isEstablished(ws) { - return ws[kReadyState] === states.OPEN; - } - function isClosing(ws) { - return ws[kReadyState] === states.CLOSING; - } - function isClosed(ws) { - return ws[kReadyState] === states.CLOSED; - } - function fireEvent(e, target, eventConstructor = Event, eventInitDict) { - const event = new eventConstructor(e, eventInitDict); - target.dispatchEvent(event); - } - function websocketMessageReceived(ws, type, data) { - if (ws[kReadyState] !== states.OPEN) return; - let dataForEvent; - if (type === opcodes.TEXT) try { - dataForEvent = new TextDecoder('utf-8', { - fatal: true - }).decode(data); - } catch { - failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.'); - return; - } - else if (type === opcodes.BINARY) dataForEvent = 'blob' === ws[kBinaryType] ? new Blob([ - data - ]) : new Uint8Array(data).buffer; - fireEvent('message', ws, MessageEvent, { - origin: ws[kWebSocketURL].origin, - data: dataForEvent - }); - } - function isValidSubprotocol(protocol) { - if (0 === protocol.length) return false; - for (const char of protocol){ - const code = char.charCodeAt(0); - if (code < 0x21 || code > 0x7E || '(' === char || ')' === char || '<' === char || '>' === char || '@' === char || ',' === char || ';' === char || ':' === char || '\\' === char || '"' === char || '/' === char || '[' === char || ']' === char || '?' === char || '=' === char || '{' === char || '}' === char || 32 === code || 9 === code) return false; - } - return true; - } - function isValidStatusCode(code) { - if (code >= 1000 && code < 1015) return 1004 !== code && 1005 !== code && 1006 !== code; - return code >= 3000 && code <= 4999; - } - function failWebsocketConnection(ws, reason) { - const { [kController]: controller, [kResponse]: response } = ws; - controller.abort(); - if (response?.socket && !response.socket.destroyed) response.socket.destroy(); - if (reason) fireEvent('error', ws, ErrorEvent, { - error: new Error(reason) - }); - } - module.exports = { - isEstablished, - isClosing, - isClosed, - fireEvent, - isValidSubprotocol, - isValidStatusCode, - failWebsocketConnection, - websocketMessageReceived - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/websocket.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { DOMException: DOMException1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { URLSerializer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { getGlobalOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js"); - const { staticPropertyDescriptors, states, opcodes, emptyBuffer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js"); - const { kWebSocketURL, kReadyState, kController, kBinaryType, kResponse, kSentClose, kByteParser } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/symbols.js"); - const { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/util.js"); - const { establishWebSocketConnection } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/connection.js"); - const { WebsocketFrameSend } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/frame.js"); - const { ByteParser } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/receiver.js"); - const { kEnumerableProperty, isBlobLike } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { getGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js"); - const { types } = __webpack_require__("util"); - let experimentalWarned = false; - class WebSocket extends EventTarget { - #events = { - open: null, - error: null, - close: null, - message: null - }; - #bufferedAmount = 0; - #protocol = ''; - #extensions = ''; - constructor(url, protocols = []){ - super(); - webidl.argumentLengthCheck(arguments, 1, { - header: 'WebSocket constructor' - }); - if (!experimentalWarned) { - experimentalWarned = true; - process.emitWarning('WebSockets are experimental, expect them to change at any time.', { - code: 'UNDICI-WS' - }); - } - const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols); - url = webidl.converters.USVString(url); - protocols = options.protocols; - const baseURL = getGlobalOrigin(); - let urlRecord; - try { - urlRecord = new URL(url, baseURL); - } catch (e) { - throw new DOMException1(e, 'SyntaxError'); - } - if ('http:' === urlRecord.protocol) urlRecord.protocol = 'ws:'; - else if ('https:' === urlRecord.protocol) urlRecord.protocol = 'wss:'; - if ('ws:' !== urlRecord.protocol && 'wss:' !== urlRecord.protocol) throw new DOMException1(`Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, 'SyntaxError'); - if (urlRecord.hash || urlRecord.href.endsWith('#')) throw new DOMException1('Got fragment', 'SyntaxError'); - if ('string' == typeof protocols) protocols = [ - protocols - ]; - if (protocols.length !== new Set(protocols.map((p)=>p.toLowerCase())).size) throw new DOMException1('Invalid Sec-WebSocket-Protocol value', 'SyntaxError'); - if (protocols.length > 0 && !protocols.every((p)=>isValidSubprotocol(p))) throw new DOMException1('Invalid Sec-WebSocket-Protocol value', 'SyntaxError'); - this[kWebSocketURL] = new URL(urlRecord.href); - this[kController] = establishWebSocketConnection(urlRecord, protocols, this, (response)=>this.#onConnectionEstablished(response), options); - this[kReadyState] = WebSocket.CONNECTING; - this[kBinaryType] = 'blob'; - } - close(code, reason) { - webidl.brandCheck(this, WebSocket); - if (void 0 !== code) code = webidl.converters['unsigned short'](code, { - clamp: true - }); - if (void 0 !== reason) reason = webidl.converters.USVString(reason); - if (void 0 !== code) { - if (1000 !== code && (code < 3000 || code > 4999)) throw new DOMException1('invalid code', 'InvalidAccessError'); - } - let reasonByteLength = 0; - if (void 0 !== reason) { - reasonByteLength = Buffer.byteLength(reason); - if (reasonByteLength > 123) throw new DOMException1(`Reason must be less than 123 bytes; received ${reasonByteLength}`, 'SyntaxError'); - } - if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) ; - else if (isEstablished(this)) if (isClosing(this)) this[kReadyState] = WebSocket.CLOSING; - else { - const frame = new WebsocketFrameSend(); - if (void 0 !== code && void 0 === reason) { - frame.frameData = Buffer.allocUnsafe(2); - frame.frameData.writeUInt16BE(code, 0); - } else if (void 0 !== code && void 0 !== reason) { - frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength); - frame.frameData.writeUInt16BE(code, 0); - frame.frameData.write(reason, 2, 'utf-8'); - } else frame.frameData = emptyBuffer; - const socket = this[kResponse].socket; - socket.write(frame.createFrame(opcodes.CLOSE), (err)=>{ - if (!err) this[kSentClose] = true; - }); - this[kReadyState] = states.CLOSING; - } - else { - failWebsocketConnection(this, 'Connection was closed before it was established.'); - this[kReadyState] = WebSocket.CLOSING; - } - } - send(data) { - webidl.brandCheck(this, WebSocket); - webidl.argumentLengthCheck(arguments, 1, { - header: 'WebSocket.send' - }); - data = webidl.converters.WebSocketSendData(data); - if (this[kReadyState] === WebSocket.CONNECTING) throw new DOMException1('Sent before connected.', 'InvalidStateError'); - if (!isEstablished(this) || isClosing(this)) return; - const socket = this[kResponse].socket; - if ('string' == typeof data) { - const value = Buffer.from(data); - const frame = new WebsocketFrameSend(value); - const buffer = frame.createFrame(opcodes.TEXT); - this.#bufferedAmount += value.byteLength; - socket.write(buffer, ()=>{ - this.#bufferedAmount -= value.byteLength; - }); - } else if (types.isArrayBuffer(data)) { - const value = Buffer.from(data); - const frame = new WebsocketFrameSend(value); - const buffer = frame.createFrame(opcodes.BINARY); - this.#bufferedAmount += value.byteLength; - socket.write(buffer, ()=>{ - this.#bufferedAmount -= value.byteLength; - }); - } else if (ArrayBuffer.isView(data)) { - const ab = Buffer.from(data, data.byteOffset, data.byteLength); - const frame = new WebsocketFrameSend(ab); - const buffer = frame.createFrame(opcodes.BINARY); - this.#bufferedAmount += ab.byteLength; - socket.write(buffer, ()=>{ - this.#bufferedAmount -= ab.byteLength; - }); - } else if (isBlobLike(data)) { - const frame = new WebsocketFrameSend(); - data.arrayBuffer().then((ab)=>{ - const value = Buffer.from(ab); - frame.frameData = value; - const buffer = frame.createFrame(opcodes.BINARY); - this.#bufferedAmount += value.byteLength; - socket.write(buffer, ()=>{ - this.#bufferedAmount -= value.byteLength; - }); - }); - } - } - get readyState() { - webidl.brandCheck(this, WebSocket); - return this[kReadyState]; - } - get bufferedAmount() { - webidl.brandCheck(this, WebSocket); - return this.#bufferedAmount; - } - get url() { - webidl.brandCheck(this, WebSocket); - return URLSerializer(this[kWebSocketURL]); - } - get extensions() { - webidl.brandCheck(this, WebSocket); - return this.#extensions; - } - get protocol() { - webidl.brandCheck(this, WebSocket); - return this.#protocol; - } - get onopen() { - webidl.brandCheck(this, WebSocket); - return this.#events.open; - } - set onopen(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.open) this.removeEventListener('open', this.#events.open); - if ('function' == typeof fn) { - this.#events.open = fn; - this.addEventListener('open', fn); - } else this.#events.open = null; - } - get onerror() { - webidl.brandCheck(this, WebSocket); - return this.#events.error; - } - set onerror(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.error) this.removeEventListener('error', this.#events.error); - if ('function' == typeof fn) { - this.#events.error = fn; - this.addEventListener('error', fn); - } else this.#events.error = null; - } - get onclose() { - webidl.brandCheck(this, WebSocket); - return this.#events.close; - } - set onclose(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.close) this.removeEventListener('close', this.#events.close); - if ('function' == typeof fn) { - this.#events.close = fn; - this.addEventListener('close', fn); - } else this.#events.close = null; - } - get onmessage() { - webidl.brandCheck(this, WebSocket); - return this.#events.message; - } - set onmessage(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.message) this.removeEventListener('message', this.#events.message); - if ('function' == typeof fn) { - this.#events.message = fn; - this.addEventListener('message', fn); - } else this.#events.message = null; - } - get binaryType() { - webidl.brandCheck(this, WebSocket); - return this[kBinaryType]; - } - set binaryType(type) { - webidl.brandCheck(this, WebSocket); - if ('blob' !== type && 'arraybuffer' !== type) this[kBinaryType] = 'blob'; - else this[kBinaryType] = type; - } - #onConnectionEstablished(response) { - this[kResponse] = response; - const parser = new ByteParser(this); - parser.on('drain', function() { - this.ws[kResponse].socket.resume(); - }); - response.socket.ws = this; - this[kByteParser] = parser; - this[kReadyState] = states.OPEN; - const extensions = response.headersList.get('sec-websocket-extensions'); - if (null !== extensions) this.#extensions = extensions; - const protocol = response.headersList.get('sec-websocket-protocol'); - if (null !== protocol) this.#protocol = protocol; - fireEvent('open', this); - } - } - WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING; - WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN; - WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING; - WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED; - Object.defineProperties(WebSocket.prototype, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors, - url: kEnumerableProperty, - readyState: kEnumerableProperty, - bufferedAmount: kEnumerableProperty, - onopen: kEnumerableProperty, - onerror: kEnumerableProperty, - onclose: kEnumerableProperty, - close: kEnumerableProperty, - onmessage: kEnumerableProperty, - binaryType: kEnumerableProperty, - send: kEnumerableProperty, - extensions: kEnumerableProperty, - protocol: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'WebSocket', - writable: false, - enumerable: false, - configurable: true - } - }); - Object.defineProperties(WebSocket, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors - }); - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.DOMString); - webidl.converters['DOMString or sequence'] = function(V) { - if ('Object' === webidl.util.Type(V) && Symbol.iterator in V) return webidl.converters['sequence'](V); - return webidl.converters.DOMString(V); - }; - webidl.converters.WebSocketInit = webidl.dictionaryConverter([ - { - key: 'protocols', - converter: webidl.converters['DOMString or sequence'], - get defaultValue () { - return []; - } - }, - { - key: 'dispatcher', - converter: (V)=>V, - get defaultValue () { - return getGlobalDispatcher(); } - }, - { - key: 'headers', - converter: webidl.nullableConverter(webidl.converters.HeadersInit) - } - ]); - webidl.converters['DOMString or sequence or WebSocketInit'] = function(V) { - if ('Object' === webidl.util.Type(V) && !(Symbol.iterator in V)) return webidl.converters.WebSocketInit(V); - return { - protocols: webidl.converters['DOMString or sequence'](V) - }; - }; - webidl.converters.WebSocketSendData = function(V) { - if ('Object' === webidl.util.Type(V)) { - if (isBlobLike(V)) return webidl.converters.Blob(V, { - strict: false - }); - if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) return webidl.converters.BufferSource(V); } - return webidl.converters.USVString(V); - }; - module.exports = { - WebSocket - }; + return target; + } + var debug; + debug = process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG) ? function() { + var args = Array.prototype.slice.call(arguments); + if ('string' == typeof args[0]) args[0] = 'TUNNEL: ' + args[0]; + else args.unshift('TUNNEL:'); + console.error.apply(console, args); + } : function() {}; + exports1.debug = debug; }, "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/index.js" (module, __unused_rspack_exports, __webpack_require__) { "use strict"; @@ -17350,7 +1135,7 @@ ${pendingInterceptorsFormatter.format(pending)} __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/pool.js"); __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/balanced-pool.js"); __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/agent.js"); - __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/proxy-agent.js"); + const ProxyAgent = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/proxy-agent.js"); __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"); __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/retry-agent.js"); const errors = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/errors.js"); @@ -17368,6 +1153,7 @@ ${pendingInterceptorsFormatter.format(pending)} __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/handler/redirect-handler.js"); __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/interceptor/redirect-interceptor.js"); Object.assign(Dispatcher.prototype, api); + module.exports.ProxyAgent = ProxyAgent; __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/interceptor/redirect.js"), __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/interceptor/retry.js"), __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/interceptor/dump.js"), __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/interceptor/dns.js"); util.parseHeaders, util.headerNameToString; function makeDispatcher(fn) { @@ -17397,7 +1183,15 @@ ${pendingInterceptorsFormatter.format(pending)} }, handler); }; } - __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/index.js").fetch; + const fetchImpl = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/index.js").fetch; + module.exports.hd = async function(init, options) { + try { + return await fetchImpl(init, options); + } catch (err) { + if (err && 'object' == typeof err) Error.captureStackTrace(err); + throw err; + } + }; __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/headers.js").Headers; __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/response.js").Response; __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/request.js").Request; @@ -29743,4055 +13537,6965 @@ ${pendingInterceptorsFormatter.format(pending)} } } module.exports = { - getEncoding + getEncoding + }; + }, + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/filereader.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const { staticPropertyDescriptors, readOperation, fireAProgressEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/util.js"); + const { kState, kError, kResult, kEvents, kAborted } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/symbols.js"); + const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/webidl.js"); + const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/util.js"); + class FileReader extends EventTarget { + constructor(){ + super(); + this[kState] = 'empty'; + this[kResult] = null; + this[kError] = null; + this[kEvents] = { + loadend: null, + error: null, + abort: null, + load: null, + progress: null, + loadstart: null + }; + } + readAsArrayBuffer(blob) { + webidl.brandCheck(this, FileReader); + webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsArrayBuffer'); + blob = webidl.converters.Blob(blob, { + strict: false + }); + readOperation(this, blob, 'ArrayBuffer'); + } + readAsBinaryString(blob) { + webidl.brandCheck(this, FileReader); + webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsBinaryString'); + blob = webidl.converters.Blob(blob, { + strict: false + }); + readOperation(this, blob, 'BinaryString'); + } + readAsText(blob, encoding) { + webidl.brandCheck(this, FileReader); + webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsText'); + blob = webidl.converters.Blob(blob, { + strict: false + }); + if (void 0 !== encoding) encoding = webidl.converters.DOMString(encoding, 'FileReader.readAsText', 'encoding'); + readOperation(this, blob, 'Text', encoding); + } + readAsDataURL(blob) { + webidl.brandCheck(this, FileReader); + webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsDataURL'); + blob = webidl.converters.Blob(blob, { + strict: false + }); + readOperation(this, blob, 'DataURL'); + } + abort() { + if ('empty' === this[kState] || 'done' === this[kState]) { + this[kResult] = null; + return; + } + if ('loading' === this[kState]) { + this[kState] = 'done'; + this[kResult] = null; + } + this[kAborted] = true; + fireAProgressEvent('abort', this); + if ('loading' !== this[kState]) fireAProgressEvent('loadend', this); + } + get readyState() { + webidl.brandCheck(this, FileReader); + switch(this[kState]){ + case 'empty': + return this.EMPTY; + case 'loading': + return this.LOADING; + case 'done': + return this.DONE; + } + } + get result() { + webidl.brandCheck(this, FileReader); + return this[kResult]; + } + get error() { + webidl.brandCheck(this, FileReader); + return this[kError]; + } + get onloadend() { + webidl.brandCheck(this, FileReader); + return this[kEvents].loadend; + } + set onloadend(fn) { + webidl.brandCheck(this, FileReader); + if (this[kEvents].loadend) this.removeEventListener('loadend', this[kEvents].loadend); + if ('function' == typeof fn) { + this[kEvents].loadend = fn; + this.addEventListener('loadend', fn); + } else this[kEvents].loadend = null; + } + get onerror() { + webidl.brandCheck(this, FileReader); + return this[kEvents].error; + } + set onerror(fn) { + webidl.brandCheck(this, FileReader); + if (this[kEvents].error) this.removeEventListener('error', this[kEvents].error); + if ('function' == typeof fn) { + this[kEvents].error = fn; + this.addEventListener('error', fn); + } else this[kEvents].error = null; + } + get onloadstart() { + webidl.brandCheck(this, FileReader); + return this[kEvents].loadstart; + } + set onloadstart(fn) { + webidl.brandCheck(this, FileReader); + if (this[kEvents].loadstart) this.removeEventListener('loadstart', this[kEvents].loadstart); + if ('function' == typeof fn) { + this[kEvents].loadstart = fn; + this.addEventListener('loadstart', fn); + } else this[kEvents].loadstart = null; + } + get onprogress() { + webidl.brandCheck(this, FileReader); + return this[kEvents].progress; + } + set onprogress(fn) { + webidl.brandCheck(this, FileReader); + if (this[kEvents].progress) this.removeEventListener('progress', this[kEvents].progress); + if ('function' == typeof fn) { + this[kEvents].progress = fn; + this.addEventListener('progress', fn); + } else this[kEvents].progress = null; + } + get onload() { + webidl.brandCheck(this, FileReader); + return this[kEvents].load; + } + set onload(fn) { + webidl.brandCheck(this, FileReader); + if (this[kEvents].load) this.removeEventListener('load', this[kEvents].load); + if ('function' == typeof fn) { + this[kEvents].load = fn; + this.addEventListener('load', fn); + } else this[kEvents].load = null; + } + get onabort() { + webidl.brandCheck(this, FileReader); + return this[kEvents].abort; + } + set onabort(fn) { + webidl.brandCheck(this, FileReader); + if (this[kEvents].abort) this.removeEventListener('abort', this[kEvents].abort); + if ('function' == typeof fn) { + this[kEvents].abort = fn; + this.addEventListener('abort', fn); + } else this[kEvents].abort = null; + } + } + FileReader.EMPTY = FileReader.prototype.EMPTY = 0; + FileReader.LOADING = FileReader.prototype.LOADING = 1; + FileReader.DONE = FileReader.prototype.DONE = 2; + Object.defineProperties(FileReader.prototype, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors, + readAsArrayBuffer: kEnumerableProperty, + readAsBinaryString: kEnumerableProperty, + readAsText: kEnumerableProperty, + readAsDataURL: kEnumerableProperty, + abort: kEnumerableProperty, + readyState: kEnumerableProperty, + result: kEnumerableProperty, + error: kEnumerableProperty, + onloadstart: kEnumerableProperty, + onprogress: kEnumerableProperty, + onload: kEnumerableProperty, + onabort: kEnumerableProperty, + onerror: kEnumerableProperty, + onloadend: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'FileReader', + writable: false, + enumerable: false, + configurable: true + } + }); + Object.defineProperties(FileReader, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors + }); + module.exports = { + FileReader + }; + }, + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/progressevent.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/webidl.js"); + const kState = Symbol('ProgressEvent state'); + class ProgressEvent extends Event { + constructor(type, eventInitDict = {}){ + type = webidl.converters.DOMString(type, 'ProgressEvent constructor', 'type'); + eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}); + super(type, eventInitDict); + this[kState] = { + lengthComputable: eventInitDict.lengthComputable, + loaded: eventInitDict.loaded, + total: eventInitDict.total + }; + } + get lengthComputable() { + webidl.brandCheck(this, ProgressEvent); + return this[kState].lengthComputable; + } + get loaded() { + webidl.brandCheck(this, ProgressEvent); + return this[kState].loaded; + } + get total() { + webidl.brandCheck(this, ProgressEvent); + return this[kState].total; + } + } + webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ + { + key: 'lengthComputable', + converter: webidl.converters.boolean, + defaultValue: ()=>false + }, + { + key: 'loaded', + converter: webidl.converters['unsigned long long'], + defaultValue: ()=>0 + }, + { + key: 'total', + converter: webidl.converters['unsigned long long'], + defaultValue: ()=>0 + }, + { + key: 'bubbles', + converter: webidl.converters.boolean, + defaultValue: ()=>false + }, + { + key: 'cancelable', + converter: webidl.converters.boolean, + defaultValue: ()=>false + }, + { + key: 'composed', + converter: webidl.converters.boolean, + defaultValue: ()=>false + } + ]); + module.exports = { + ProgressEvent + }; + }, + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/symbols.js" (module) { + "use strict"; + module.exports = { + kState: Symbol('FileReader state'), + kResult: Symbol('FileReader result'), + kError: Symbol('FileReader error'), + kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'), + kEvents: Symbol('FileReader events'), + kAborted: Symbol('FileReader aborted') + }; + }, + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/util.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const { kState, kError, kResult, kAborted, kLastProgressEventFired } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/symbols.js"); + const { ProgressEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/progressevent.js"); + const { getEncoding } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/encoding.js"); + const { serializeAMimeType, parseMIMEType } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/data-url.js"); + const { types } = __webpack_require__("node:util"); + const { StringDecoder } = __webpack_require__("string_decoder"); + const { btoa } = __webpack_require__("node:buffer"); + const staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false + }; + function readOperation(fr, blob, type, encodingName) { + if ('loading' === fr[kState]) throw new DOMException('Invalid state', 'InvalidStateError'); + fr[kState] = 'loading'; + fr[kResult] = null; + fr[kError] = null; + const stream = blob.stream(); + const reader = stream.getReader(); + const bytes = []; + let chunkPromise = reader.read(); + let isFirstChunk = true; + (async ()=>{ + while(!fr[kAborted])try { + const { done, value } = await chunkPromise; + if (isFirstChunk && !fr[kAborted]) queueMicrotask(()=>{ + fireAProgressEvent('loadstart', fr); + }); + isFirstChunk = false; + if (!done && types.isUint8Array(value)) { + bytes.push(value); + if ((void 0 === fr[kLastProgressEventFired] || Date.now() - fr[kLastProgressEventFired] >= 50) && !fr[kAborted]) { + fr[kLastProgressEventFired] = Date.now(); + queueMicrotask(()=>{ + fireAProgressEvent('progress', fr); + }); + } + chunkPromise = reader.read(); + } else if (done) { + queueMicrotask(()=>{ + fr[kState] = 'done'; + try { + const result = packageData(bytes, type, blob.type, encodingName); + if (fr[kAborted]) return; + fr[kResult] = result; + fireAProgressEvent('load', fr); + } catch (error) { + fr[kError] = error; + fireAProgressEvent('error', fr); + } + if ('loading' !== fr[kState]) fireAProgressEvent('loadend', fr); + }); + break; + } + } catch (error) { + if (fr[kAborted]) return; + queueMicrotask(()=>{ + fr[kState] = 'done'; + fr[kError] = error; + fireAProgressEvent('error', fr); + if ('loading' !== fr[kState]) fireAProgressEvent('loadend', fr); + }); + break; + } + })(); + } + function fireAProgressEvent(e, reader) { + const event = new ProgressEvent(e, { + bubbles: false, + cancelable: false + }); + reader.dispatchEvent(event); + } + function packageData(bytes, type, mimeType, encodingName) { + switch(type){ + case 'DataURL': + { + let dataURL = 'data:'; + const parsed = parseMIMEType(mimeType || 'application/octet-stream'); + if ('failure' !== parsed) dataURL += serializeAMimeType(parsed); + dataURL += ';base64,'; + const decoder = new StringDecoder('latin1'); + for (const chunk of bytes)dataURL += btoa(decoder.write(chunk)); + dataURL += btoa(decoder.end()); + return dataURL; + } + case 'Text': + { + let encoding = 'failure'; + if (encodingName) encoding = getEncoding(encodingName); + if ('failure' === encoding && mimeType) { + const type = parseMIMEType(mimeType); + if ('failure' !== type) encoding = getEncoding(type.parameters.get('charset')); + } + if ('failure' === encoding) encoding = 'UTF-8'; + return decode(bytes, encoding); + } + case 'ArrayBuffer': + { + const sequence = combineByteSequences(bytes); + return sequence.buffer; + } + case 'BinaryString': + { + let binaryString = ''; + const decoder = new StringDecoder('latin1'); + for (const chunk of bytes)binaryString += decoder.write(chunk); + binaryString += decoder.end(); + return binaryString; + } + } + } + function decode(ioQueue, encoding) { + const bytes = combineByteSequences(ioQueue); + const BOMEncoding = BOMSniffing(bytes); + let slice = 0; + if (null !== BOMEncoding) { + encoding = BOMEncoding; + slice = 'UTF-8' === BOMEncoding ? 3 : 2; + } + const sliced = bytes.slice(slice); + return new TextDecoder(encoding).decode(sliced); + } + function BOMSniffing(ioQueue) { + const [a, b, c] = ioQueue; + if (0xEF === a && 0xBB === b && 0xBF === c) return 'UTF-8'; + if (0xFE === a && 0xFF === b) return 'UTF-16BE'; + if (0xFF === a && 0xFE === b) return 'UTF-16LE'; + return null; + } + function combineByteSequences(sequences) { + const size = sequences.reduce((a, b)=>a + b.byteLength, 0); + let offset = 0; + return sequences.reduce((a, b)=>{ + a.set(b, offset); + offset += b.byteLength; + return a; + }, new Uint8Array(size)); + } + module.exports = { + staticPropertyDescriptors, + readOperation, + fireAProgressEvent + }; + }, + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/connection.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); + const { kReadyState, kSentClose, kByteParser, kReceivedClose, kResponse } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/symbols.js"); + const { fireEvent, failWebsocketConnection, isClosing, isClosed, isEstablished, parseExtensions } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/util.js"); + const { channels } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/diagnostics.js"); + const { CloseEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/events.js"); + const { makeRequest } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/request.js"); + const { fetching } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/index.js"); + const { Headers, getHeadersList } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/headers.js"); + const { getDecodeSplit } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/util.js"); + const { WebsocketFrameSend } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/frame.js"); + let crypto; + try { + crypto = __webpack_require__("node:crypto"); + } catch {} + function establishWebSocketConnection(url, protocols, client, ws, onEstablish, options) { + const requestURL = url; + requestURL.protocol = 'ws:' === url.protocol ? 'http:' : 'https:'; + const request = makeRequest({ + urlList: [ + requestURL + ], + client, + serviceWorkers: 'none', + referrer: 'no-referrer', + mode: 'websocket', + credentials: 'include', + cache: 'no-store', + redirect: 'error' + }); + if (options.headers) { + const headersList = getHeadersList(new Headers(options.headers)); + request.headersList = headersList; + } + const keyValue = crypto.randomBytes(16).toString('base64'); + request.headersList.append('sec-websocket-key', keyValue); + request.headersList.append('sec-websocket-version', '13'); + for (const protocol of protocols)request.headersList.append('sec-websocket-protocol', protocol); + const permessageDeflate = 'permessage-deflate; client_max_window_bits'; + request.headersList.append('sec-websocket-extensions', permessageDeflate); + const controller = fetching({ + request, + useParallelQueue: true, + dispatcher: options.dispatcher, + processResponse (response) { + if ('error' === response.type || 101 !== response.status) return void failWebsocketConnection(ws, 'Received network error or non-101 status code.'); + if (0 !== protocols.length && !response.headersList.get('Sec-WebSocket-Protocol')) return void failWebsocketConnection(ws, 'Server did not respond with sent protocols.'); + if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') return void failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".'); + if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') return void failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".'); + const secWSAccept = response.headersList.get('Sec-WebSocket-Accept'); + const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64'); + if (secWSAccept !== digest) return void failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.'); + const secExtension = response.headersList.get('Sec-WebSocket-Extensions'); + let extensions; + if (null !== secExtension) { + extensions = parseExtensions(secExtension); + if (!extensions.has('permessage-deflate')) return void failWebsocketConnection(ws, 'Sec-WebSocket-Extensions header does not match.'); + } + const secProtocol = response.headersList.get('Sec-WebSocket-Protocol'); + if (null !== secProtocol) { + const requestProtocols = getDecodeSplit('sec-websocket-protocol', request.headersList); + if (!requestProtocols.includes(secProtocol)) return void failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.'); + } + response.socket.on('data', onSocketData); + response.socket.on('close', onSocketClose); + response.socket.on('error', onSocketError); + if (channels.open.hasSubscribers) channels.open.publish({ + address: response.socket.address(), + protocol: secProtocol, + extensions: secExtension + }); + onEstablish(response, extensions); + } + }); + return controller; + } + function closeWebSocketConnection(ws, code, reason, reasonByteLength) { + if (isClosing(ws) || isClosed(ws)) ; + else if (isEstablished(ws)) if (ws[kSentClose] === sentCloseFrameState.NOT_SENT) { + ws[kSentClose] = sentCloseFrameState.PROCESSING; + const frame = new WebsocketFrameSend(); + if (void 0 !== code && void 0 === reason) { + frame.frameData = Buffer.allocUnsafe(2); + frame.frameData.writeUInt16BE(code, 0); + } else if (void 0 !== code && void 0 !== reason) { + frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength); + frame.frameData.writeUInt16BE(code, 0); + frame.frameData.write(reason, 2, 'utf-8'); + } else frame.frameData = emptyBuffer; + const socket = ws[kResponse].socket; + socket.write(frame.createFrame(opcodes.CLOSE)); + ws[kSentClose] = sentCloseFrameState.SENT; + ws[kReadyState] = states.CLOSING; + } else ws[kReadyState] = states.CLOSING; + else { + failWebsocketConnection(ws, 'Connection was closed before it was established.'); + ws[kReadyState] = states.CLOSING; + } + } + function onSocketData(chunk) { + if (!this.ws[kByteParser].write(chunk)) this.pause(); + } + function onSocketClose() { + const { ws } = this; + const { [kResponse]: response } = ws; + response.socket.off('data', onSocketData); + response.socket.off('close', onSocketClose); + response.socket.off('error', onSocketError); + const wasClean = ws[kSentClose] === sentCloseFrameState.SENT && ws[kReceivedClose]; + let code = 1005; + let reason = ''; + const result = ws[kByteParser].closingInfo; + if (result && !result.error) { + code = result.code ?? 1005; + reason = result.reason; + } else if (!ws[kReceivedClose]) code = 1006; + ws[kReadyState] = states.CLOSED; + fireEvent('close', ws, (type, init)=>new CloseEvent(type, init), { + wasClean, + code, + reason + }); + if (channels.close.hasSubscribers) channels.close.publish({ + websocket: ws, + code, + reason + }); + } + function onSocketError(error) { + const { ws } = this; + ws[kReadyState] = states.CLOSING; + if (channels.socketError.hasSubscribers) channels.socketError.publish(error); + this.destroy(); + } + module.exports = { + establishWebSocketConnection, + closeWebSocketConnection }; }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/filereader.js" (module, __unused_rspack_exports, __webpack_require__) { + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js" (module) { + "use strict"; + const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'; + const staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false + }; + const states = { + CONNECTING: 0, + OPEN: 1, + CLOSING: 2, + CLOSED: 3 + }; + const sentCloseFrameState = { + NOT_SENT: 0, + PROCESSING: 1, + SENT: 2 + }; + const opcodes = { + CONTINUATION: 0x0, + TEXT: 0x1, + BINARY: 0x2, + CLOSE: 0x8, + PING: 0x9, + PONG: 0xA + }; + const maxUnsigned16Bit = 2 ** 16 - 1; + const parserStates = { + INFO: 0, + PAYLOADLENGTH_16: 2, + PAYLOADLENGTH_64: 3, + READ_DATA: 4 + }; + const emptyBuffer = Buffer.allocUnsafe(0); + const sendHints = { + string: 1, + typedArray: 2, + arrayBuffer: 3, + blob: 4 + }; + module.exports = { + uid, + sentCloseFrameState, + staticPropertyDescriptors, + states, + opcodes, + maxUnsigned16Bit, + parserStates, + emptyBuffer, + sendHints + }; + }, + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/events.js" (module, __unused_rspack_exports, __webpack_require__) { "use strict"; - const { staticPropertyDescriptors, readOperation, fireAProgressEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/util.js"); - const { kState, kError, kResult, kEvents, kAborted } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/symbols.js"); const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/webidl.js"); const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/util.js"); - class FileReader extends EventTarget { - constructor(){ - super(); - this[kState] = 'empty'; - this[kResult] = null; - this[kError] = null; - this[kEvents] = { - loadend: null, - error: null, - abort: null, - load: null, - progress: null, - loadstart: null - }; + const { kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/symbols.js"); + const { MessagePort } = __webpack_require__("node:worker_threads"); + class MessageEvent extends Event { + #eventInit; + constructor(type, eventInitDict = {}){ + if (type === kConstruct) { + super(arguments[1], arguments[2]); + webidl.util.markAsUncloneable(this); + return; + } + const prefix = 'MessageEvent constructor'; + webidl.argumentLengthCheck(arguments, 1, prefix); + type = webidl.converters.DOMString(type, prefix, 'type'); + eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix, 'eventInitDict'); + super(type, eventInitDict); + this.#eventInit = eventInitDict; + webidl.util.markAsUncloneable(this); + } + get data() { + webidl.brandCheck(this, MessageEvent); + return this.#eventInit.data; + } + get origin() { + webidl.brandCheck(this, MessageEvent); + return this.#eventInit.origin; + } + get lastEventId() { + webidl.brandCheck(this, MessageEvent); + return this.#eventInit.lastEventId; } - readAsArrayBuffer(blob) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsArrayBuffer'); - blob = webidl.converters.Blob(blob, { - strict: false - }); - readOperation(this, blob, 'ArrayBuffer'); + get source() { + webidl.brandCheck(this, MessageEvent); + return this.#eventInit.source; } - readAsBinaryString(blob) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsBinaryString'); - blob = webidl.converters.Blob(blob, { - strict: false - }); - readOperation(this, blob, 'BinaryString'); + get ports() { + webidl.brandCheck(this, MessageEvent); + if (!Object.isFrozen(this.#eventInit.ports)) Object.freeze(this.#eventInit.ports); + return this.#eventInit.ports; } - readAsText(blob, encoding) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsText'); - blob = webidl.converters.Blob(blob, { - strict: false + initMessageEvent(type, bubbles = false, cancelable = false, data = null, origin = '', lastEventId = '', source = null, ports = []) { + webidl.brandCheck(this, MessageEvent); + webidl.argumentLengthCheck(arguments, 1, 'MessageEvent.initMessageEvent'); + return new MessageEvent(type, { + bubbles, + cancelable, + data, + origin, + lastEventId, + source, + ports }); - if (void 0 !== encoding) encoding = webidl.converters.DOMString(encoding, 'FileReader.readAsText', 'encoding'); - readOperation(this, blob, 'Text', encoding); } - readAsDataURL(blob) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsDataURL'); - blob = webidl.converters.Blob(blob, { - strict: false - }); - readOperation(this, blob, 'DataURL'); + static createFastMessageEvent(type, init) { + const messageEvent = new MessageEvent(kConstruct, type, init); + messageEvent.#eventInit = init; + messageEvent.#eventInit.data ??= null; + messageEvent.#eventInit.origin ??= ''; + messageEvent.#eventInit.lastEventId ??= ''; + messageEvent.#eventInit.source ??= null; + messageEvent.#eventInit.ports ??= []; + return messageEvent; } - abort() { - if ('empty' === this[kState] || 'done' === this[kState]) { - this[kResult] = null; - return; - } - if ('loading' === this[kState]) { - this[kState] = 'done'; - this[kResult] = null; - } - this[kAborted] = true; - fireAProgressEvent('abort', this); - if ('loading' !== this[kState]) fireAProgressEvent('loadend', this); + } + const { createFastMessageEvent } = MessageEvent; + delete MessageEvent.createFastMessageEvent; + class CloseEvent extends Event { + #eventInit; + constructor(type, eventInitDict = {}){ + const prefix = 'CloseEvent constructor'; + webidl.argumentLengthCheck(arguments, 1, prefix); + type = webidl.converters.DOMString(type, prefix, 'type'); + eventInitDict = webidl.converters.CloseEventInit(eventInitDict); + super(type, eventInitDict); + this.#eventInit = eventInitDict; + webidl.util.markAsUncloneable(this); } - get readyState() { - webidl.brandCheck(this, FileReader); - switch(this[kState]){ - case 'empty': - return this.EMPTY; - case 'loading': - return this.LOADING; - case 'done': - return this.DONE; - } + get wasClean() { + webidl.brandCheck(this, CloseEvent); + return this.#eventInit.wasClean; } - get result() { - webidl.brandCheck(this, FileReader); - return this[kResult]; + get code() { + webidl.brandCheck(this, CloseEvent); + return this.#eventInit.code; } - get error() { - webidl.brandCheck(this, FileReader); - return this[kError]; + get reason() { + webidl.brandCheck(this, CloseEvent); + return this.#eventInit.reason; } - get onloadend() { - webidl.brandCheck(this, FileReader); - return this[kEvents].loadend; + } + class ErrorEvent extends Event { + #eventInit; + constructor(type, eventInitDict){ + const prefix = 'ErrorEvent constructor'; + webidl.argumentLengthCheck(arguments, 1, prefix); + super(type, eventInitDict); + webidl.util.markAsUncloneable(this); + type = webidl.converters.DOMString(type, prefix, 'type'); + eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}); + this.#eventInit = eventInitDict; } - set onloadend(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].loadend) this.removeEventListener('loadend', this[kEvents].loadend); - if ('function' == typeof fn) { - this[kEvents].loadend = fn; - this.addEventListener('loadend', fn); - } else this[kEvents].loadend = null; + get message() { + webidl.brandCheck(this, ErrorEvent); + return this.#eventInit.message; } - get onerror() { - webidl.brandCheck(this, FileReader); - return this[kEvents].error; + get filename() { + webidl.brandCheck(this, ErrorEvent); + return this.#eventInit.filename; } - set onerror(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].error) this.removeEventListener('error', this[kEvents].error); - if ('function' == typeof fn) { - this[kEvents].error = fn; - this.addEventListener('error', fn); - } else this[kEvents].error = null; + get lineno() { + webidl.brandCheck(this, ErrorEvent); + return this.#eventInit.lineno; } - get onloadstart() { - webidl.brandCheck(this, FileReader); - return this[kEvents].loadstart; + get colno() { + webidl.brandCheck(this, ErrorEvent); + return this.#eventInit.colno; } - set onloadstart(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].loadstart) this.removeEventListener('loadstart', this[kEvents].loadstart); - if ('function' == typeof fn) { - this[kEvents].loadstart = fn; - this.addEventListener('loadstart', fn); - } else this[kEvents].loadstart = null; + get error() { + webidl.brandCheck(this, ErrorEvent); + return this.#eventInit.error; } - get onprogress() { - webidl.brandCheck(this, FileReader); - return this[kEvents].progress; + } + Object.defineProperties(MessageEvent.prototype, { + [Symbol.toStringTag]: { + value: 'MessageEvent', + configurable: true + }, + data: kEnumerableProperty, + origin: kEnumerableProperty, + lastEventId: kEnumerableProperty, + source: kEnumerableProperty, + ports: kEnumerableProperty, + initMessageEvent: kEnumerableProperty + }); + Object.defineProperties(CloseEvent.prototype, { + [Symbol.toStringTag]: { + value: 'CloseEvent', + configurable: true + }, + reason: kEnumerableProperty, + code: kEnumerableProperty, + wasClean: kEnumerableProperty + }); + Object.defineProperties(ErrorEvent.prototype, { + [Symbol.toStringTag]: { + value: 'ErrorEvent', + configurable: true + }, + message: kEnumerableProperty, + filename: kEnumerableProperty, + lineno: kEnumerableProperty, + colno: kEnumerableProperty, + error: kEnumerableProperty + }); + webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort); + webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.MessagePort); + const eventInit = [ + { + key: 'bubbles', + converter: webidl.converters.boolean, + defaultValue: ()=>false + }, + { + key: 'cancelable', + converter: webidl.converters.boolean, + defaultValue: ()=>false + }, + { + key: 'composed', + converter: webidl.converters.boolean, + defaultValue: ()=>false } - set onprogress(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].progress) this.removeEventListener('progress', this[kEvents].progress); - if ('function' == typeof fn) { - this[kEvents].progress = fn; - this.addEventListener('progress', fn); - } else this[kEvents].progress = null; + ]; + webidl.converters.MessageEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'data', + converter: webidl.converters.any, + defaultValue: ()=>null + }, + { + key: 'origin', + converter: webidl.converters.USVString, + defaultValue: ()=>'' + }, + { + key: 'lastEventId', + converter: webidl.converters.DOMString, + defaultValue: ()=>'' + }, + { + key: 'source', + converter: webidl.nullableConverter(webidl.converters.MessagePort), + defaultValue: ()=>null + }, + { + key: 'ports', + converter: webidl.converters['sequence'], + defaultValue: ()=>new Array(0) + } + ]); + webidl.converters.CloseEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'wasClean', + converter: webidl.converters.boolean, + defaultValue: ()=>false + }, + { + key: 'code', + converter: webidl.converters['unsigned short'], + defaultValue: ()=>0 + }, + { + key: 'reason', + converter: webidl.converters.USVString, + defaultValue: ()=>'' } - get onload() { - webidl.brandCheck(this, FileReader); - return this[kEvents].load; + ]); + webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'message', + converter: webidl.converters.DOMString, + defaultValue: ()=>'' + }, + { + key: 'filename', + converter: webidl.converters.USVString, + defaultValue: ()=>'' + }, + { + key: 'lineno', + converter: webidl.converters['unsigned long'], + defaultValue: ()=>0 + }, + { + key: 'colno', + converter: webidl.converters['unsigned long'], + defaultValue: ()=>0 + }, + { + key: 'error', + converter: webidl.converters.any } - set onload(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].load) this.removeEventListener('load', this[kEvents].load); - if ('function' == typeof fn) { - this[kEvents].load = fn; - this.addEventListener('load', fn); - } else this[kEvents].load = null; + ]); + module.exports = { + MessageEvent, + CloseEvent, + ErrorEvent, + createFastMessageEvent + }; + }, + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/frame.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const { maxUnsigned16Bit } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); + const BUFFER_SIZE = 16386; + let crypto; + let buffer = null; + let bufIdx = BUFFER_SIZE; + try { + crypto = __webpack_require__("node:crypto"); + } catch { + crypto = { + randomFillSync: function(buffer, _offset, _size) { + for(let i = 0; i < buffer.length; ++i)buffer[i] = 255 * Math.random() | 0; + return buffer; + } + }; + } + function generateMask() { + if (bufIdx === BUFFER_SIZE) { + bufIdx = 0; + crypto.randomFillSync(buffer ??= Buffer.allocUnsafe(BUFFER_SIZE), 0, BUFFER_SIZE); } - get onabort() { - webidl.brandCheck(this, FileReader); - return this[kEvents].abort; + return [ + buffer[bufIdx++], + buffer[bufIdx++], + buffer[bufIdx++], + buffer[bufIdx++] + ]; + } + class WebsocketFrameSend { + constructor(data){ + this.frameData = data; } - set onabort(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].abort) this.removeEventListener('abort', this[kEvents].abort); - if ('function' == typeof fn) { - this[kEvents].abort = fn; - this.addEventListener('abort', fn); - } else this[kEvents].abort = null; + createFrame(opcode) { + const frameData = this.frameData; + const maskKey = generateMask(); + const bodyLength = frameData?.byteLength ?? 0; + let payloadLength = bodyLength; + let offset = 6; + if (bodyLength > maxUnsigned16Bit) { + offset += 8; + payloadLength = 127; + } else if (bodyLength > 125) { + offset += 2; + payloadLength = 126; + } + const buffer = Buffer.allocUnsafe(bodyLength + offset); + buffer[0] = buffer[1] = 0; + buffer[0] |= 0x80; + buffer[0] = (0xF0 & buffer[0]) + opcode; + /*! ws. MIT License. Einar Otto Stangvik */ buffer[offset - 4] = maskKey[0]; + buffer[offset - 3] = maskKey[1]; + buffer[offset - 2] = maskKey[2]; + buffer[offset - 1] = maskKey[3]; + buffer[1] = payloadLength; + if (126 === payloadLength) buffer.writeUInt16BE(bodyLength, 2); + else if (127 === payloadLength) { + buffer[2] = buffer[3] = 0; + buffer.writeUIntBE(bodyLength, 4, 6); + } + buffer[1] |= 0x80; + for(let i = 0; i < bodyLength; ++i)buffer[offset + i] = frameData[i] ^ maskKey[3 & i]; + return buffer; } } - FileReader.EMPTY = FileReader.prototype.EMPTY = 0; - FileReader.LOADING = FileReader.prototype.LOADING = 1; - FileReader.DONE = FileReader.prototype.DONE = 2; - Object.defineProperties(FileReader.prototype, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors, - readAsArrayBuffer: kEnumerableProperty, - readAsBinaryString: kEnumerableProperty, - readAsText: kEnumerableProperty, - readAsDataURL: kEnumerableProperty, - abort: kEnumerableProperty, - readyState: kEnumerableProperty, - result: kEnumerableProperty, - error: kEnumerableProperty, - onloadstart: kEnumerableProperty, - onprogress: kEnumerableProperty, - onload: kEnumerableProperty, - onabort: kEnumerableProperty, - onerror: kEnumerableProperty, - onloadend: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'FileReader', - writable: false, - enumerable: false, - configurable: true - } - }); - Object.defineProperties(FileReader, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors - }); module.exports = { - FileReader + WebsocketFrameSend }; }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/progressevent.js" (module, __unused_rspack_exports, __webpack_require__) { + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/permessage-deflate.js" (module, __unused_rspack_exports, __webpack_require__) { "use strict"; - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/webidl.js"); - const kState = Symbol('ProgressEvent state'); - class ProgressEvent extends Event { - constructor(type, eventInitDict = {}){ - type = webidl.converters.DOMString(type, 'ProgressEvent constructor', 'type'); - eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}); - super(type, eventInitDict); - this[kState] = { - lengthComputable: eventInitDict.lengthComputable, - loaded: eventInitDict.loaded, - total: eventInitDict.total - }; - } - get lengthComputable() { - webidl.brandCheck(this, ProgressEvent); - return this[kState].lengthComputable; - } - get loaded() { - webidl.brandCheck(this, ProgressEvent); - return this[kState].loaded; + const { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __webpack_require__("node:zlib"); + const { isValidClientWindowBits } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/util.js"); + const { MessageSizeExceededError } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/errors.js"); + const tail = Buffer.from([ + 0x00, + 0x00, + 0xff, + 0xff + ]); + const kBuffer = Symbol('kBuffer'); + const kLength = Symbol('kLength'); + const kDefaultMaxDecompressedSize = 4194304; + class PerMessageDeflate { + #inflate; + #options = {}; + #aborted = false; + #currentCallback = null; + constructor(extensions){ + this.#options.serverNoContextTakeover = extensions.has('server_no_context_takeover'); + this.#options.serverMaxWindowBits = extensions.get('server_max_window_bits'); } - get total() { - webidl.brandCheck(this, ProgressEvent); - return this[kState].total; + decompress(chunk, fin, callback) { + if (this.#aborted) return void callback(new MessageSizeExceededError()); + if (!this.#inflate) { + let windowBits = Z_DEFAULT_WINDOWBITS; + if (this.#options.serverMaxWindowBits) { + if (!isValidClientWindowBits(this.#options.serverMaxWindowBits)) return void callback(new Error('Invalid server_max_window_bits')); + windowBits = Number.parseInt(this.#options.serverMaxWindowBits); + } + try { + this.#inflate = createInflateRaw({ + windowBits + }); + } catch (err) { + callback(err); + return; + } + this.#inflate[kBuffer] = []; + this.#inflate[kLength] = 0; + this.#inflate.on('data', (data)=>{ + if (this.#aborted) return; + this.#inflate[kLength] += data.length; + if (this.#inflate[kLength] > kDefaultMaxDecompressedSize) { + this.#aborted = true; + this.#inflate.removeAllListeners(); + this.#inflate.destroy(); + this.#inflate = null; + if (this.#currentCallback) { + const cb = this.#currentCallback; + this.#currentCallback = null; + cb(new MessageSizeExceededError()); + } + return; + } + this.#inflate[kBuffer].push(data); + }); + this.#inflate.on('error', (err)=>{ + this.#inflate = null; + callback(err); + }); + } + this.#currentCallback = callback; + this.#inflate.write(chunk); + if (fin) this.#inflate.write(tail); + this.#inflate.flush(()=>{ + if (this.#aborted || !this.#inflate) return; + const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength]); + this.#inflate[kBuffer].length = 0; + this.#inflate[kLength] = 0; + this.#currentCallback = null; + callback(null, full); + }); } } - webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ - { - key: 'lengthComputable', - converter: webidl.converters.boolean, - defaultValue: ()=>false - }, - { - key: 'loaded', - converter: webidl.converters['unsigned long long'], - defaultValue: ()=>0 - }, - { - key: 'total', - converter: webidl.converters['unsigned long long'], - defaultValue: ()=>0 - }, - { - key: 'bubbles', - converter: webidl.converters.boolean, - defaultValue: ()=>false - }, - { - key: 'cancelable', - converter: webidl.converters.boolean, - defaultValue: ()=>false - }, - { - key: 'composed', - converter: webidl.converters.boolean, - defaultValue: ()=>false - } - ]); - module.exports = { - ProgressEvent - }; - }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/symbols.js" (module) { - "use strict"; module.exports = { - kState: Symbol('FileReader state'), - kResult: Symbol('FileReader result'), - kError: Symbol('FileReader error'), - kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'), - kEvents: Symbol('FileReader events'), - kAborted: Symbol('FileReader aborted') + PerMessageDeflate }; }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/util.js" (module, __unused_rspack_exports, __webpack_require__) { + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/receiver.js" (module, __unused_rspack_exports, __webpack_require__) { "use strict"; - const { kState, kError, kResult, kAborted, kLastProgressEventFired } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/symbols.js"); - const { ProgressEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/progressevent.js"); - const { getEncoding } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fileapi/encoding.js"); - const { serializeAMimeType, parseMIMEType } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/data-url.js"); - const { types } = __webpack_require__("node:util"); - const { StringDecoder } = __webpack_require__("string_decoder"); - const { btoa } = __webpack_require__("node:buffer"); - const staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false - }; - function readOperation(fr, blob, type, encodingName) { - if ('loading' === fr[kState]) throw new DOMException('Invalid state', 'InvalidStateError'); - fr[kState] = 'loading'; - fr[kResult] = null; - fr[kError] = null; - const stream = blob.stream(); - const reader = stream.getReader(); - const bytes = []; - let chunkPromise = reader.read(); - let isFirstChunk = true; - (async ()=>{ - while(!fr[kAborted])try { - const { done, value } = await chunkPromise; - if (isFirstChunk && !fr[kAborted]) queueMicrotask(()=>{ - fireAProgressEvent('loadstart', fr); - }); - isFirstChunk = false; - if (!done && types.isUint8Array(value)) { - bytes.push(value); - if ((void 0 === fr[kLastProgressEventFired] || Date.now() - fr[kLastProgressEventFired] >= 50) && !fr[kAborted]) { - fr[kLastProgressEventFired] = Date.now(); - queueMicrotask(()=>{ - fireAProgressEvent('progress', fr); - }); - } - chunkPromise = reader.read(); - } else if (done) { - queueMicrotask(()=>{ - fr[kState] = 'done'; - try { - const result = packageData(bytes, type, blob.type, encodingName); - if (fr[kAborted]) return; - fr[kResult] = result; - fireAProgressEvent('load', fr); - } catch (error) { - fr[kError] = error; - fireAProgressEvent('error', fr); + const { Writable } = __webpack_require__("node:stream"); + const assert = __webpack_require__("node:assert"); + const { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); + const { kReadyState, kSentClose, kResponse, kReceivedClose } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/symbols.js"); + const { channels } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/diagnostics.js"); + const { isValidStatusCode, isValidOpcode, failWebsocketConnection, websocketMessageReceived, utf8Decode, isControlFrame, isTextBinaryFrame, isContinuationFrame } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/util.js"); + const { WebsocketFrameSend } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/frame.js"); + const { closeWebSocketConnection } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/connection.js"); + const { PerMessageDeflate } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/permessage-deflate.js"); + class ByteParser extends Writable { + #buffers = []; + #byteOffset = 0; + #loop = false; + #state = parserStates.INFO; + #info = {}; + #fragments = []; + #extensions; + constructor(ws, extensions){ + super(); + this.ws = ws; + this.#extensions = null == extensions ? new Map() : extensions; + if (this.#extensions.has('permessage-deflate')) this.#extensions.set('permessage-deflate', new PerMessageDeflate(extensions)); + } + _write(chunk, _, callback) { + this.#buffers.push(chunk); + this.#byteOffset += chunk.length; + this.#loop = true; + this.run(callback); + } + run(callback) { + while(this.#loop)if (this.#state === parserStates.INFO) { + if (this.#byteOffset < 2) return callback(); + const buffer = this.consume(2); + const fin = (0x80 & buffer[0]) !== 0; + const opcode = 0x0F & buffer[0]; + const masked = (0x80 & buffer[1]) === 0x80; + const fragmented = !fin && opcode !== opcodes.CONTINUATION; + const payloadLength = 0x7F & buffer[1]; + const rsv1 = 0x40 & buffer[0]; + const rsv2 = 0x20 & buffer[0]; + const rsv3 = 0x10 & buffer[0]; + if (!isValidOpcode(opcode)) { + failWebsocketConnection(this.ws, 'Invalid opcode received'); + return callback(); + } + if (masked) { + failWebsocketConnection(this.ws, 'Frame cannot be masked'); + return callback(); + } + if (0 !== rsv1 && !this.#extensions.has('permessage-deflate')) return void failWebsocketConnection(this.ws, 'Expected RSV1 to be clear.'); + if (0 !== rsv2 || 0 !== rsv3) return void failWebsocketConnection(this.ws, 'RSV1, RSV2, RSV3 must be clear'); + if (fragmented && !isTextBinaryFrame(opcode)) return void failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.'); + if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) return void failWebsocketConnection(this.ws, 'Expected continuation frame'); + if (this.#info.fragmented && fragmented) return void failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.'); + if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) return void failWebsocketConnection(this.ws, 'Control frame either too large or fragmented'); + if (isContinuationFrame(opcode) && 0 === this.#fragments.length && !this.#info.compressed) return void failWebsocketConnection(this.ws, 'Unexpected continuation frame'); + if (payloadLength <= 125) { + this.#info.payloadLength = payloadLength; + this.#state = parserStates.READ_DATA; + } else if (126 === payloadLength) this.#state = parserStates.PAYLOADLENGTH_16; + else if (127 === payloadLength) this.#state = parserStates.PAYLOADLENGTH_64; + if (isTextBinaryFrame(opcode)) { + this.#info.binaryType = opcode; + this.#info.compressed = 0 !== rsv1; + } + this.#info.opcode = opcode; + this.#info.masked = masked; + this.#info.fin = fin; + this.#info.fragmented = fragmented; + } else if (this.#state === parserStates.PAYLOADLENGTH_16) { + if (this.#byteOffset < 2) return callback(); + const buffer = this.consume(2); + this.#info.payloadLength = buffer.readUInt16BE(0); + this.#state = parserStates.READ_DATA; + } else if (this.#state === parserStates.PAYLOADLENGTH_64) { + if (this.#byteOffset < 8) return callback(); + const buffer = this.consume(8); + const upper = buffer.readUInt32BE(0); + const lower = buffer.readUInt32BE(4); + if (0 !== upper || lower > 2 ** 31 - 1) return void failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.'); + this.#info.payloadLength = lower; + this.#state = parserStates.READ_DATA; + } else if (this.#state === parserStates.READ_DATA) { + if (this.#byteOffset < this.#info.payloadLength) return callback(); + const body = this.consume(this.#info.payloadLength); + if (isControlFrame(this.#info.opcode)) { + this.#loop = this.parseControlFrame(body); + this.#state = parserStates.INFO; + } else if (this.#info.compressed) { + this.#extensions.get('permessage-deflate').decompress(body, this.#info.fin, (error, data)=>{ + if (error) return void failWebsocketConnection(this.ws, error.message); + this.#fragments.push(data); + if (!this.#info.fin) { + this.#state = parserStates.INFO; + this.#loop = true; + this.run(callback); + return; } - if ('loading' !== fr[kState]) fireAProgressEvent('loadend', fr); + websocketMessageReceived(this.ws, this.#info.binaryType, Buffer.concat(this.#fragments)); + this.#loop = true; + this.#state = parserStates.INFO; + this.#fragments.length = 0; + this.run(callback); }); + this.#loop = false; break; + } else { + this.#fragments.push(body); + if (!this.#info.fragmented && this.#info.fin) { + const fullMessage = Buffer.concat(this.#fragments); + websocketMessageReceived(this.ws, this.#info.binaryType, fullMessage); + this.#fragments.length = 0; + } + this.#state = parserStates.INFO; } - } catch (error) { - if (fr[kAborted]) return; - queueMicrotask(()=>{ - fr[kState] = 'done'; - fr[kError] = error; - fireAProgressEvent('error', fr); - if ('loading' !== fr[kState]) fireAProgressEvent('loadend', fr); - }); - break; } - })(); - } - function fireAProgressEvent(e, reader) { - const event = new ProgressEvent(e, { - bubbles: false, - cancelable: false - }); - reader.dispatchEvent(event); - } - function packageData(bytes, type, mimeType, encodingName) { - switch(type){ - case 'DataURL': - { - let dataURL = 'data:'; - const parsed = parseMIMEType(mimeType || 'application/octet-stream'); - if ('failure' !== parsed) dataURL += serializeAMimeType(parsed); - dataURL += ';base64,'; - const decoder = new StringDecoder('latin1'); - for (const chunk of bytes)dataURL += btoa(decoder.write(chunk)); - dataURL += btoa(decoder.end()); - return dataURL; + } + consume(n) { + if (n > this.#byteOffset) throw new Error('Called consume() before buffers satiated.'); + if (0 === n) return emptyBuffer; + if (this.#buffers[0].length === n) { + this.#byteOffset -= this.#buffers[0].length; + return this.#buffers.shift(); + } + const buffer = Buffer.allocUnsafe(n); + let offset = 0; + while(offset !== n){ + const next = this.#buffers[0]; + const { length } = next; + if (length + offset === n) { + buffer.set(this.#buffers.shift(), offset); + break; + } + if (length + offset > n) { + buffer.set(next.subarray(0, n - offset), offset); + this.#buffers[0] = next.subarray(n - offset); + break; + } + buffer.set(this.#buffers.shift(), offset); + offset += next.length; + } + this.#byteOffset -= n; + return buffer; + } + parseCloseBody(data) { + assert(1 !== data.length); + let code; + if (data.length >= 2) code = data.readUInt16BE(0); + if (void 0 !== code && !isValidStatusCode(code)) return { + code: 1002, + reason: 'Invalid status code', + error: true + }; + let reason = data.subarray(2); + if (0xEF === reason[0] && 0xBB === reason[1] && 0xBF === reason[2]) reason = reason.subarray(3); + try { + reason = utf8Decode(reason); + } catch { + return { + code: 1007, + reason: 'Invalid UTF-8', + error: true + }; + } + return { + code, + reason, + error: false + }; + } + parseControlFrame(body) { + const { opcode, payloadLength } = this.#info; + if (opcode === opcodes.CLOSE) { + if (1 === payloadLength) { + failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.'); + return false; } - case 'Text': - { - let encoding = 'failure'; - if (encodingName) encoding = getEncoding(encodingName); - if ('failure' === encoding && mimeType) { - const type = parseMIMEType(mimeType); - if ('failure' !== type) encoding = getEncoding(type.parameters.get('charset')); - } - if ('failure' === encoding) encoding = 'UTF-8'; - return decode(bytes, encoding); + this.#info.closeInfo = this.parseCloseBody(body); + if (this.#info.closeInfo.error) { + const { code, reason } = this.#info.closeInfo; + closeWebSocketConnection(this.ws, code, reason, reason.length); + failWebsocketConnection(this.ws, reason); + return false; } - case 'ArrayBuffer': - { - const sequence = combineByteSequences(bytes); - return sequence.buffer; + if (this.ws[kSentClose] !== sentCloseFrameState.SENT) { + let body = emptyBuffer; + if (this.#info.closeInfo.code) { + body = Buffer.allocUnsafe(2); + body.writeUInt16BE(this.#info.closeInfo.code, 0); + } + const closeFrame = new WebsocketFrameSend(body); + this.ws[kResponse].socket.write(closeFrame.createFrame(opcodes.CLOSE), (err)=>{ + if (!err) this.ws[kSentClose] = sentCloseFrameState.SENT; + }); } - case 'BinaryString': - { - let binaryString = ''; - const decoder = new StringDecoder('latin1'); - for (const chunk of bytes)binaryString += decoder.write(chunk); - binaryString += decoder.end(); - return binaryString; + this.ws[kReadyState] = states.CLOSING; + this.ws[kReceivedClose] = true; + return false; + } + if (opcode === opcodes.PING) { + if (!this.ws[kReceivedClose]) { + const frame = new WebsocketFrameSend(body); + this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)); + if (channels.ping.hasSubscribers) channels.ping.publish({ + payload: body + }); } + } else if (opcode === opcodes.PONG) { + if (channels.pong.hasSubscribers) channels.pong.publish({ + payload: body + }); + } + return true; } - } - function decode(ioQueue, encoding) { - const bytes = combineByteSequences(ioQueue); - const BOMEncoding = BOMSniffing(bytes); - let slice = 0; - if (null !== BOMEncoding) { - encoding = BOMEncoding; - slice = 'UTF-8' === BOMEncoding ? 3 : 2; + get closingInfo() { + return this.#info.closeInfo; } - const sliced = bytes.slice(slice); - return new TextDecoder(encoding).decode(sliced); - } - function BOMSniffing(ioQueue) { - const [a, b, c] = ioQueue; - if (0xEF === a && 0xBB === b && 0xBF === c) return 'UTF-8'; - if (0xFE === a && 0xFF === b) return 'UTF-16BE'; - if (0xFF === a && 0xFE === b) return 'UTF-16LE'; - return null; - } - function combineByteSequences(sequences) { - const size = sequences.reduce((a, b)=>a + b.byteLength, 0); - let offset = 0; - return sequences.reduce((a, b)=>{ - a.set(b, offset); - offset += b.byteLength; - return a; - }, new Uint8Array(size)); } module.exports = { - staticPropertyDescriptors, - readOperation, - fireAProgressEvent + ByteParser }; }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/connection.js" (module, __unused_rspack_exports, __webpack_require__) { + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/sender.js" (module, __unused_rspack_exports, __webpack_require__) { "use strict"; - const { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); - const { kReadyState, kSentClose, kByteParser, kReceivedClose, kResponse } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/symbols.js"); - const { fireEvent, failWebsocketConnection, isClosing, isClosed, isEstablished, parseExtensions } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/util.js"); - const { channels } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/diagnostics.js"); - const { CloseEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/events.js"); - const { makeRequest } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/request.js"); - const { fetching } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/index.js"); - const { Headers, getHeadersList } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/headers.js"); - const { getDecodeSplit } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/util.js"); const { WebsocketFrameSend } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/frame.js"); - let crypto; - try { - crypto = __webpack_require__("node:crypto"); - } catch {} - function establishWebSocketConnection(url, protocols, client, ws, onEstablish, options) { - const requestURL = url; - requestURL.protocol = 'ws:' === url.protocol ? 'http:' : 'https:'; - const request = makeRequest({ - urlList: [ - requestURL - ], - client, - serviceWorkers: 'none', - referrer: 'no-referrer', - mode: 'websocket', - credentials: 'include', - cache: 'no-store', - redirect: 'error' - }); - if (options.headers) { - const headersList = getHeadersList(new Headers(options.headers)); - request.headersList = headersList; + const { opcodes, sendHints } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); + const FixedQueue = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/fixed-queue.js"); + const FastBuffer = Buffer[Symbol.species]; + class SendQueue { + #queue = new FixedQueue(); + #running = false; + #socket; + constructor(socket){ + this.#socket = socket; } - const keyValue = crypto.randomBytes(16).toString('base64'); - request.headersList.append('sec-websocket-key', keyValue); - request.headersList.append('sec-websocket-version', '13'); - for (const protocol of protocols)request.headersList.append('sec-websocket-protocol', protocol); - const permessageDeflate = 'permessage-deflate; client_max_window_bits'; - request.headersList.append('sec-websocket-extensions', permessageDeflate); - const controller = fetching({ - request, - useParallelQueue: true, - dispatcher: options.dispatcher, - processResponse (response) { - if ('error' === response.type || 101 !== response.status) return void failWebsocketConnection(ws, 'Received network error or non-101 status code.'); - if (0 !== protocols.length && !response.headersList.get('Sec-WebSocket-Protocol')) return void failWebsocketConnection(ws, 'Server did not respond with sent protocols.'); - if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') return void failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".'); - if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') return void failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".'); - const secWSAccept = response.headersList.get('Sec-WebSocket-Accept'); - const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64'); - if (secWSAccept !== digest) return void failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.'); - const secExtension = response.headersList.get('Sec-WebSocket-Extensions'); - let extensions; - if (null !== secExtension) { - extensions = parseExtensions(secExtension); - if (!extensions.has('permessage-deflate')) return void failWebsocketConnection(ws, 'Sec-WebSocket-Extensions header does not match.'); - } - const secProtocol = response.headersList.get('Sec-WebSocket-Protocol'); - if (null !== secProtocol) { - const requestProtocols = getDecodeSplit('sec-websocket-protocol', request.headersList); - if (!requestProtocols.includes(secProtocol)) return void failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.'); - } - response.socket.on('data', onSocketData); - response.socket.on('close', onSocketClose); - response.socket.on('error', onSocketError); - if (channels.open.hasSubscribers) channels.open.publish({ - address: response.socket.address(), - protocol: secProtocol, - extensions: secExtension - }); - onEstablish(response, extensions); + add(item, cb, hint) { + if (hint !== sendHints.blob) { + const frame = createFrame(item, hint); + if (this.#running) { + const node = { + promise: null, + callback: cb, + frame + }; + this.#queue.push(node); + } else this.#socket.write(frame, cb); + return; } - }); - return controller; - } - function closeWebSocketConnection(ws, code, reason, reasonByteLength) { - if (isClosing(ws) || isClosed(ws)) ; - else if (isEstablished(ws)) if (ws[kSentClose] === sentCloseFrameState.NOT_SENT) { - ws[kSentClose] = sentCloseFrameState.PROCESSING; - const frame = new WebsocketFrameSend(); - if (void 0 !== code && void 0 === reason) { - frame.frameData = Buffer.allocUnsafe(2); - frame.frameData.writeUInt16BE(code, 0); - } else if (void 0 !== code && void 0 !== reason) { - frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength); - frame.frameData.writeUInt16BE(code, 0); - frame.frameData.write(reason, 2, 'utf-8'); - } else frame.frameData = emptyBuffer; - const socket = ws[kResponse].socket; - socket.write(frame.createFrame(opcodes.CLOSE)); - ws[kSentClose] = sentCloseFrameState.SENT; - ws[kReadyState] = states.CLOSING; - } else ws[kReadyState] = states.CLOSING; - else { - failWebsocketConnection(ws, 'Connection was closed before it was established.'); - ws[kReadyState] = states.CLOSING; + const node = { + promise: item.arrayBuffer().then((ab)=>{ + node.promise = null; + node.frame = createFrame(ab, hint); + }), + callback: cb, + frame: null + }; + this.#queue.push(node); + if (!this.#running) this.#run(); + } + async #run() { + this.#running = true; + const queue = this.#queue; + while(!queue.isEmpty()){ + const node = queue.shift(); + if (null !== node.promise) await node.promise; + this.#socket.write(node.frame, node.callback); + node.callback = node.frame = null; + } + this.#running = false; } } - function onSocketData(chunk) { - if (!this.ws[kByteParser].write(chunk)) this.pause(); - } - function onSocketClose() { - const { ws } = this; - const { [kResponse]: response } = ws; - response.socket.off('data', onSocketData); - response.socket.off('close', onSocketClose); - response.socket.off('error', onSocketError); - const wasClean = ws[kSentClose] === sentCloseFrameState.SENT && ws[kReceivedClose]; - let code = 1005; - let reason = ''; - const result = ws[kByteParser].closingInfo; - if (result && !result.error) { - code = result.code ?? 1005; - reason = result.reason; - } else if (!ws[kReceivedClose]) code = 1006; - ws[kReadyState] = states.CLOSED; - fireEvent('close', ws, (type, init)=>new CloseEvent(type, init), { - wasClean, - code, - reason - }); - if (channels.close.hasSubscribers) channels.close.publish({ - websocket: ws, - code, - reason - }); + function createFrame(data, hint) { + return new WebsocketFrameSend(toBuffer(data, hint)).createFrame(hint === sendHints.string ? opcodes.TEXT : opcodes.BINARY); } - function onSocketError(error) { - const { ws } = this; - ws[kReadyState] = states.CLOSING; - if (channels.socketError.hasSubscribers) channels.socketError.publish(error); - this.destroy(); + function toBuffer(data, hint) { + switch(hint){ + case sendHints.string: + return Buffer.from(data); + case sendHints.arrayBuffer: + case sendHints.blob: + return new FastBuffer(data); + case sendHints.typedArray: + return new FastBuffer(data.buffer, data.byteOffset, data.byteLength); + } } module.exports = { - establishWebSocketConnection, - closeWebSocketConnection + SendQueue }; }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js" (module) { + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/symbols.js" (module) { "use strict"; - const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'; - const staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false - }; - const states = { - CONNECTING: 0, - OPEN: 1, - CLOSING: 2, - CLOSED: 3 - }; - const sentCloseFrameState = { - NOT_SENT: 0, - PROCESSING: 1, - SENT: 2 - }; - const opcodes = { - CONTINUATION: 0x0, - TEXT: 0x1, - BINARY: 0x2, - CLOSE: 0x8, - PING: 0x9, - PONG: 0xA - }; - const maxUnsigned16Bit = 2 ** 16 - 1; - const parserStates = { - INFO: 0, - PAYLOADLENGTH_16: 2, - PAYLOADLENGTH_64: 3, - READ_DATA: 4 - }; - const emptyBuffer = Buffer.allocUnsafe(0); - const sendHints = { - string: 1, - typedArray: 2, - arrayBuffer: 3, - blob: 4 - }; module.exports = { - uid, - sentCloseFrameState, - staticPropertyDescriptors, - states, - opcodes, - maxUnsigned16Bit, - parserStates, - emptyBuffer, - sendHints + kWebSocketURL: Symbol('url'), + kReadyState: Symbol('ready state'), + kController: Symbol('controller'), + kResponse: Symbol('response'), + kBinaryType: Symbol('binary type'), + kSentClose: Symbol('sent close'), + kReceivedClose: Symbol('received close'), + kByteParser: Symbol('byte parser') }; }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/events.js" (module, __unused_rspack_exports, __webpack_require__) { + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/util.js" (module, __unused_rspack_exports, __webpack_require__) { "use strict"; - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/webidl.js"); - const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/util.js"); - const { kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/symbols.js"); - const { MessagePort } = __webpack_require__("node:worker_threads"); - class MessageEvent extends Event { - #eventInit; - constructor(type, eventInitDict = {}){ - if (type === kConstruct) { - super(arguments[1], arguments[2]); - webidl.util.markAsUncloneable(this); - return; - } - const prefix = 'MessageEvent constructor'; - webidl.argumentLengthCheck(arguments, 1, prefix); - type = webidl.converters.DOMString(type, prefix, 'type'); - eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix, 'eventInitDict'); - super(type, eventInitDict); - this.#eventInit = eventInitDict; + const { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/symbols.js"); + const { states, opcodes } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); + const { ErrorEvent, createFastMessageEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/events.js"); + const { isUtf8 } = __webpack_require__("node:buffer"); + const { collectASequenceOfCodePointsFast, removeHTTPWhitespace } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/data-url.js"); + function isConnecting(ws) { + return ws[kReadyState] === states.CONNECTING; + } + function isEstablished(ws) { + return ws[kReadyState] === states.OPEN; + } + function isClosing(ws) { + return ws[kReadyState] === states.CLOSING; + } + function isClosed(ws) { + return ws[kReadyState] === states.CLOSED; + } + function fireEvent(e, target, eventFactory = (type, init)=>new Event(type, init), eventInitDict = {}) { + const event = eventFactory(e, eventInitDict); + target.dispatchEvent(event); + } + function websocketMessageReceived(ws, type, data) { + if (ws[kReadyState] !== states.OPEN) return; + let dataForEvent; + if (type === opcodes.TEXT) try { + dataForEvent = utf8Decode(data); + } catch { + failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.'); + return; + } + else if (type === opcodes.BINARY) dataForEvent = 'blob' === ws[kBinaryType] ? new Blob([ + data + ]) : toArrayBuffer(data); + fireEvent('message', ws, createFastMessageEvent, { + origin: ws[kWebSocketURL].origin, + data: dataForEvent + }); + } + function toArrayBuffer(buffer) { + if (buffer.byteLength === buffer.buffer.byteLength) return buffer.buffer; + return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength); + } + function isValidSubprotocol(protocol) { + if (0 === protocol.length) return false; + for(let i = 0; i < protocol.length; ++i){ + const code = protocol.charCodeAt(i); + if (code < 0x21 || code > 0x7E || 0x22 === code || 0x28 === code || 0x29 === code || 0x2C === code || 0x2F === code || 0x3A === code || 0x3B === code || 0x3C === code || 0x3D === code || 0x3E === code || 0x3F === code || 0x40 === code || 0x5B === code || 0x5C === code || 0x5D === code || 0x7B === code || 0x7D === code) return false; + } + return true; + } + function isValidStatusCode(code) { + if (code >= 1000 && code < 1015) return 1004 !== code && 1005 !== code && 1006 !== code; + return code >= 3000 && code <= 4999; + } + function failWebsocketConnection(ws, reason) { + const { [kController]: controller, [kResponse]: response } = ws; + controller.abort(); + if (response?.socket && !response.socket.destroyed) response.socket.destroy(); + if (reason) fireEvent('error', ws, (type, init)=>new ErrorEvent(type, init), { + error: new Error(reason), + message: reason + }); + } + function isControlFrame(opcode) { + return opcode === opcodes.CLOSE || opcode === opcodes.PING || opcode === opcodes.PONG; + } + function isContinuationFrame(opcode) { + return opcode === opcodes.CONTINUATION; + } + function isTextBinaryFrame(opcode) { + return opcode === opcodes.TEXT || opcode === opcodes.BINARY; + } + function isValidOpcode(opcode) { + return isTextBinaryFrame(opcode) || isContinuationFrame(opcode) || isControlFrame(opcode); + } + function parseExtensions(extensions) { + const position = { + position: 0 + }; + const extensionList = new Map(); + while(position.position < extensions.length){ + const pair = collectASequenceOfCodePointsFast(';', extensions, position); + const [name, value = ''] = pair.split('='); + extensionList.set(removeHTTPWhitespace(name, true, false), removeHTTPWhitespace(value, false, true)); + position.position++; + } + return extensionList; + } + function isValidClientWindowBits(value) { + if (0 === value.length) return false; + for(let i = 0; i < value.length; i++){ + const byte = value.charCodeAt(i); + if (byte < 0x30 || byte > 0x39) return false; + } + const num = Number.parseInt(value, 10); + return num >= 8 && num <= 15; + } + const hasIntl = 'string' == typeof process.versions.icu; + const fatalDecoder = hasIntl ? new TextDecoder('utf-8', { + fatal: true + }) : void 0; + const utf8Decode = hasIntl ? fatalDecoder.decode.bind(fatalDecoder) : function(buffer) { + if (isUtf8(buffer)) return buffer.toString('utf-8'); + throw new TypeError('Invalid utf-8 received.'); + }; + module.exports = { + isConnecting, + isEstablished, + isClosing, + isClosed, + fireEvent, + isValidSubprotocol, + isValidStatusCode, + failWebsocketConnection, + websocketMessageReceived, + utf8Decode, + isControlFrame, + isContinuationFrame, + isTextBinaryFrame, + isValidOpcode, + parseExtensions, + isValidClientWindowBits + }; + }, + "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/websocket.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/webidl.js"); + const { URLSerializer } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/data-url.js"); + const { environmentSettingsObject } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/util.js"); + const { staticPropertyDescriptors, states, sentCloseFrameState, sendHints } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); + const { kWebSocketURL, kReadyState, kController, kBinaryType, kResponse, kSentClose, kByteParser } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/symbols.js"); + const { isConnecting, isEstablished, isClosing, isValidSubprotocol, fireEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/util.js"); + const { establishWebSocketConnection, closeWebSocketConnection } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/connection.js"); + const { ByteParser } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/receiver.js"); + const { kEnumerableProperty, isBlobLike } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/util.js"); + const { getGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/global.js"); + const { types } = __webpack_require__("node:util"); + const { ErrorEvent, CloseEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/events.js"); + const { SendQueue } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/sender.js"); + class WebSocket extends EventTarget { + #events = { + open: null, + error: null, + close: null, + message: null + }; + #bufferedAmount = 0; + #protocol = ''; + #extensions = ''; + #sendQueue; + constructor(url, protocols = []){ + super(); webidl.util.markAsUncloneable(this); + const prefix = 'WebSocket constructor'; + webidl.argumentLengthCheck(arguments, 1, prefix); + const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols, prefix, 'options'); + url = webidl.converters.USVString(url, prefix, 'url'); + protocols = options.protocols; + const baseURL = environmentSettingsObject.settingsObject.baseUrl; + let urlRecord; + try { + urlRecord = new URL(url, baseURL); + } catch (e) { + throw new DOMException(e, 'SyntaxError'); + } + if ('http:' === urlRecord.protocol) urlRecord.protocol = 'ws:'; + else if ('https:' === urlRecord.protocol) urlRecord.protocol = 'wss:'; + if ('ws:' !== urlRecord.protocol && 'wss:' !== urlRecord.protocol) throw new DOMException(`Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, 'SyntaxError'); + if (urlRecord.hash || urlRecord.href.endsWith('#')) throw new DOMException('Got fragment', 'SyntaxError'); + if ('string' == typeof protocols) protocols = [ + protocols + ]; + if (protocols.length !== new Set(protocols.map((p)=>p.toLowerCase())).size) throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError'); + if (protocols.length > 0 && !protocols.every((p)=>isValidSubprotocol(p))) throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError'); + this[kWebSocketURL] = new URL(urlRecord.href); + const client = environmentSettingsObject.settingsObject; + this[kController] = establishWebSocketConnection(urlRecord, protocols, client, this, (response, extensions)=>this.#onConnectionEstablished(response, extensions), options); + this[kReadyState] = WebSocket.CONNECTING; + this[kSentClose] = sentCloseFrameState.NOT_SENT; + this[kBinaryType] = 'blob'; } - get data() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.data; + close(code, reason) { + webidl.brandCheck(this, WebSocket); + const prefix = 'WebSocket.close'; + if (void 0 !== code) code = webidl.converters['unsigned short'](code, prefix, 'code', { + clamp: true + }); + if (void 0 !== reason) reason = webidl.converters.USVString(reason, prefix, 'reason'); + if (void 0 !== code) { + if (1000 !== code && (code < 3000 || code > 4999)) throw new DOMException('invalid code', 'InvalidAccessError'); + } + let reasonByteLength = 0; + if (void 0 !== reason) { + reasonByteLength = Buffer.byteLength(reason); + if (reasonByteLength > 123) throw new DOMException(`Reason must be less than 123 bytes; received ${reasonByteLength}`, 'SyntaxError'); + } + closeWebSocketConnection(this, code, reason, reasonByteLength); } - get origin() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.origin; + send(data) { + webidl.brandCheck(this, WebSocket); + const prefix = 'WebSocket.send'; + webidl.argumentLengthCheck(arguments, 1, prefix); + data = webidl.converters.WebSocketSendData(data, prefix, 'data'); + if (isConnecting(this)) throw new DOMException('Sent before connected.', 'InvalidStateError'); + if (!isEstablished(this) || isClosing(this)) return; + if ('string' == typeof data) { + const length = Buffer.byteLength(data); + this.#bufferedAmount += length; + this.#sendQueue.add(data, ()=>{ + this.#bufferedAmount -= length; + }, sendHints.string); + } else if (types.isArrayBuffer(data)) { + this.#bufferedAmount += data.byteLength; + this.#sendQueue.add(data, ()=>{ + this.#bufferedAmount -= data.byteLength; + }, sendHints.arrayBuffer); + } else if (ArrayBuffer.isView(data)) { + this.#bufferedAmount += data.byteLength; + this.#sendQueue.add(data, ()=>{ + this.#bufferedAmount -= data.byteLength; + }, sendHints.typedArray); + } else if (isBlobLike(data)) { + this.#bufferedAmount += data.size; + this.#sendQueue.add(data, ()=>{ + this.#bufferedAmount -= data.size; + }, sendHints.blob); + } } - get lastEventId() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.lastEventId; + get readyState() { + webidl.brandCheck(this, WebSocket); + return this[kReadyState]; } - get source() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.source; + get bufferedAmount() { + webidl.brandCheck(this, WebSocket); + return this.#bufferedAmount; } - get ports() { - webidl.brandCheck(this, MessageEvent); - if (!Object.isFrozen(this.#eventInit.ports)) Object.freeze(this.#eventInit.ports); - return this.#eventInit.ports; + get url() { + webidl.brandCheck(this, WebSocket); + return URLSerializer(this[kWebSocketURL]); } - initMessageEvent(type, bubbles = false, cancelable = false, data = null, origin = '', lastEventId = '', source = null, ports = []) { - webidl.brandCheck(this, MessageEvent); - webidl.argumentLengthCheck(arguments, 1, 'MessageEvent.initMessageEvent'); - return new MessageEvent(type, { - bubbles, - cancelable, - data, - origin, - lastEventId, - source, - ports - }); + get extensions() { + webidl.brandCheck(this, WebSocket); + return this.#extensions; } - static createFastMessageEvent(type, init) { - const messageEvent = new MessageEvent(kConstruct, type, init); - messageEvent.#eventInit = init; - messageEvent.#eventInit.data ??= null; - messageEvent.#eventInit.origin ??= ''; - messageEvent.#eventInit.lastEventId ??= ''; - messageEvent.#eventInit.source ??= null; - messageEvent.#eventInit.ports ??= []; - return messageEvent; + get protocol() { + webidl.brandCheck(this, WebSocket); + return this.#protocol; } - } - const { createFastMessageEvent } = MessageEvent; - delete MessageEvent.createFastMessageEvent; - class CloseEvent extends Event { - #eventInit; - constructor(type, eventInitDict = {}){ - const prefix = 'CloseEvent constructor'; - webidl.argumentLengthCheck(arguments, 1, prefix); - type = webidl.converters.DOMString(type, prefix, 'type'); - eventInitDict = webidl.converters.CloseEventInit(eventInitDict); - super(type, eventInitDict); - this.#eventInit = eventInitDict; - webidl.util.markAsUncloneable(this); + get onopen() { + webidl.brandCheck(this, WebSocket); + return this.#events.open; } - get wasClean() { - webidl.brandCheck(this, CloseEvent); - return this.#eventInit.wasClean; + set onopen(fn) { + webidl.brandCheck(this, WebSocket); + if (this.#events.open) this.removeEventListener('open', this.#events.open); + if ('function' == typeof fn) { + this.#events.open = fn; + this.addEventListener('open', fn); + } else this.#events.open = null; } - get code() { - webidl.brandCheck(this, CloseEvent); - return this.#eventInit.code; + get onerror() { + webidl.brandCheck(this, WebSocket); + return this.#events.error; } - get reason() { - webidl.brandCheck(this, CloseEvent); - return this.#eventInit.reason; + set onerror(fn) { + webidl.brandCheck(this, WebSocket); + if (this.#events.error) this.removeEventListener('error', this.#events.error); + if ('function' == typeof fn) { + this.#events.error = fn; + this.addEventListener('error', fn); + } else this.#events.error = null; } - } - class ErrorEvent extends Event { - #eventInit; - constructor(type, eventInitDict){ - const prefix = 'ErrorEvent constructor'; - webidl.argumentLengthCheck(arguments, 1, prefix); - super(type, eventInitDict); - webidl.util.markAsUncloneable(this); - type = webidl.converters.DOMString(type, prefix, 'type'); - eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}); - this.#eventInit = eventInitDict; + get onclose() { + webidl.brandCheck(this, WebSocket); + return this.#events.close; } - get message() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.message; + set onclose(fn) { + webidl.brandCheck(this, WebSocket); + if (this.#events.close) this.removeEventListener('close', this.#events.close); + if ('function' == typeof fn) { + this.#events.close = fn; + this.addEventListener('close', fn); + } else this.#events.close = null; } - get filename() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.filename; + get onmessage() { + webidl.brandCheck(this, WebSocket); + return this.#events.message; } - get lineno() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.lineno; + set onmessage(fn) { + webidl.brandCheck(this, WebSocket); + if (this.#events.message) this.removeEventListener('message', this.#events.message); + if ('function' == typeof fn) { + this.#events.message = fn; + this.addEventListener('message', fn); + } else this.#events.message = null; } - get colno() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.colno; + get binaryType() { + webidl.brandCheck(this, WebSocket); + return this[kBinaryType]; } - get error() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.error; + set binaryType(type) { + webidl.brandCheck(this, WebSocket); + if ('blob' !== type && 'arraybuffer' !== type) this[kBinaryType] = 'blob'; + else this[kBinaryType] = type; + } + #onConnectionEstablished(response, parsedExtensions) { + this[kResponse] = response; + const parser = new ByteParser(this, parsedExtensions); + parser.on('drain', onParserDrain); + parser.on('error', onParserError.bind(this)); + response.socket.ws = this; + this[kByteParser] = parser; + this.#sendQueue = new SendQueue(response.socket); + this[kReadyState] = states.OPEN; + const extensions = response.headersList.get('sec-websocket-extensions'); + if (null !== extensions) this.#extensions = extensions; + const protocol = response.headersList.get('sec-websocket-protocol'); + if (null !== protocol) this.#protocol = protocol; + fireEvent('open', this); } } - Object.defineProperties(MessageEvent.prototype, { - [Symbol.toStringTag]: { - value: 'MessageEvent', - configurable: true - }, - data: kEnumerableProperty, - origin: kEnumerableProperty, - lastEventId: kEnumerableProperty, - source: kEnumerableProperty, - ports: kEnumerableProperty, - initMessageEvent: kEnumerableProperty - }); - Object.defineProperties(CloseEvent.prototype, { + WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING; + WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN; + WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING; + WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED; + Object.defineProperties(WebSocket.prototype, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors, + url: kEnumerableProperty, + readyState: kEnumerableProperty, + bufferedAmount: kEnumerableProperty, + onopen: kEnumerableProperty, + onerror: kEnumerableProperty, + onclose: kEnumerableProperty, + close: kEnumerableProperty, + onmessage: kEnumerableProperty, + binaryType: kEnumerableProperty, + send: kEnumerableProperty, + extensions: kEnumerableProperty, + protocol: kEnumerableProperty, [Symbol.toStringTag]: { - value: 'CloseEvent', + value: 'WebSocket', + writable: false, + enumerable: false, configurable: true - }, - reason: kEnumerableProperty, - code: kEnumerableProperty, - wasClean: kEnumerableProperty + } }); - Object.defineProperties(ErrorEvent.prototype, { - [Symbol.toStringTag]: { - value: 'ErrorEvent', - configurable: true - }, - message: kEnumerableProperty, - filename: kEnumerableProperty, - lineno: kEnumerableProperty, - colno: kEnumerableProperty, - error: kEnumerableProperty + Object.defineProperties(WebSocket, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors }); - webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort); - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.MessagePort); - const eventInit = [ - { - key: 'bubbles', - converter: webidl.converters.boolean, - defaultValue: ()=>false - }, - { - key: 'cancelable', - converter: webidl.converters.boolean, - defaultValue: ()=>false - }, - { - key: 'composed', - converter: webidl.converters.boolean, - defaultValue: ()=>false - } - ]; - webidl.converters.MessageEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'data', - converter: webidl.converters.any, - defaultValue: ()=>null - }, - { - key: 'origin', - converter: webidl.converters.USVString, - defaultValue: ()=>'' - }, - { - key: 'lastEventId', - converter: webidl.converters.DOMString, - defaultValue: ()=>'' - }, - { - key: 'source', - converter: webidl.nullableConverter(webidl.converters.MessagePort), - defaultValue: ()=>null - }, + webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.DOMString); + webidl.converters['DOMString or sequence'] = function(V, prefix, argument) { + if ('Object' === webidl.util.Type(V) && Symbol.iterator in V) return webidl.converters['sequence'](V); + return webidl.converters.DOMString(V, prefix, argument); + }; + webidl.converters.WebSocketInit = webidl.dictionaryConverter([ { - key: 'ports', - converter: webidl.converters['sequence'], + key: 'protocols', + converter: webidl.converters['DOMString or sequence'], defaultValue: ()=>new Array(0) - } - ]); - webidl.converters.CloseEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'wasClean', - converter: webidl.converters.boolean, - defaultValue: ()=>false - }, - { - key: 'code', - converter: webidl.converters['unsigned short'], - defaultValue: ()=>0 - }, - { - key: 'reason', - converter: webidl.converters.USVString, - defaultValue: ()=>'' - } - ]); - webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'message', - converter: webidl.converters.DOMString, - defaultValue: ()=>'' - }, - { - key: 'filename', - converter: webidl.converters.USVString, - defaultValue: ()=>'' }, { - key: 'lineno', - converter: webidl.converters['unsigned long'], - defaultValue: ()=>0 - }, - { - key: 'colno', - converter: webidl.converters['unsigned long'], - defaultValue: ()=>0 + key: 'dispatcher', + converter: webidl.converters.any, + defaultValue: ()=>getGlobalDispatcher() }, { - key: 'error', - converter: webidl.converters.any + key: 'headers', + converter: webidl.nullableConverter(webidl.converters.HeadersInit) } ]); - module.exports = { - MessageEvent, - CloseEvent, - ErrorEvent, - createFastMessageEvent - }; - }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/frame.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { maxUnsigned16Bit } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); - const BUFFER_SIZE = 16386; - let crypto; - let buffer = null; - let bufIdx = BUFFER_SIZE; - try { - crypto = __webpack_require__("node:crypto"); - } catch { - crypto = { - randomFillSync: function(buffer, _offset, _size) { - for(let i = 0; i < buffer.length; ++i)buffer[i] = 255 * Math.random() | 0; - return buffer; - } + webidl.converters['DOMString or sequence or WebSocketInit'] = function(V) { + if ('Object' === webidl.util.Type(V) && !(Symbol.iterator in V)) return webidl.converters.WebSocketInit(V); + return { + protocols: webidl.converters['DOMString or sequence'](V) }; - } - function generateMask() { - if (bufIdx === BUFFER_SIZE) { - bufIdx = 0; - crypto.randomFillSync(buffer ??= Buffer.allocUnsafe(BUFFER_SIZE), 0, BUFFER_SIZE); + }; + webidl.converters.WebSocketSendData = function(V) { + if ('Object' === webidl.util.Type(V)) { + if (isBlobLike(V)) return webidl.converters.Blob(V, { + strict: false + }); + if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) return webidl.converters.BufferSource(V); } - return [ - buffer[bufIdx++], - buffer[bufIdx++], - buffer[bufIdx++], - buffer[bufIdx++] - ]; + return webidl.converters.USVString(V); + }; + function onParserDrain() { + this.ws[kResponse].socket.resume(); } - class WebsocketFrameSend { - constructor(data){ - this.frameData = data; - } - createFrame(opcode) { - const frameData = this.frameData; - const maskKey = generateMask(); - const bodyLength = frameData?.byteLength ?? 0; - let payloadLength = bodyLength; - let offset = 6; - if (bodyLength > maxUnsigned16Bit) { - offset += 8; - payloadLength = 127; - } else if (bodyLength > 125) { - offset += 2; - payloadLength = 126; - } - const buffer = Buffer.allocUnsafe(bodyLength + offset); - buffer[0] = buffer[1] = 0; - buffer[0] |= 0x80; - buffer[0] = (0xF0 & buffer[0]) + opcode; - /*! ws. MIT License. Einar Otto Stangvik */ buffer[offset - 4] = maskKey[0]; - buffer[offset - 3] = maskKey[1]; - buffer[offset - 2] = maskKey[2]; - buffer[offset - 1] = maskKey[3]; - buffer[1] = payloadLength; - if (126 === payloadLength) buffer.writeUInt16BE(bodyLength, 2); - else if (127 === payloadLength) { - buffer[2] = buffer[3] = 0; - buffer.writeUIntBE(bodyLength, 4, 6); - } - buffer[1] |= 0x80; - for(let i = 0; i < bodyLength; ++i)buffer[offset + i] = frameData[i] ^ maskKey[3 & i]; - return buffer; - } + function onParserError(err) { + let message; + let code; + if (err instanceof CloseEvent) { + message = err.reason; + code = err.code; + } else message = err.message; + fireEvent('error', this, ()=>new ErrorEvent('error', { + error: err, + message + })); + closeWebSocketConnection(this, code); } module.exports = { - WebsocketFrameSend + WebSocket }; }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/permessage-deflate.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __webpack_require__("node:zlib"); - const { isValidClientWindowBits } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/util.js"); - const { MessageSizeExceededError } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/errors.js"); - const tail = Buffer.from([ - 0x00, - 0x00, - 0xff, - 0xff - ]); - const kBuffer = Symbol('kBuffer'); - const kLength = Symbol('kLength'); - const kDefaultMaxDecompressedSize = 4194304; - class PerMessageDeflate { - #inflate; - #options = {}; - #aborted = false; - #currentCallback = null; - constructor(extensions){ - this.#options.serverNoContextTakeover = extensions.has('server_no_context_takeover'); - this.#options.serverMaxWindowBits = extensions.get('server_max_window_bits'); + "../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js" (module, __unused_rspack_exports, __webpack_require__) { + const isWindows = 'win32' === process.platform || 'cygwin' === process.env.OSTYPE || 'msys' === process.env.OSTYPE; + const path = __webpack_require__("path"); + const COLON = isWindows ? ';' : ':'; + const isexe = __webpack_require__("../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js"); + const getNotFoundError = (cmd)=>Object.assign(new Error(`not found: ${cmd}`), { + code: 'ENOENT' + }); + const getPathInfo = (cmd, opt)=>{ + const colon = opt.colon || COLON; + const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? [ + '' + ] : [ + ...isWindows ? [ + process.cwd() + ] : [], + ...(opt.path || process.env.PATH || '').split(colon) + ]; + const pathExtExe = isWindows ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM' : ''; + const pathExt = isWindows ? pathExtExe.split(colon) : [ + '' + ]; + if (isWindows) { + if (-1 !== cmd.indexOf('.') && '' !== pathExt[0]) pathExt.unshift(''); } - decompress(chunk, fin, callback) { - if (this.#aborted) return void callback(new MessageSizeExceededError()); - if (!this.#inflate) { - let windowBits = Z_DEFAULT_WINDOWBITS; - if (this.#options.serverMaxWindowBits) { - if (!isValidClientWindowBits(this.#options.serverMaxWindowBits)) return void callback(new Error('Invalid server_max_window_bits')); - windowBits = Number.parseInt(this.#options.serverMaxWindowBits); - } + return { + pathEnv, + pathExt, + pathExtExe + }; + }; + const which = (cmd, opt, cb)=>{ + if ('function' == typeof opt) { + cb = opt; + opt = {}; + } + if (!opt) opt = {}; + const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt); + const found = []; + const step = (i)=>new Promise((resolve, reject)=>{ + if (i === pathEnv.length) return opt.all && found.length ? resolve(found) : reject(getNotFoundError(cmd)); + const ppRaw = pathEnv[i]; + const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw; + const pCmd = path.join(pathPart, cmd); + const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd; + resolve(subStep(p, i, 0)); + }); + const subStep = (p, i, ii)=>new Promise((resolve, reject)=>{ + if (ii === pathExt.length) return resolve(step(i + 1)); + const ext = pathExt[ii]; + isexe(p + ext, { + pathExt: pathExtExe + }, (er, is)=>{ + if (!er && is) if (!opt.all) return resolve(p + ext); + else found.push(p + ext); + return resolve(subStep(p, i, ii + 1)); + }); + }); + return cb ? step(0).then((res)=>cb(null, res), cb) : step(0); + }; + const whichSync = (cmd, opt)=>{ + opt = opt || {}; + const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt); + const found = []; + for(let i = 0; i < pathEnv.length; i++){ + const ppRaw = pathEnv[i]; + const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw; + const pCmd = path.join(pathPart, cmd); + const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd; + for(let j = 0; j < pathExt.length; j++){ + const cur = p + pathExt[j]; try { - this.#inflate = createInflateRaw({ - windowBits + const is = isexe.sync(cur, { + pathExt: pathExtExe }); - } catch (err) { - callback(err); - return; - } - this.#inflate[kBuffer] = []; - this.#inflate[kLength] = 0; - this.#inflate.on('data', (data)=>{ - if (this.#aborted) return; - this.#inflate[kLength] += data.length; - if (this.#inflate[kLength] > kDefaultMaxDecompressedSize) { - this.#aborted = true; - this.#inflate.removeAllListeners(); - this.#inflate.destroy(); - this.#inflate = null; - if (this.#currentCallback) { - const cb = this.#currentCallback; - this.#currentCallback = null; - cb(new MessageSizeExceededError()); - } - return; - } - this.#inflate[kBuffer].push(data); - }); - this.#inflate.on('error', (err)=>{ - this.#inflate = null; - callback(err); - }); + if (is) if (!opt.all) return cur; + else found.push(cur); + } catch (ex) {} } - this.#currentCallback = callback; - this.#inflate.write(chunk); - if (fin) this.#inflate.write(tail); - this.#inflate.flush(()=>{ - if (this.#aborted || !this.#inflate) return; - const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength]); - this.#inflate[kBuffer].length = 0; - this.#inflate[kLength] = 0; - this.#currentCallback = null; - callback(null, full); - }); } - } - module.exports = { - PerMessageDeflate + if (opt.all && found.length) return found; + if (opt.nothrow) return null; + throw getNotFoundError(cmd); }; + module.exports = which; + which.sync = whichSync; + }, + assert (module) { + "use strict"; + module.exports = require("assert"); + }, + child_process (module) { + "use strict"; + module.exports = require("child_process"); + }, + events (module) { + "use strict"; + module.exports = require("events"); + }, + fs (module) { + "use strict"; + module.exports = require("fs"); + }, + http (module) { + "use strict"; + module.exports = require("http"); + }, + https (module) { + "use strict"; + module.exports = require("https"); + }, + net (module) { + "use strict"; + module.exports = require("net"); + }, + "node:assert" (module) { + "use strict"; + module.exports = require("node:assert"); + }, + "node:async_hooks" (module) { + "use strict"; + module.exports = require("node:async_hooks"); + }, + "node:buffer" (module) { + "use strict"; + module.exports = require("node:buffer"); + }, + "node:console" (module) { + "use strict"; + module.exports = require("node:console"); + }, + "node:crypto" (module) { + "use strict"; + module.exports = require("node:crypto"); + }, + "node:diagnostics_channel" (module) { + "use strict"; + module.exports = require("node:diagnostics_channel"); + }, + "node:dns" (module) { + "use strict"; + module.exports = require("node:dns"); + }, + "node:events" (module) { + "use strict"; + module.exports = require("node:events"); + }, + "node:http" (module) { + "use strict"; + module.exports = require("node:http"); + }, + "node:http2" (module) { + "use strict"; + module.exports = require("node:http2"); + }, + "node:net" (module) { + "use strict"; + module.exports = require("node:net"); + }, + "node:perf_hooks" (module) { + "use strict"; + module.exports = require("node:perf_hooks"); + }, + "node:querystring" (module) { + "use strict"; + module.exports = require("node:querystring"); + }, + "node:stream" (module) { + "use strict"; + module.exports = require("node:stream"); + }, + "node:tls" (module) { + "use strict"; + module.exports = require("node:tls"); + }, + "node:url" (module) { + "use strict"; + module.exports = require("node:url"); + }, + "node:util" (module) { + "use strict"; + module.exports = require("node:util"); }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/receiver.js" (module, __unused_rspack_exports, __webpack_require__) { + "node:util/types" (module) { "use strict"; - const { Writable } = __webpack_require__("node:stream"); - const assert = __webpack_require__("node:assert"); - const { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); - const { kReadyState, kSentClose, kResponse, kReceivedClose } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/symbols.js"); - const { channels } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/diagnostics.js"); - const { isValidStatusCode, isValidOpcode, failWebsocketConnection, websocketMessageReceived, utf8Decode, isControlFrame, isTextBinaryFrame, isContinuationFrame } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/util.js"); - const { WebsocketFrameSend } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/frame.js"); - const { closeWebSocketConnection } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/connection.js"); - const { PerMessageDeflate } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/permessage-deflate.js"); - class ByteParser extends Writable { - #buffers = []; - #byteOffset = 0; - #loop = false; - #state = parserStates.INFO; - #info = {}; - #fragments = []; - #extensions; - constructor(ws, extensions){ - super(); - this.ws = ws; - this.#extensions = null == extensions ? new Map() : extensions; - if (this.#extensions.has('permessage-deflate')) this.#extensions.set('permessage-deflate', new PerMessageDeflate(extensions)); - } - _write(chunk, _, callback) { - this.#buffers.push(chunk); - this.#byteOffset += chunk.length; - this.#loop = true; - this.run(callback); - } - run(callback) { - while(this.#loop)if (this.#state === parserStates.INFO) { - if (this.#byteOffset < 2) return callback(); - const buffer = this.consume(2); - const fin = (0x80 & buffer[0]) !== 0; - const opcode = 0x0F & buffer[0]; - const masked = (0x80 & buffer[1]) === 0x80; - const fragmented = !fin && opcode !== opcodes.CONTINUATION; - const payloadLength = 0x7F & buffer[1]; - const rsv1 = 0x40 & buffer[0]; - const rsv2 = 0x20 & buffer[0]; - const rsv3 = 0x10 & buffer[0]; - if (!isValidOpcode(opcode)) { - failWebsocketConnection(this.ws, 'Invalid opcode received'); - return callback(); - } - if (masked) { - failWebsocketConnection(this.ws, 'Frame cannot be masked'); - return callback(); - } - if (0 !== rsv1 && !this.#extensions.has('permessage-deflate')) return void failWebsocketConnection(this.ws, 'Expected RSV1 to be clear.'); - if (0 !== rsv2 || 0 !== rsv3) return void failWebsocketConnection(this.ws, 'RSV1, RSV2, RSV3 must be clear'); - if (fragmented && !isTextBinaryFrame(opcode)) return void failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.'); - if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) return void failWebsocketConnection(this.ws, 'Expected continuation frame'); - if (this.#info.fragmented && fragmented) return void failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.'); - if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) return void failWebsocketConnection(this.ws, 'Control frame either too large or fragmented'); - if (isContinuationFrame(opcode) && 0 === this.#fragments.length && !this.#info.compressed) return void failWebsocketConnection(this.ws, 'Unexpected continuation frame'); - if (payloadLength <= 125) { - this.#info.payloadLength = payloadLength; - this.#state = parserStates.READ_DATA; - } else if (126 === payloadLength) this.#state = parserStates.PAYLOADLENGTH_16; - else if (127 === payloadLength) this.#state = parserStates.PAYLOADLENGTH_64; - if (isTextBinaryFrame(opcode)) { - this.#info.binaryType = opcode; - this.#info.compressed = 0 !== rsv1; - } - this.#info.opcode = opcode; - this.#info.masked = masked; - this.#info.fin = fin; - this.#info.fragmented = fragmented; - } else if (this.#state === parserStates.PAYLOADLENGTH_16) { - if (this.#byteOffset < 2) return callback(); - const buffer = this.consume(2); - this.#info.payloadLength = buffer.readUInt16BE(0); - this.#state = parserStates.READ_DATA; - } else if (this.#state === parserStates.PAYLOADLENGTH_64) { - if (this.#byteOffset < 8) return callback(); - const buffer = this.consume(8); - const upper = buffer.readUInt32BE(0); - const lower = buffer.readUInt32BE(4); - if (0 !== upper || lower > 2 ** 31 - 1) return void failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.'); - this.#info.payloadLength = lower; - this.#state = parserStates.READ_DATA; - } else if (this.#state === parserStates.READ_DATA) { - if (this.#byteOffset < this.#info.payloadLength) return callback(); - const body = this.consume(this.#info.payloadLength); - if (isControlFrame(this.#info.opcode)) { - this.#loop = this.parseControlFrame(body); - this.#state = parserStates.INFO; - } else if (this.#info.compressed) { - this.#extensions.get('permessage-deflate').decompress(body, this.#info.fin, (error, data)=>{ - if (error) return void failWebsocketConnection(this.ws, error.message); - this.#fragments.push(data); - if (!this.#info.fin) { - this.#state = parserStates.INFO; - this.#loop = true; - this.run(callback); - return; + module.exports = require("node:util/types"); + }, + "node:worker_threads" (module) { + "use strict"; + module.exports = require("node:worker_threads"); + }, + "node:zlib" (module) { + "use strict"; + module.exports = require("node:zlib"); + }, + path (module) { + "use strict"; + module.exports = require("path"); + }, + string_decoder (module) { + "use strict"; + module.exports = require("string_decoder"); + }, + tls (module) { + "use strict"; + module.exports = require("tls"); + }, + util (module) { + "use strict"; + module.exports = require("util"); + }, + "../node_modules/.pnpm/content-type@2.0.0/node_modules/content-type/dist/index.js" (__unused_rspack_module, exports1) { + "use strict"; + exports1.qg = parse; + const NullObject = /* @__PURE__ */ (()=>{ + const C = function() {}; + C.prototype = Object.create(null); + return C; + })(); + function parse(header, options) { + const len = header.length; + let index = skipOWS(header, 0, len); + const valueStart = index; + index = skipValue(header, index, len); + const valueEnd = trailingOWS(header, valueStart, index); + const type = header.slice(valueStart, valueEnd).toLowerCase(); + const parameters = options?.parameters === false ? new NullObject() : parseParameters(header, index, len); + return { + type, + parameters + }; + } + const SP = 32; + const HTAB = 9; + const SEMI = 59; + const EQ = 61; + const DQUOTE = 34; + const BSLASH = 92; + function parseParameters(header, index, len) { + const parameters = new NullObject(); + parameter: while(index < len){ + index = skipOWS(header, index + 1, len); + const keyStart = index; + while(index < len){ + const code = header.charCodeAt(index); + if (code === SEMI) continue parameter; + if (code === EQ) { + const keyEnd = trailingOWS(header, keyStart, index); + const key = header.slice(keyStart, keyEnd).toLowerCase(); + index = skipOWS(header, index + 1, len); + if (index < len && header.charCodeAt(index) === DQUOTE) { + index++; + let value = ""; + while(index < len){ + const code = header.charCodeAt(index++); + if (code === DQUOTE) { + index = skipValue(header, index, len); + if (void 0 === parameters[key]) parameters[key] = value; + break; + } + if (code === BSLASH && index < len) { + value += header[index++]; + continue; + } + value += String.fromCharCode(code); } - websocketMessageReceived(this.ws, this.#info.binaryType, Buffer.concat(this.#fragments)); - this.#loop = true; - this.#state = parserStates.INFO; - this.#fragments.length = 0; - this.run(callback); - }); - this.#loop = false; - break; - } else { - this.#fragments.push(body); - if (!this.#info.fragmented && this.#info.fin) { - const fullMessage = Buffer.concat(this.#fragments); - websocketMessageReceived(this.ws, this.#info.binaryType, fullMessage); - this.#fragments.length = 0; + continue parameter; } - this.#state = parserStates.INFO; + const valueStart = index; + index = skipValue(header, index, len); + if (void 0 === parameters[key]) { + const valueEnd = trailingOWS(header, valueStart, index); + parameters[key] = header.slice(valueStart, valueEnd); + } + continue parameter; } + index++; } } - consume(n) { - if (n > this.#byteOffset) throw new Error('Called consume() before buffers satiated.'); - if (0 === n) return emptyBuffer; - if (this.#buffers[0].length === n) { - this.#byteOffset -= this.#buffers[0].length; - return this.#buffers.shift(); - } - const buffer = Buffer.allocUnsafe(n); - let offset = 0; - while(offset !== n){ - const next = this.#buffers[0]; - const { length } = next; - if (length + offset === n) { - buffer.set(this.#buffers.shift(), offset); - break; - } - if (length + offset > n) { - buffer.set(next.subarray(0, n - offset), offset); - this.#buffers[0] = next.subarray(n - offset); - break; - } - buffer.set(this.#buffers.shift(), offset); - offset += next.length; - } - this.#byteOffset -= n; - return buffer; + return parameters; + } + function skipValue(str, index, len) { + while(index < len){ + const char = str.charCodeAt(index); + if (char === SEMI) break; + index++; } - parseCloseBody(data) { - assert(1 !== data.length); - let code; - if (data.length >= 2) code = data.readUInt16BE(0); - if (void 0 !== code && !isValidStatusCode(code)) return { - code: 1002, - reason: 'Invalid status code', - error: true - }; - let reason = data.subarray(2); - if (0xEF === reason[0] && 0xBB === reason[1] && 0xBF === reason[2]) reason = reason.subarray(3); - try { - reason = utf8Decode(reason); - } catch { - return { - code: 1007, - reason: 'Invalid UTF-8', - error: true - }; - } - return { - code, - reason, - error: false - }; + return index; + } + function skipOWS(header, index, len) { + while(index < len){ + const char = header.charCodeAt(index); + if (char !== SP && char !== HTAB) break; + index++; } - parseControlFrame(body) { - const { opcode, payloadLength } = this.#info; - if (opcode === opcodes.CLOSE) { - if (1 === payloadLength) { - failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.'); - return false; - } - this.#info.closeInfo = this.parseCloseBody(body); - if (this.#info.closeInfo.error) { - const { code, reason } = this.#info.closeInfo; - closeWebSocketConnection(this.ws, code, reason, reason.length); - failWebsocketConnection(this.ws, reason); - return false; - } - if (this.ws[kSentClose] !== sentCloseFrameState.SENT) { - let body = emptyBuffer; - if (this.#info.closeInfo.code) { - body = Buffer.allocUnsafe(2); - body.writeUInt16BE(this.#info.closeInfo.code, 0); - } - const closeFrame = new WebsocketFrameSend(body); - this.ws[kResponse].socket.write(closeFrame.createFrame(opcodes.CLOSE), (err)=>{ - if (!err) this.ws[kSentClose] = sentCloseFrameState.SENT; - }); - } - this.ws[kReadyState] = states.CLOSING; - this.ws[kReceivedClose] = true; - return false; - } - if (opcode === opcodes.PING) { - if (!this.ws[kReceivedClose]) { - const frame = new WebsocketFrameSend(body); - this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)); - if (channels.ping.hasSubscribers) channels.ping.publish({ - payload: body - }); + return index; + } + function trailingOWS(header, start, end) { + while(end > start){ + const char = header.charCodeAt(end - 1); + if (char !== SP && char !== HTAB) break; + end--; + } + return end; + } + } +}; +var __webpack_module_cache__ = {}; +function __webpack_require__(moduleId) { + var cachedModule = __webpack_module_cache__[moduleId]; + if (void 0 !== cachedModule) return cachedModule.exports; + var module = __webpack_module_cache__[moduleId] = { + exports: {} + }; + __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); + return module.exports; +} +var __webpack_exports__ = {}; +(()=>{ + "use strict"; + const external_os_namespaceObject = require("os"); + function utils_toCommandValue(input) { + if (null == input) return ''; + if ('string' == typeof input || input instanceof String) return input; + return JSON.stringify(input); + } + function utils_toCommandProperties(annotationProperties) { + if (!Object.keys(annotationProperties).length) return {}; + return { + title: annotationProperties.title, + file: annotationProperties.file, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + }; + } + function command_issueCommand(command, properties, message) { + const cmd = new Command(command, properties, message); + process.stdout.write(cmd.toString() + external_os_namespaceObject.EOL); + } + const CMD_STRING = '::'; + class Command { + constructor(command, properties, message){ + if (!command) command = 'missing.command'; + this.command = command; + this.properties = properties; + this.message = message; + } + toString() { + let cmdStr = CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += ' '; + let first = true; + for(const key in this.properties)if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) first = false; + else cmdStr += ','; + cmdStr += `${key}=${escapeProperty(val)}`; } - } else if (opcode === opcodes.PONG) { - if (channels.pong.hasSubscribers) channels.pong.publish({ - payload: body - }); } - return true; - } - get closingInfo() { - return this.#info.closeInfo; } + cmdStr += `${CMD_STRING}${escapeData(this.message)}`; + return cmdStr; } - module.exports = { - ByteParser - }; - }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/sender.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { WebsocketFrameSend } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/frame.js"); - const { opcodes, sendHints } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); - const FixedQueue = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/fixed-queue.js"); - const FastBuffer = Buffer[Symbol.species]; - class SendQueue { - #queue = new FixedQueue(); - #running = false; - #socket; - constructor(socket){ - this.#socket = socket; - } - add(item, cb, hint) { - if (hint !== sendHints.blob) { - const frame = createFrame(item, hint); - if (this.#running) { - const node = { - promise: null, - callback: cb, - frame - }; - this.#queue.push(node); - } else this.#socket.write(frame, cb); - return; + } + function escapeData(s) { + return utils_toCommandValue(s).replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A'); + } + function escapeProperty(s) { + return utils_toCommandValue(s).replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A').replace(/:/g, '%3A').replace(/,/g, '%2C'); + } + const external_crypto_namespaceObject = require("crypto"); + var external_fs_ = __webpack_require__("fs"); + function file_command_issueFileCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) throw new Error(`Unable to find environment variable for file command ${command}`); + if (!external_fs_.existsSync(filePath)) throw new Error(`Missing file at path: ${filePath}`); + external_fs_.appendFileSync(filePath, `${utils_toCommandValue(message)}${external_os_namespaceObject.EOL}`, { + encoding: 'utf8' + }); + } + function file_command_prepareKeyValueMessage(key, value) { + const delimiter = `ghadelimiter_${external_crypto_namespaceObject.randomUUID()}`; + const convertedValue = utils_toCommandValue(value); + if (key.includes(delimiter)) throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); + if (convertedValue.includes(delimiter)) throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); + return `${key}<<${delimiter}${external_os_namespaceObject.EOL}${convertedValue}${external_os_namespaceObject.EOL}${delimiter}`; + } + __webpack_require__("path"); + __webpack_require__("http"); + __webpack_require__("https"); + URL; + __webpack_require__("../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js"); + var undici = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/index.js"); + var lib_HttpCodes; + (function(HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; + })(lib_HttpCodes || (lib_HttpCodes = {})); + var lib_Headers; + (function(Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; + })(lib_Headers || (lib_Headers = {})); + var lib_MediaTypes; + (function(MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; + })(lib_MediaTypes || (lib_MediaTypes = {})); + lib_HttpCodes.MovedPermanently, lib_HttpCodes.ResourceMoved, lib_HttpCodes.SeeOther, lib_HttpCodes.TemporaryRedirect, lib_HttpCodes.PermanentRedirect; + lib_HttpCodes.BadGateway, lib_HttpCodes.ServiceUnavailable, lib_HttpCodes.GatewayTimeout; + var summary_awaiter = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); } - const node = { - promise: item.arrayBuffer().then((ab)=>{ - node.promise = null; - node.frame = createFrame(ab, hint); - }), - callback: cb, - frame: null - }; - this.#queue.push(node); - if (!this.#running) this.#run(); } - async #run() { - this.#running = true; - const queue = this.#queue; - while(!queue.isEmpty()){ - const node = queue.shift(); - if (null !== node.promise) await node.promise; - this.#socket.write(node.frame, node.callback); - node.callback = node.frame = null; + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); } - this.#running = false; } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + const { access, appendFile, writeFile } = external_fs_.promises; + const SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; + class Summary { + constructor(){ + this._buffer = ''; } - function createFrame(data, hint) { - return new WebsocketFrameSend(toBuffer(data, hint)).createFrame(hint === sendHints.string ? opcodes.TEXT : opcodes.BINARY); + filePath() { + return summary_awaiter(this, void 0, void 0, function*() { + if (this._filePath) return this._filePath; + const pathFromEnv = process.env[SUMMARY_ENV_VAR]; + if (!pathFromEnv) throw new Error(`Unable to find environment variable for $${SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + try { + yield access(pathFromEnv, external_fs_.constants.R_OK | external_fs_.constants.W_OK); + } catch (_a) { + throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + } + this._filePath = pathFromEnv; + return this._filePath; + }); } - function toBuffer(data, hint) { - switch(hint){ - case sendHints.string: - return Buffer.from(data); - case sendHints.arrayBuffer: - case sendHints.blob: - return new FastBuffer(data); - case sendHints.typedArray: - return new FastBuffer(data.buffer, data.byteOffset, data.byteLength); - } + wrap(tag, content, attrs = {}) { + const htmlAttrs = Object.entries(attrs).map(([key, value])=>` ${key}="${value}"`).join(''); + if (!content) return `<${tag}${htmlAttrs}>`; + return `<${tag}${htmlAttrs}>${content}`; } - module.exports = { - SendQueue - }; - }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/symbols.js" (module) { - "use strict"; - module.exports = { - kWebSocketURL: Symbol('url'), - kReadyState: Symbol('ready state'), - kController: Symbol('controller'), - kResponse: Symbol('response'), - kBinaryType: Symbol('binary type'), - kSentClose: Symbol('sent close'), - kReceivedClose: Symbol('received close'), - kByteParser: Symbol('byte parser') - }; - }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/util.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/symbols.js"); - const { states, opcodes } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); - const { ErrorEvent, createFastMessageEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/events.js"); - const { isUtf8 } = __webpack_require__("node:buffer"); - const { collectASequenceOfCodePointsFast, removeHTTPWhitespace } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/data-url.js"); - function isConnecting(ws) { - return ws[kReadyState] === states.CONNECTING; + write(options) { + return summary_awaiter(this, void 0, void 0, function*() { + const overwrite = !!(null == options ? void 0 : options.overwrite); + const filePath = yield this.filePath(); + const writeFunc = overwrite ? writeFile : appendFile; + yield writeFunc(filePath, this._buffer, { + encoding: 'utf8' + }); + return this.emptyBuffer(); + }); } - function isEstablished(ws) { - return ws[kReadyState] === states.OPEN; + clear() { + return summary_awaiter(this, void 0, void 0, function*() { + return this.emptyBuffer().write({ + overwrite: true + }); + }); } - function isClosing(ws) { - return ws[kReadyState] === states.CLOSING; + stringify() { + return this._buffer; } - function isClosed(ws) { - return ws[kReadyState] === states.CLOSED; + isEmptyBuffer() { + return 0 === this._buffer.length; } - function fireEvent(e, target, eventFactory = (type, init)=>new Event(type, init), eventInitDict = {}) { - const event = eventFactory(e, eventInitDict); - target.dispatchEvent(event); + emptyBuffer() { + this._buffer = ''; + return this; } - function websocketMessageReceived(ws, type, data) { - if (ws[kReadyState] !== states.OPEN) return; - let dataForEvent; - if (type === opcodes.TEXT) try { - dataForEvent = utf8Decode(data); - } catch { - failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.'); - return; - } - else if (type === opcodes.BINARY) dataForEvent = 'blob' === ws[kBinaryType] ? new Blob([ - data - ]) : toArrayBuffer(data); - fireEvent('message', ws, createFastMessageEvent, { - origin: ws[kWebSocketURL].origin, - data: dataForEvent + addRaw(text, addEOL = false) { + this._buffer += text; + return addEOL ? this.addEOL() : this; + } + addEOL() { + return this.addRaw(external_os_namespaceObject.EOL); + } + addCodeBlock(code, lang) { + const attrs = Object.assign({}, lang && { + lang }); + const element = this.wrap('pre', this.wrap('code', code), attrs); + return this.addRaw(element).addEOL(); } - function toArrayBuffer(buffer) { - if (buffer.byteLength === buffer.buffer.byteLength) return buffer.buffer; - return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength); + addList(items, ordered = false) { + const tag = ordered ? 'ol' : 'ul'; + const listItems = items.map((item)=>this.wrap('li', item)).join(''); + const element = this.wrap(tag, listItems); + return this.addRaw(element).addEOL(); } - function isValidSubprotocol(protocol) { - if (0 === protocol.length) return false; - for(let i = 0; i < protocol.length; ++i){ - const code = protocol.charCodeAt(i); - if (code < 0x21 || code > 0x7E || 0x22 === code || 0x28 === code || 0x29 === code || 0x2C === code || 0x2F === code || 0x3A === code || 0x3B === code || 0x3C === code || 0x3D === code || 0x3E === code || 0x3F === code || 0x40 === code || 0x5B === code || 0x5C === code || 0x5D === code || 0x7B === code || 0x7D === code) return false; - } - return true; + addTable(rows) { + const tableBody = rows.map((row)=>{ + const cells = row.map((cell)=>{ + if ('string' == typeof cell) return this.wrap('td', cell); + const { header, data, colspan, rowspan } = cell; + const tag = header ? 'th' : 'td'; + const attrs = Object.assign(Object.assign({}, colspan && { + colspan + }), rowspan && { + rowspan + }); + return this.wrap(tag, data, attrs); + }).join(''); + return this.wrap('tr', cells); + }).join(''); + const element = this.wrap('table', tableBody); + return this.addRaw(element).addEOL(); } - function isValidStatusCode(code) { - if (code >= 1000 && code < 1015) return 1004 !== code && 1005 !== code && 1006 !== code; - return code >= 3000 && code <= 4999; + addDetails(label, content) { + const element = this.wrap('details', this.wrap('summary', label) + content); + return this.addRaw(element).addEOL(); } - function failWebsocketConnection(ws, reason) { - const { [kController]: controller, [kResponse]: response } = ws; - controller.abort(); - if (response?.socket && !response.socket.destroyed) response.socket.destroy(); - if (reason) fireEvent('error', ws, (type, init)=>new ErrorEvent(type, init), { - error: new Error(reason), - message: reason + addImage(src, alt, options) { + const { width, height } = options || {}; + const attrs = Object.assign(Object.assign({}, width && { + width + }), height && { + height }); + const element = this.wrap('img', null, Object.assign({ + src, + alt + }, attrs)); + return this.addRaw(element).addEOL(); } - function isControlFrame(opcode) { - return opcode === opcodes.CLOSE || opcode === opcodes.PING || opcode === opcodes.PONG; - } - function isContinuationFrame(opcode) { - return opcode === opcodes.CONTINUATION; + addHeading(text, level) { + const tag = `h${level}`; + const allowedTag = [ + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6' + ].includes(tag) ? tag : 'h1'; + const element = this.wrap(allowedTag, text); + return this.addRaw(element).addEOL(); } - function isTextBinaryFrame(opcode) { - return opcode === opcodes.TEXT || opcode === opcodes.BINARY; + addSeparator() { + const element = this.wrap('hr', null); + return this.addRaw(element).addEOL(); } - function isValidOpcode(opcode) { - return isTextBinaryFrame(opcode) || isContinuationFrame(opcode) || isControlFrame(opcode); + addBreak() { + const element = this.wrap('br', null); + return this.addRaw(element).addEOL(); } - function parseExtensions(extensions) { - const position = { - position: 0 - }; - const extensionList = new Map(); - while(position.position < extensions.length){ - const pair = collectASequenceOfCodePointsFast(';', extensions, position); - const [name, value = ''] = pair.split('='); - extensionList.set(removeHTTPWhitespace(name, true, false), removeHTTPWhitespace(value, false, true)); - position.position++; - } - return extensionList; + addQuote(text, cite) { + const attrs = Object.assign({}, cite && { + cite + }); + const element = this.wrap('blockquote', text, attrs); + return this.addRaw(element).addEOL(); } - function isValidClientWindowBits(value) { - if (0 === value.length) return false; - for(let i = 0; i < value.length; i++){ - const byte = value.charCodeAt(i); - if (byte < 0x30 || byte > 0x39) return false; - } - const num = Number.parseInt(value, 10); - return num >= 8 && num <= 15; + addLink(text, href) { + const element = this.wrap('a', text, { + href + }); + return this.addRaw(element).addEOL(); } - const hasIntl = 'string' == typeof process.versions.icu; - const fatalDecoder = hasIntl ? new TextDecoder('utf-8', { - fatal: true - }) : void 0; - const utf8Decode = hasIntl ? fatalDecoder.decode.bind(fatalDecoder) : function(buffer) { - if (isUtf8(buffer)) return buffer.toString('utf-8'); - throw new TypeError('Invalid utf-8 received.'); - }; - module.exports = { - isConnecting, - isEstablished, - isClosing, - isClosed, - fireEvent, - isValidSubprotocol, - isValidStatusCode, - failWebsocketConnection, - websocketMessageReceived, - utf8Decode, - isControlFrame, - isContinuationFrame, - isTextBinaryFrame, - isValidOpcode, - parseExtensions, - isValidClientWindowBits - }; - }, - "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/websocket.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/webidl.js"); - const { URLSerializer } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/data-url.js"); - const { environmentSettingsObject } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/util.js"); - const { staticPropertyDescriptors, states, sentCloseFrameState, sendHints } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/constants.js"); - const { kWebSocketURL, kReadyState, kController, kBinaryType, kResponse, kSentClose, kByteParser } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/symbols.js"); - const { isConnecting, isEstablished, isClosing, isValidSubprotocol, fireEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/util.js"); - const { establishWebSocketConnection, closeWebSocketConnection } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/connection.js"); - const { ByteParser } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/receiver.js"); - const { kEnumerableProperty, isBlobLike } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/util.js"); - const { getGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/global.js"); - const { types } = __webpack_require__("node:util"); - const { ErrorEvent, CloseEvent } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/events.js"); - const { SendQueue } = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/websocket/sender.js"); - class WebSocket extends EventTarget { - #events = { - open: null, - error: null, - close: null, - message: null + } + new Summary(); + __webpack_require__("string_decoder"); + var external_events_ = __webpack_require__("events"); + __webpack_require__("child_process"); + __webpack_require__("assert"); + const { chmod, copyFile, lstat, mkdir, open: io_util_open, readdir, rename, rm, rmdir, stat, symlink, unlink } = external_fs_.promises; + process.platform; + external_fs_.constants.O_RDONLY; + require("timers"); + process.platform; + external_events_.EventEmitter; + external_events_.EventEmitter; + external_os_namespaceObject.platform(); + external_os_namespaceObject.arch(); + var core_ExitCode; + (function(ExitCode) { + ExitCode[ExitCode["Success"] = 0] = "Success"; + ExitCode[ExitCode["Failure"] = 1] = "Failure"; + })(core_ExitCode || (core_ExitCode = {})); + function core_setSecret(secret) { + command_issueCommand('add-mask', {}, secret); + } + function getInput(name, options) { + const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || ''; + if (options && options.required && !val) throw new Error(`Input required and not supplied: ${name}`); + if (options && false === options.trimWhitespace) return val; + return val.trim(); + } + function setOutput(name, value) { + const filePath = process.env['GITHUB_OUTPUT'] || ''; + if (filePath) return file_command_issueFileCommand('OUTPUT', file_command_prepareKeyValueMessage(name, value)); + process.stdout.write(external_os_namespaceObject.EOL); + command_issueCommand('set-output', { + name + }, utils_toCommandValue(value)); + } + function setFailed(message) { + process.exitCode = core_ExitCode.Failure; + core_error(message); + } + function core_error(message, properties = {}) { + command_issueCommand('error', utils_toCommandProperties(properties), message instanceof Error ? message.toString() : message); + } + function core_info(message) { + process.stdout.write(message + external_os_namespaceObject.EOL); + } + class Context { + constructor(){ + var _a, _b, _c; + this.payload = {}; + if (process.env.GITHUB_EVENT_PATH) if ((0, external_fs_.existsSync)(process.env.GITHUB_EVENT_PATH)) this.payload = JSON.parse((0, external_fs_.readFileSync)(process.env.GITHUB_EVENT_PATH, { + encoding: 'utf8' + })); + else { + const path = process.env.GITHUB_EVENT_PATH; + process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${external_os_namespaceObject.EOL}`); + } + this.eventName = process.env.GITHUB_EVENT_NAME; + this.sha = process.env.GITHUB_SHA; + this.ref = process.env.GITHUB_REF; + this.workflow = process.env.GITHUB_WORKFLOW; + this.action = process.env.GITHUB_ACTION; + this.actor = process.env.GITHUB_ACTOR; + this.job = process.env.GITHUB_JOB; + this.runAttempt = parseInt(process.env.GITHUB_RUN_ATTEMPT, 10); + this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); + this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); + this.apiUrl = null != (_a = process.env.GITHUB_API_URL) ? _a : "https://api.github.com"; + this.serverUrl = null != (_b = process.env.GITHUB_SERVER_URL) ? _b : "https://github.com"; + this.graphqlUrl = null != (_c = process.env.GITHUB_GRAPHQL_URL) ? _c : "https://api.github.com/graphql"; + } + get issue() { + const payload = this.payload; + return Object.assign(Object.assign({}, this.repo), { + number: (payload.issue || payload.pull_request || payload).number + }); + } + get repo() { + if (process.env.GITHUB_REPOSITORY) { + const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); + return { + owner, + repo + }; + } + if (this.payload.repository) return { + owner: this.payload.repository.owner.login, + repo: this.payload.repository.name }; - #bufferedAmount = 0; - #protocol = ''; - #extensions = ''; - #sendQueue; - constructor(url, protocols = []){ - super(); - webidl.util.markAsUncloneable(this); - const prefix = 'WebSocket constructor'; - webidl.argumentLengthCheck(arguments, 1, prefix); - const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols, prefix, 'options'); - url = webidl.converters.USVString(url, prefix, 'url'); - protocols = options.protocols; - const baseURL = environmentSettingsObject.settingsObject.baseUrl; - let urlRecord; + throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); + } + } + var lib = __webpack_require__("../node_modules/.pnpm/@actions+http-client@3.0.2/node_modules/@actions/http-client/lib/index.js"); + var utils_awaiter = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { try { - urlRecord = new URL(url, baseURL); + step(generator.next(value)); } catch (e) { - throw new DOMException(e, 'SyntaxError'); - } - if ('http:' === urlRecord.protocol) urlRecord.protocol = 'ws:'; - else if ('https:' === urlRecord.protocol) urlRecord.protocol = 'wss:'; - if ('ws:' !== urlRecord.protocol && 'wss:' !== urlRecord.protocol) throw new DOMException(`Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, 'SyntaxError'); - if (urlRecord.hash || urlRecord.href.endsWith('#')) throw new DOMException('Got fragment', 'SyntaxError'); - if ('string' == typeof protocols) protocols = [ - protocols - ]; - if (protocols.length !== new Set(protocols.map((p)=>p.toLowerCase())).size) throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError'); - if (protocols.length > 0 && !protocols.every((p)=>isValidSubprotocol(p))) throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError'); - this[kWebSocketURL] = new URL(urlRecord.href); - const client = environmentSettingsObject.settingsObject; - this[kController] = establishWebSocketConnection(urlRecord, protocols, client, this, (response, extensions)=>this.#onConnectionEstablished(response, extensions), options); - this[kReadyState] = WebSocket.CONNECTING; - this[kSentClose] = sentCloseFrameState.NOT_SENT; - this[kBinaryType] = 'blob'; - } - close(code, reason) { - webidl.brandCheck(this, WebSocket); - const prefix = 'WebSocket.close'; - if (void 0 !== code) code = webidl.converters['unsigned short'](code, prefix, 'code', { - clamp: true - }); - if (void 0 !== reason) reason = webidl.converters.USVString(reason, prefix, 'reason'); - if (void 0 !== code) { - if (1000 !== code && (code < 3000 || code > 4999)) throw new DOMException('invalid code', 'InvalidAccessError'); - } - let reasonByteLength = 0; - if (void 0 !== reason) { - reasonByteLength = Buffer.byteLength(reason); - if (reasonByteLength > 123) throw new DOMException(`Reason must be less than 123 bytes; received ${reasonByteLength}`, 'SyntaxError'); + reject(e); } - closeWebSocketConnection(this, code, reason, reasonByteLength); } - send(data) { - webidl.brandCheck(this, WebSocket); - const prefix = 'WebSocket.send'; - webidl.argumentLengthCheck(arguments, 1, prefix); - data = webidl.converters.WebSocketSendData(data, prefix, 'data'); - if (isConnecting(this)) throw new DOMException('Sent before connected.', 'InvalidStateError'); - if (!isEstablished(this) || isClosing(this)) return; - if ('string' == typeof data) { - const length = Buffer.byteLength(data); - this.#bufferedAmount += length; - this.#sendQueue.add(data, ()=>{ - this.#bufferedAmount -= length; - }, sendHints.string); - } else if (types.isArrayBuffer(data)) { - this.#bufferedAmount += data.byteLength; - this.#sendQueue.add(data, ()=>{ - this.#bufferedAmount -= data.byteLength; - }, sendHints.arrayBuffer); - } else if (ArrayBuffer.isView(data)) { - this.#bufferedAmount += data.byteLength; - this.#sendQueue.add(data, ()=>{ - this.#bufferedAmount -= data.byteLength; - }, sendHints.typedArray); - } else if (isBlobLike(data)) { - this.#bufferedAmount += data.size; - this.#sendQueue.add(data, ()=>{ - this.#bufferedAmount -= data.size; - }, sendHints.blob); + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); } } - get readyState() { - webidl.brandCheck(this, WebSocket); - return this[kReadyState]; - } - get bufferedAmount() { - webidl.brandCheck(this, WebSocket); - return this.#bufferedAmount; - } - get url() { - webidl.brandCheck(this, WebSocket); - return URLSerializer(this[kWebSocketURL]); - } - get extensions() { - webidl.brandCheck(this, WebSocket); - return this.#extensions; - } - get protocol() { - webidl.brandCheck(this, WebSocket); - return this.#protocol; - } - get onopen() { - webidl.brandCheck(this, WebSocket); - return this.#events.open; - } - set onopen(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.open) this.removeEventListener('open', this.#events.open); - if ('function' == typeof fn) { - this.#events.open = fn; - this.addEventListener('open', fn); - } else this.#events.open = null; - } - get onerror() { - webidl.brandCheck(this, WebSocket); - return this.#events.error; - } - set onerror(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.error) this.removeEventListener('error', this.#events.error); - if ('function' == typeof fn) { - this.#events.error = fn; - this.addEventListener('error', fn); - } else this.#events.error = null; - } - get onclose() { - webidl.brandCheck(this, WebSocket); - return this.#events.close; - } - set onclose(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.close) this.removeEventListener('close', this.#events.close); - if ('function' == typeof fn) { - this.#events.close = fn; - this.addEventListener('close', fn); - } else this.#events.close = null; - } - get onmessage() { - webidl.brandCheck(this, WebSocket); - return this.#events.message; - } - set onmessage(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.message) this.removeEventListener('message', this.#events.message); - if ('function' == typeof fn) { - this.#events.message = fn; - this.addEventListener('message', fn); - } else this.#events.message = null; - } - get binaryType() { - webidl.brandCheck(this, WebSocket); - return this[kBinaryType]; - } - set binaryType(type) { - webidl.brandCheck(this, WebSocket); - if ('blob' !== type && 'arraybuffer' !== type) this[kBinaryType] = 'blob'; - else this[kBinaryType] = type; - } - #onConnectionEstablished(response, parsedExtensions) { - this[kResponse] = response; - const parser = new ByteParser(this, parsedExtensions); - parser.on('drain', onParserDrain); - parser.on('error', onParserError.bind(this)); - response.socket.ws = this; - this[kByteParser] = parser; - this.#sendQueue = new SendQueue(response.socket); - this[kReadyState] = states.OPEN; - const extensions = response.headersList.get('sec-websocket-extensions'); - if (null !== extensions) this.#extensions = extensions; - const protocol = response.headersList.get('sec-websocket-protocol'); - if (null !== protocol) this.#protocol = protocol; - fireEvent('open', this); + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + function getAuthString(token, options) { + if (token || options.auth) { + if (token && options.auth) throw new Error('Parameters token and opts.auth may not both be specified'); + } else throw new Error('Parameter token or opts.auth is required'); + return 'string' == typeof options.auth ? options.auth : `token ${token}`; + } + function getProxyAgent(destinationUrl) { + const hc = new lib.HttpClient(); + return hc.getAgent(destinationUrl); + } + function getProxyAgentDispatcher(destinationUrl) { + const hc = new lib.HttpClient(); + return hc.getAgentDispatcher(destinationUrl); + } + function getProxyFetch(destinationUrl) { + const httpDispatcher = getProxyAgentDispatcher(destinationUrl); + const proxyFetch = (url, opts)=>utils_awaiter(this, void 0, void 0, function*() { + return (0, undici.hd)(url, Object.assign(Object.assign({}, opts), { + dispatcher: httpDispatcher + })); + }); + return proxyFetch; + } + function getApiBaseUrl() { + return process.env['GITHUB_API_URL'] || 'https://api.github.com'; + } + function getUserAgentWithOrchestrationId(baseUserAgent) { + var _a; + const orchId = null == (_a = process.env['ACTIONS_ORCHESTRATION_ID']) ? void 0 : _a.trim(); + if (orchId) { + const sanitizedId = orchId.replace(/[^a-z0-9_.-]/gi, '_'); + const tag = `actions_orchestration_id/${sanitizedId}`; + if (null == baseUserAgent ? void 0 : baseUserAgent.includes(tag)) return baseUserAgent; + const ua = baseUserAgent ? `${baseUserAgent} ` : ''; + return `${ua}${tag}`; + } + return baseUserAgent; + } + function getUserAgent() { + if ("object" == typeof navigator && "userAgent" in navigator) return navigator.userAgent; + if ("object" == typeof process && void 0 !== process.version) return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + return ""; + } + function register(state, name, method, options) { + if ("function" != typeof method) throw new Error("method for before hook must be a function"); + if (!options) options = {}; + if (Array.isArray(name)) return name.reverse().reduce((callback, name)=>register.bind(null, state, name, callback, options), method)(); + return Promise.resolve().then(()=>{ + if (!state.registry[name]) return method(options); + return state.registry[name].reduce((method, registered)=>registered.hook.bind(null, method, options), method)(); + }); + } + function addHook(state, kind, name, hook) { + const orig = hook; + if (!state.registry[name]) state.registry[name] = []; + if ("before" === kind) hook = (method, options)=>Promise.resolve().then(orig.bind(null, options)).then(method.bind(null, options)); + if ("after" === kind) hook = (method, options)=>{ + let result; + return Promise.resolve().then(method.bind(null, options)).then((result_)=>{ + result = result_; + return orig(result, options); + }).then(()=>result); + }; + if ("error" === kind) hook = (method, options)=>Promise.resolve().then(method.bind(null, options)).catch((error)=>orig(error, options)); + state.registry[name].push({ + hook: hook, + orig: orig + }); + } + function removeHook(state, name, method) { + if (!state.registry[name]) return; + const index = state.registry[name].map((registered)=>registered.orig).indexOf(method); + if (-1 === index) return; + state.registry[name].splice(index, 1); + } + const bind = Function.bind; + const bindable = bind.bind(bind); + function bindApi(hook, state, name) { + const removeHookRef = bindable(removeHook, null).apply(null, name ? [ + state, + name + ] : [ + state + ]); + hook.api = { + remove: removeHookRef + }; + hook.remove = removeHookRef; + [ + "before", + "error", + "after", + "wrap" + ].forEach((kind)=>{ + const args = name ? [ + state, + kind, + name + ] : [ + state, + kind + ]; + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args); + }); + } + function Singular() { + const singularHookName = Symbol("Singular"); + const singularHookState = { + registry: {} + }; + const singularHook = register.bind(null, singularHookState, singularHookName); + bindApi(singularHook, singularHookState, singularHookName); + return singularHook; + } + function Collection() { + const state = { + registry: {} + }; + const hook = register.bind(null, state); + bindApi(hook, state); + return hook; + } + const before_after_hook = { + Singular, + Collection + }; + var VERSION = "0.0.0-development"; + var dist_bundle_userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; + var DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": dist_bundle_userAgent + }, + mediaType: { + format: "" } - WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING; - WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN; - WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING; - WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED; - Object.defineProperties(WebSocket.prototype, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors, - url: kEnumerableProperty, - readyState: kEnumerableProperty, - bufferedAmount: kEnumerableProperty, - onopen: kEnumerableProperty, - onerror: kEnumerableProperty, - onclose: kEnumerableProperty, - close: kEnumerableProperty, - onmessage: kEnumerableProperty, - binaryType: kEnumerableProperty, - send: kEnumerableProperty, - extensions: kEnumerableProperty, - protocol: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'WebSocket', - writable: false, - enumerable: false, - configurable: true - } + }; + function dist_bundle_lowercaseKeys(object) { + if (!object) return {}; + return Object.keys(object).reduce((newObj, key)=>{ + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); + } + function isPlainObject(value) { + if ("object" != typeof value || null === value) return false; + if ("[object Object]" !== Object.prototype.toString.call(value)) return false; + const proto = Object.getPrototypeOf(value); + if (null === proto) return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return "function" == typeof Ctor && 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) result[key] = mergeDeep(defaults[key], options[key]); + else Object.assign(result, { + [key]: options[key] + }); + else Object.assign(result, { + [key]: options[key] + }); }); - Object.defineProperties(WebSocket, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors + return result; + } + function removeUndefinedProperties(obj) { + for(const key in obj)if (void 0 === obj[key]) delete obj[key]; + return obj; + } + function merge(defaults, route, options) { + if ("string" == typeof route) { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); + } else options = Object.assign({}, route); + options.headers = dist_bundle_lowercaseKeys(options.headers); + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + if ("/graphql" === options.url) { + if (defaults && defaults.mediaType.previews?.length) mergedOptions.mediaType.previews = defaults.mediaType.previews.filter((preview)=>!mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); + mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview)=>preview.replace(/-preview/, "")); + } + return mergedOptions; + } + function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (0 === names.length) return url; + return url + separator + names.map((name)=>{ + if ("q" === name) return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); + } + var urlVariableRegex = /\{[^{}}]+\}/g; + function removeNonChars(variableName) { + return variableName.replace(/(?:^\W+)|(?:(?a.concat(b), []); + } + function omit(object, keysToOmit) { + const result = { + __proto__: null + }; + for (const key of Object.keys(object))if (-1 === keysToOmit.indexOf(key)) 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(); }); - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.DOMString); - webidl.converters['DOMString or sequence'] = function(V, prefix, argument) { - if ('Object' === webidl.util.Type(V) && Symbol.iterator in V) return webidl.converters['sequence'](V); - return webidl.converters.DOMString(V, prefix, argument); + } + function encodeValue(operator, value, key) { + value = "+" === operator || "#" === operator ? encodeReserved(value) : encodeUnreserved(value); + if (key) return encodeUnreserved(key) + "=" + value; + return value; + } + function isDefined(value) { + return null != value; + } + function isKeyOperator(operator) { + return ";" === operator || "&" === operator || "?" === operator; + } + function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && "" !== value) if ("string" == typeof value || "number" == typeof value || "bigint" == typeof value || "boolean" == typeof value) { + 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 (0 !== tmp.length) 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) }; - webidl.converters.WebSocketInit = webidl.dictionaryConverter([ - { - key: 'protocols', - converter: webidl.converters['DOMString or sequence'], - defaultValue: ()=>new Array(0) - }, - { - key: 'dispatcher', - converter: webidl.converters.any, - defaultValue: ()=>getGlobalDispatcher() - }, + } + function expand(template, context) { + var operators = [ + "+", + "#", + ".", + "/", + ";", + "?", + "&" + ]; + template = template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function(_, expression, literal) { + if (!expression) return encodeReserved(literal); { - key: 'headers', - converter: webidl.nullableConverter(webidl.converters.HeadersInit) + let operator = ""; + const values = []; + if (-1 !== operators.indexOf(expression.charAt(0))) { + 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) return values.join(","); + var separator = ","; + if ("?" === operator) separator = "&"; + else if ("#" !== operator) separator = operator; + return (0 !== values.length ? operator : "") + values.join(separator); } + }); + if ("/" === template) return template; + return template.replace(/\/$/, ""); + } + function parse(options) { + let method = options.method.toUpperCase(); + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType" ]); - webidl.converters['DOMString or sequence or WebSocketInit'] = function(V) { - if ('Object' === webidl.util.Type(V) && !(Symbol.iterator in V)) return webidl.converters.WebSocketInit(V); - return { - protocols: webidl.converters['DOMString or sequence'](V) - }; - }; - webidl.converters.WebSocketSendData = function(V) { - if ('Object' === webidl.util.Type(V)) { - if (isBlobLike(V)) return webidl.converters.Blob(V, { - strict: false - }); - if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) return webidl.converters.BufferSource(V); + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) url = options.baseUrl + url; + const omittedParameters = Object.keys(options).filter((option)=>urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) headers.accept = headers.accept.split(/,/).map((format)=>format.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + if (url.endsWith("/graphql")) { + if (options.mediaType.previews?.length) { + const previewsFromAcceptHeader = headers.accept.match(/(?{ + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } } - return webidl.converters.USVString(V); - }; - function onParserDrain() { - this.ws[kResponse].socket.resume(); } - function onParserError(err) { - let message; - let code; - if (err instanceof CloseEvent) { - message = err.reason; - code = err.code; - } else message = err.message; - fireEvent('error', this, ()=>new ErrorEvent('error', { - error: err, - message - })); - closeWebSocketConnection(this, code); + 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"] && void 0 !== body) headers["content-type"] = "application/json; charset=utf-8"; + if ([ + "PATCH", + "PUT" + ].includes(method) && void 0 === body) body = ""; + return Object.assign({ + method, + url, + headers + }, void 0 !== body ? { + 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 dist_bundle_endpoint = withDefaults(null, DEFAULTS); + var dist = __webpack_require__("../node_modules/.pnpm/content-type@2.0.0/node_modules/content-type/dist/index.js"); + const intRegex = /^-?\d+$/; + const noiseValue = /^-?\d+n+$/; + const originalStringify = JSON.stringify; + const originalParse = JSON.parse; + const customFormat = /^-?\d+n$/; + const bigIntsStringify = /([\[:])?"(-?\d+)n"($|([\\n]|\s)*(\s|[\\n])*[,\}\]])/g; + const noiseStringify = /([\[:])?("-?\d+n+)n("$|"([\\n]|\s)*(\s|[\\n])*[,\}\]])/g; + const JSONStringify = (value, replacer, space)=>{ + if ("rawJSON" in JSON) return originalStringify(value, (key, value)=>{ + if ("bigint" == typeof value) return JSON.rawJSON(value.toString()); + if ("function" == typeof replacer) return replacer(key, value); + Array.isArray(replacer) && replacer.includes(key); + return value; + }, space); + if (!value) return originalStringify(value, replacer, space); + const convertedToCustomJSON = originalStringify(value, (key, value)=>{ + const isNoise = "string" == typeof value && noiseValue.test(value); + if (isNoise) return value.toString() + "n"; + if ("bigint" == typeof value) return value.toString() + "n"; + if ("function" == typeof replacer) return replacer(key, value); + Array.isArray(replacer) && replacer.includes(key); + return value; + }, space); + const processedJSON = convertedToCustomJSON.replace(bigIntsStringify, "$1$2$3"); + const denoisedJSON = processedJSON.replace(noiseStringify, "$1$2$3"); + return denoisedJSON; + }; + const featureCache = new Map(); + const isContextSourceSupported = ()=>{ + const parseFingerprint = JSON.parse.toString(); + if (featureCache.has(parseFingerprint)) return featureCache.get(parseFingerprint); + try { + const result = JSON.parse("1", (_, __, context)=>!!context?.source && "1" === context.source); + featureCache.set(parseFingerprint, result); + return result; + } catch { + featureCache.set(parseFingerprint, false); + return false; } - module.exports = { - WebSocket - }; - }, - "../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js" (module, __unused_rspack_exports, __webpack_require__) { - const isWindows = 'win32' === process.platform || 'cygwin' === process.env.OSTYPE || 'msys' === process.env.OSTYPE; - const path = __webpack_require__("path"); - const COLON = isWindows ? ';' : ':'; - const isexe = __webpack_require__("../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js"); - const getNotFoundError = (cmd)=>Object.assign(new Error(`not found: ${cmd}`), { - code: 'ENOENT' + }; + const convertMarkedBigIntsReviver = (key, value, context, userReviver)=>{ + const isCustomFormatBigInt = "string" == typeof value && customFormat.test(value); + if (isCustomFormatBigInt) return BigInt(value.slice(0, -1)); + const isNoiseValue = "string" == typeof value && noiseValue.test(value); + if (isNoiseValue) return value.slice(0, -1); + if ("function" != typeof userReviver) return value; + return userReviver(key, value, context); + }; + const JSONParseV2 = (text, reviver)=>JSON.parse(text, (key, value, context)=>{ + const isBigNumber = "number" == typeof value && (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER); + const isInt = context && intRegex.test(context.source); + const isBigInt = isBigNumber && isInt; + if (isBigInt) return BigInt(context.source); + if ("function" != typeof reviver) return value; + return reviver(key, value, context); + }); + const MAX_INT = Number.MAX_SAFE_INTEGER.toString(); + const MAX_DIGITS = MAX_INT.length; + const stringsOrLargeNumbers = /"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g; + const noiseValueWithQuotes = /^"-?\d+n+"$/; + const JSONParse = (text, reviver)=>{ + if (!text) return originalParse(text, reviver); + if (isContextSourceSupported()) return JSONParseV2(text, reviver); + const serializedData = text.replace(stringsOrLargeNumbers, (text, digits, fractional, exponential)=>{ + const isString = '"' === text[0]; + const isNoise = isString && noiseValueWithQuotes.test(text); + if (isNoise) return text.substring(0, text.length - 1) + 'n"'; + const isFractionalOrExponential = fractional || exponential; + const isLessThanMaxSafeInt = digits && (digits.length < MAX_DIGITS || digits.length === MAX_DIGITS && digits <= MAX_INT); + if (isString || isFractionalOrExponential || isLessThanMaxSafeInt) return text; + return '"' + text + 'n"'; + }); + return originalParse(serializedData, (key, value, context)=>convertMarkedBigIntsReviver(key, value, context, reviver)); + }; + class RequestError extends Error { + name; + status; + request; + response; + constructor(message, statusCode, options){ + super(message, { + cause: options.cause + }); + this.name = "HttpError"; + this.status = Number.parseInt(statusCode); + if (Number.isNaN(this.status)) this.status = 0; + /* v8 ignore else -- @preserve -- Bug with vitest coverage where it sees an else branch that doesn't exist */ if ("response" in options) this.response = options.response; + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/(?""; + async function fetchWrapper(requestOptions) { + const fetch = requestOptions.request?.fetch || globalThis.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"); + const log = requestOptions.request?.log || console; + const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false; + const body = dist_bundle_isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body) ? JSONStringify(requestOptions.body) : requestOptions.body; + const requestHeaders = Object.fromEntries(Object.entries(requestOptions.headers).map(([name, value])=>[ + name, + String(value) + ])); + let fetchResponse; + try { + fetchResponse = await fetch(requestOptions.url, { + method: requestOptions.method, + body, + redirect: requestOptions.request?.redirect, + headers: requestHeaders, + signal: requestOptions.request?.signal, + ...requestOptions.body && { + duplex: "half" + } }); - const getPathInfo = (cmd, opt)=>{ - const colon = opt.colon || COLON; - const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? [ - '' - ] : [ - ...isWindows ? [ - process.cwd() - ] : [], - ...(opt.path || process.env.PATH || '').split(colon) - ]; - const pathExtExe = isWindows ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM' : ''; - const pathExt = isWindows ? pathExtExe.split(colon) : [ - '' - ]; - if (isWindows) { - if (-1 !== cmd.indexOf('.') && '' !== pathExt[0]) pathExt.unshift(''); + } catch (error) { + let message = "Unknown Error"; + if (error instanceof Error) { + if ("AbortError" === error.name) { + error.status = 500; + throw error; + } + message = error.message; + if ("TypeError" === error.name && "cause" in error) { + if (error.cause instanceof Error) message = error.cause.message; + else if ("string" == typeof error.cause) message = error.cause; + } } - return { - pathEnv, - pathExt, - pathExtExe - }; + const requestError = new RequestError(message, 500, { + request: requestOptions + }); + requestError.cause = error; + throw requestError; + } + const status = fetchResponse.status; + const url = fetchResponse.url; + const responseHeaders = {}; + for (const [key, value] of fetchResponse.headers)responseHeaders[key] = value; + const octokitResponse = { + url, + status, + headers: responseHeaders, + data: "" }; - const which = (cmd, opt, cb)=>{ - if ('function' == typeof opt) { - cb = opt; - opt = {}; + if ("deprecation" in responseHeaders) { + const matches = responseHeaders.link && responseHeaders.link.match(/<([^<>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn(`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); + } + if (204 === status || 205 === status) return octokitResponse; + if ("HEAD" === requestOptions.method) { + if (status < 400) return octokitResponse; + throw new RequestError(fetchResponse.statusText, status, { + response: octokitResponse, + request: requestOptions + }); + } + if (304 === status) { + octokitResponse.data = await getResponseData(fetchResponse); + throw new RequestError("Not modified", status, { + response: octokitResponse, + request: requestOptions + }); + } + if (status >= 400) { + octokitResponse.data = await getResponseData(fetchResponse); + throw new RequestError(toErrorMessage(octokitResponse.data), status, { + response: octokitResponse, + request: requestOptions + }); + } + octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body; + return octokitResponse; + } + async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (!contentType) return response.text().catch(noop); + const mimetype = (0, dist.qg)(contentType); + if (isJSONResponse(mimetype)) { + let text = ""; + try { + text = await response.text(); + return JSONParse(text); + } catch (err) { + return text; } - if (!opt) opt = {}; - const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt); - const found = []; - const step = (i)=>new Promise((resolve, reject)=>{ - if (i === pathEnv.length) return opt.all && found.length ? resolve(found) : reject(getNotFoundError(cmd)); - const ppRaw = pathEnv[i]; - const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw; - const pCmd = path.join(pathPart, cmd); - const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd; - resolve(subStep(p, i, 0)); - }); - const subStep = (p, i, ii)=>new Promise((resolve, reject)=>{ - if (ii === pathExt.length) return resolve(step(i + 1)); - const ext = pathExt[ii]; - isexe(p + ext, { - pathExt: pathExtExe - }, (er, is)=>{ - if (!er && is) if (!opt.all) return resolve(p + ext); - else found.push(p + ext); - return resolve(subStep(p, i, ii + 1)); - }); - }); - return cb ? step(0).then((res)=>cb(null, res), cb) : step(0); + } + if (mimetype.type.startsWith("text/") || mimetype.parameters.charset?.toLowerCase() === "utf-8") return response.text().catch(noop); + return response.arrayBuffer().catch(/* v8 ignore next -- @preserve */ ()=>new ArrayBuffer(0)); + } + function isJSONResponse(mimetype) { + return "application/json" === mimetype.type || "application/scim+json" === mimetype.type; + } + function toErrorMessage(data) { + if ("string" == typeof data) return data; + if (data instanceof ArrayBuffer) return "Unknown error"; + if ("message" in data) { + const suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : ""; + return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v)=>JSON.stringify(v)).join(", ")}${suffix}` : `${data.message}${suffix}`; + } + return `Unknown error: ${JSON.stringify(data)}`; + } + function dist_bundle_withDefaults(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)=>fetchWrapper(endpoint2.parse(endpoint2.merge(route2, parameters2))); + Object.assign(request2, { + endpoint: endpoint2, + defaults: dist_bundle_withDefaults.bind(null, endpoint2) + }); + return endpointOptions.request.hook(request2, endpointOptions); + }; + return Object.assign(newApi, { + endpoint: endpoint2, + defaults: dist_bundle_withDefaults.bind(null, endpoint2) + }); + } + var dist_bundle_request = dist_bundle_withDefaults(dist_bundle_endpoint, defaults_default); + var graphql_dist_bundle_VERSION = "0.0.0-development"; + function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors: +` + data.errors.map((e)=>` - ${e.message}`).join("\n"); + } + var GraphqlResponseError = class extends Error { + constructor(request2, headers, response){ + super(_buildMessageForResponseErrors(response)); + this.request = request2; + this.headers = headers; + this.response = response; + this.errors = response.errors; + this.data = response.data; + if (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor); + } + name = "GraphqlResponseError"; + errors; + data; + }; + var NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType", + "operationName" + ]; + var FORBIDDEN_VARIABLE_OPTIONS = [ + "query", + "method", + "url" + ]; + var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; + function graphql(request2, query, options) { + if (options) { + if ("string" == typeof query && "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)) return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`)); + } + const parsedOptions = "string" == typeof query ? 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 graphql_dist_bundle_withDefaults(request2, newDefaults) { + const newRequest = request2.defaults(newDefaults); + const newApi = (query, options)=>graphql(newRequest, query, options); + return Object.assign(newApi, { + defaults: graphql_dist_bundle_withDefaults.bind(null, newRequest), + endpoint: newRequest.endpoint + }); + } + graphql_dist_bundle_withDefaults(dist_bundle_request, { + headers: { + "user-agent": `octokit-graphql.js/${graphql_dist_bundle_VERSION} ${getUserAgent()}` + }, + method: "POST", + url: "/graphql" + }); + function withCustomRequest(customRequest) { + return graphql_dist_bundle_withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); + } + var b64url = "(?:[a-zA-Z0-9_-]+)"; + var sep = "\\."; + var jwtRE = new RegExp(`^${b64url}${sep}${b64url}${sep}${b64url}$`); + var isJWT = jwtRE.test.bind(jwtRE); + async function dist_bundle_auth(token) { + const isApp = isJWT(token); + const isInstallation = token.startsWith("v1.") || token.startsWith("ghs_"); + const isUserToServer = token.startsWith("ghu_"); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token, + tokenType }; - const whichSync = (cmd, opt)=>{ - opt = opt || {}; - const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt); - const found = []; - for(let i = 0; i < pathEnv.length; i++){ - const ppRaw = pathEnv[i]; - const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw; - const pCmd = path.join(pathPart, cmd); - const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd; - for(let j = 0; j < pathExt.length; j++){ - const cur = p + pathExt[j]; - try { - const is = isexe.sync(cur, { - pathExt: pathExtExe - }); - if (is) if (!opt.all) return cur; - else found.push(cur); - } catch (ex) {} + } + function withAuthorizationPrefix(token) { + if (3 === token.split(/\./).length) return `bearer ${token}`; + return `token ${token}`; + } + async function dist_bundle_hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); + } + var createTokenAuth = function(token) { + if (!token) throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + if ("string" != typeof token) throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(dist_bundle_auth.bind(null, token), { + hook: dist_bundle_hook.bind(null, token) + }); + }; + const dist_src_noop = ()=>{}; + const consoleWarn = console.warn.bind(console); + const consoleError = console.error.bind(console); + function createLogger(logger = {}) { + if ("function" != typeof logger.debug) logger.debug = dist_src_noop; + if ("function" != typeof logger.info) logger.info = dist_src_noop; + if ("function" != typeof logger.warn) logger.warn = consoleWarn; + if ("function" != typeof logger.error) logger.error = consoleError; + return logger; + } + const userAgentTrail = `octokit-core.js/7.0.6 ${getUserAgent()}`; + class Octokit { + static VERSION = "7.0.6"; + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args){ + const options = args[0] || {}; + if ("function" == typeof defaults) return void super(defaults(options)); + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } + }; + return OctokitWithDefaults; + } + static plugins = []; + static plugin(...newPlugins) { + const currentPlugins = this.plugins; + const NewOctokit = class extends this { + static plugins = currentPlugins.concat(newPlugins.filter((plugin)=>!currentPlugins.includes(plugin))); + }; + return NewOctokit; + } + constructor(options = {}){ + const hook = new before_after_hook.Collection(); + const requestDefaults = { + baseUrl: dist_bundle_request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; + requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; + if (options.baseUrl) requestDefaults.baseUrl = options.baseUrl; + if (options.previews) requestDefaults.mediaType.previews = options.previews; + if (options.timeZone) requestDefaults.headers["time-zone"] = options.timeZone; + this.request = dist_bundle_request.defaults(requestDefaults); + this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.log = createLogger(options.log); + this.hook = hook; + if (options.authStrategy) { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy(Object.assign({ + request: this.request, + log: this.log, + octokit: this, + octokitOptions: otherOptions + }, options.auth)); + hook.wrap("request", auth.hook); + this.auth = auth; + } else if (options.auth) { + const auth = createTokenAuth(options.auth); + hook.wrap("request", auth.hook); + this.auth = auth; + } else this.auth = async ()=>({ + type: "unauthenticated" + }); + const classConstructor = this.constructor; + for(let i = 0; i < classConstructor.plugins.length; ++i)Object.assign(this, classConstructor.plugins[i](this, options)); + } + request; + graphql; + log; + hook; + auth; + } + const Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: [ + "POST /orgs/{org}/actions/runners/{runner_id}/labels" + ], + addCustomLabelsToSelfHostedRunnerForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + addRepoAccessToSelfHostedRunnerGroupInOrg: [ + "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}" + ], + 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" + ], + createHostedRunnerForOrg: [ + "POST /orgs/{org}/actions/hosted-runners" + ], + 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}" + ], + deleteCustomImageFromOrg: [ + "DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}" + ], + deleteCustomImageVersionFromOrg: [ + "DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}" + ], + deleteEnvironmentSecret: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" + ], + deleteEnvironmentVariable: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" + ], + deleteHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}" + ], + 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}" + ], + getCustomImageForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}" + ], + getCustomImageVersionForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}" + ], + 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" + ], + getHostedRunnerForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}" + ], + getHostedRunnersGithubOwnedImagesForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/github-owned" + ], + getHostedRunnersLimitsForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/limits" + ], + getHostedRunnersMachineSpecsForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/machine-sizes" + ], + getHostedRunnersPartnerImagesForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/partner" + ], + getHostedRunnersPlatformsForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/platforms" + ], + 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" + ], + listCustomImageVersionsForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions" + ], + listCustomImagesForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/custom" + ], + listEnvironmentSecrets: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets" + ], + listEnvironmentVariables: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/variables" + ], + listGithubHostedRunnersInGroupForOrg: [ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners" + ], + listHostedRunnersForOrg: [ + "GET /orgs/{org}/actions/hosted-runners" + ], + 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}" + ], + updateHostedRunnerForOrg: [ + "PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}" + ], + 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" + ], + getGithubBillingPremiumRequestUsageReportOrg: [ + "GET /organizations/{org}/settings/billing/premium_request/usage" + ], + getGithubBillingPremiumRequestUsageReportUser: [ + "GET /users/{username}/settings/billing/premium_request/usage" + ], + getGithubBillingUsageReportOrg: [ + "GET /organizations/{org}/settings/billing/usage" + ], + getGithubBillingUsageReportUser: [ + "GET /users/{username}/settings/billing/usage" + ], + 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" + ] + }, + campaigns: { + createCampaign: [ + "POST /orgs/{org}/campaigns" + ], + deleteCampaign: [ + "DELETE /orgs/{org}/campaigns/{campaign_number}" + ], + getCampaignSummary: [ + "GET /orgs/{org}/campaigns/{campaign_number}" + ], + listOrgCampaigns: [ + "GET /orgs/{org}/campaigns" + ], + updateCampaign: [ + "PATCH /orgs/{org}/campaigns/{campaign_number}" + ] + }, + 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: { + commitAutofix: [ + "POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits" + ], + createAutofix: [ + "POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix" + ], + createVariantAnalysis: [ + "POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses" + ], + deleteAnalysis: [ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" + ], + deleteCodeqlDatabase: [ + "DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" + ], + 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}" + ], + getAutofix: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix" + ], + 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}" + ], + getVariantAnalysis: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}" + ], + getVariantAnalysisRepoTask: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}" + ], + 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" + ] + }, + codeSecurity: { + attachConfiguration: [ + "POST /orgs/{org}/code-security/configurations/{configuration_id}/attach" + ], + attachEnterpriseConfiguration: [ + "POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach" + ], + createConfiguration: [ + "POST /orgs/{org}/code-security/configurations" + ], + createConfigurationForEnterprise: [ + "POST /enterprises/{enterprise}/code-security/configurations" + ], + deleteConfiguration: [ + "DELETE /orgs/{org}/code-security/configurations/{configuration_id}" + ], + deleteConfigurationForEnterprise: [ + "DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}" + ], + detachConfiguration: [ + "DELETE /orgs/{org}/code-security/configurations/detach" + ], + getConfiguration: [ + "GET /orgs/{org}/code-security/configurations/{configuration_id}" + ], + getConfigurationForRepository: [ + "GET /repos/{owner}/{repo}/code-security-configuration" + ], + getConfigurationsForEnterprise: [ + "GET /enterprises/{enterprise}/code-security/configurations" + ], + getConfigurationsForOrg: [ + "GET /orgs/{org}/code-security/configurations" + ], + getDefaultConfigurations: [ + "GET /orgs/{org}/code-security/configurations/defaults" + ], + getDefaultConfigurationsForEnterprise: [ + "GET /enterprises/{enterprise}/code-security/configurations/defaults" + ], + getRepositoriesForConfiguration: [ + "GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories" + ], + getRepositoriesForEnterpriseConfiguration: [ + "GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories" + ], + getSingleConfigurationForEnterprise: [ + "GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}" + ], + setConfigurationAsDefault: [ + "PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults" + ], + setConfigurationAsDefaultForEnterprise: [ + "PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults" + ], + updateConfiguration: [ + "PATCH /orgs/{org}/code-security/configurations/{configuration_id}" + ], + updateEnterpriseConfiguration: [ + "PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}" + ] + }, + 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" + ], + copilotMetricsForOrganization: [ + "GET /orgs/{org}/copilot/metrics" + ], + copilotMetricsForTeam: [ + "GET /orgs/{org}/team/{team_slug}/copilot/metrics" + ], + getCopilotOrganizationDetails: [ + "GET /orgs/{org}/copilot/billing" + ], + getCopilotSeatDetailsForUser: [ + "GET /orgs/{org}/members/{username}/copilot" + ], + listCopilotSeats: [ + "GET /orgs/{org}/copilot/billing/seats" + ] + }, + credentials: { + revoke: [ + "POST /credentials/revoke" + ] + }, + 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}" + ], + repositoryAccessForOrg: [ + "GET /organizations/{org}/dependabot/repository-access" + ], + setRepositoryAccessDefaultLevel: [ + "PUT /organizations/{org}/dependabot/repository-access/default-level" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" + ], + updateRepositoryAccessForOrg: [ + "PATCH /organizations/{org}/dependabot/repository-access" + ] + }, + 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" + ] + }, + enterpriseTeamMemberships: { + add: [ + "PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}" + ], + bulkAdd: [ + "POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add" + ], + bulkRemove: [ + "POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove" + ], + get: [ + "GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}" + ], + list: [ + "GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships" + ], + remove: [ + "DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}" + ] + }, + enterpriseTeamOrganizations: { + add: [ + "PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}" + ], + bulkAdd: [ + "POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add" + ], + bulkRemove: [ + "POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove" + ], + delete: [ + "DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}" + ], + getAssignment: [ + "GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}" + ], + getAssignments: [ + "GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations" + ] + }, + enterpriseTeams: { + create: [ + "POST /enterprises/{enterprise}/teams" + ], + delete: [ + "DELETE /enterprises/{enterprise}/teams/{team_slug}" + ], + get: [ + "GET /enterprises/{enterprise}/teams/{team_slug}" + ], + list: [ + "GET /enterprises/{enterprise}/teams" + ], + update: [ + "PATCH /enterprises/{enterprise}/teams/{team_slug}" + ] + }, + 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}" + ] + }, + hostedCompute: { + createNetworkConfigurationForOrg: [ + "POST /orgs/{org}/settings/network-configurations" + ], + deleteNetworkConfigurationFromOrg: [ + "DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}" + ], + getNetworkConfigurationForOrg: [ + "GET /orgs/{org}/settings/network-configurations/{network_configuration_id}" + ], + getNetworkSettingsForOrg: [ + "GET /orgs/{org}/settings/network-settings/{network_settings_id}" + ], + listNetworkConfigurationsForOrg: [ + "GET /orgs/{org}/settings/network-configurations" + ], + updateNetworkConfigurationForOrg: [ + "PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}" + ] + }, + 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" + ], + addBlockedByDependency: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by" + ], + addLabels: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + addSubIssue: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues" + ], + 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}" + ], + getParent: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/parent" + ], + 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" + ], + listDependenciesBlockedBy: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by" + ], + listDependenciesBlocking: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking" + ], + 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" + ], + listSubIssues: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues" + ], + 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" + ], + removeDependencyBlockedBy: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}" + ], + removeLabel: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" + ], + removeSubIssue: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue" + ], + reprioritizeSubIssue: [ + "PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority" + ], + 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}", + {}, + { + deprecated: "octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team" + } + ], + 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}" + ], + createArtifactStorageRecord: [ + "POST /orgs/{org}/artifacts/metadata/storage-record" + ], + createInvitation: [ + "POST /orgs/{org}/invitations" + ], + createIssueType: [ + "POST /orgs/{org}/issue-types" + ], + createWebhook: [ + "POST /orgs/{org}/hooks" + ], + customPropertiesForOrgsCreateOrUpdateOrganizationValues: [ + "PATCH /organizations/{org}/org-properties/values" + ], + customPropertiesForOrgsGetOrganizationValues: [ + "GET /organizations/{org}/org-properties/values" + ], + customPropertiesForReposCreateOrUpdateOrganizationDefinition: [ + "PUT /orgs/{org}/properties/schema/{custom_property_name}" + ], + customPropertiesForReposCreateOrUpdateOrganizationDefinitions: [ + "PATCH /orgs/{org}/properties/schema" + ], + customPropertiesForReposCreateOrUpdateOrganizationValues: [ + "PATCH /orgs/{org}/properties/values" + ], + customPropertiesForReposDeleteOrganizationDefinition: [ + "DELETE /orgs/{org}/properties/schema/{custom_property_name}" + ], + customPropertiesForReposGetOrganizationDefinition: [ + "GET /orgs/{org}/properties/schema/{custom_property_name}" + ], + customPropertiesForReposGetOrganizationDefinitions: [ + "GET /orgs/{org}/properties/schema" + ], + customPropertiesForReposGetOrganizationValues: [ + "GET /orgs/{org}/properties/values" + ], + delete: [ + "DELETE /orgs/{org}" + ], + deleteAttestationsBulk: [ + "POST /orgs/{org}/attestations/delete-request" + ], + deleteAttestationsById: [ + "DELETE /orgs/{org}/attestations/{attestation_id}" + ], + deleteAttestationsBySubjectDigest: [ + "DELETE /orgs/{org}/attestations/digest/{subject_digest}" + ], + deleteIssueType: [ + "DELETE /orgs/{org}/issue-types/{issue_type_id}" + ], + deleteWebhook: [ + "DELETE /orgs/{org}/hooks/{hook_id}" + ], + disableSelectedRepositoryImmutableReleasesOrganization: [ + "DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}" + ], + enableSelectedRepositoryImmutableReleasesOrganization: [ + "PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}" + ], + get: [ + "GET /orgs/{org}" + ], + getImmutableReleasesSettings: [ + "GET /orgs/{org}/settings/immutable-releases" + ], + getImmutableReleasesSettingsRepositories: [ + "GET /orgs/{org}/settings/immutable-releases/repositories" + ], + getMembershipForAuthenticatedUser: [ + "GET /user/memberships/orgs/{org}" + ], + getMembershipForUser: [ + "GET /orgs/{org}/memberships/{username}" + ], + getOrgRole: [ + "GET /orgs/{org}/organization-roles/{role_id}" + ], + getOrgRulesetHistory: [ + "GET /orgs/{org}/rulesets/{ruleset_id}/history" + ], + getOrgRulesetVersion: [ + "GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_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" + ], + listArtifactStorageRecords: [ + "GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records" + ], + listAttestationRepositories: [ + "GET /orgs/{org}/attestations/repositories" + ], + listAttestations: [ + "GET /orgs/{org}/attestations/{subject_digest}" + ], + listAttestationsBulk: [ + "POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}" + ], + listBlockedUsers: [ + "GET /orgs/{org}/blocks" + ], + listFailedInvitations: [ + "GET /orgs/{org}/failed_invitations" + ], + listForAuthenticatedUser: [ + "GET /user/orgs" + ], + listForUser: [ + "GET /users/{username}/orgs" + ], + listInvitationTeams: [ + "GET /orgs/{org}/invitations/{invitation_id}/teams" + ], + listIssueTypes: [ + "GET /orgs/{org}/issue-types" + ], + 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", + {}, + { + deprecated: "octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams" + } + ], + listWebhookDeliveries: [ + "GET /orgs/{org}/hooks/{hook_id}/deliveries" + ], + listWebhooks: [ + "GET /orgs/{org}/hooks" + ], + pingWebhook: [ + "POST /orgs/{org}/hooks/{hook_id}/pings" + ], + redeliverWebhookDelivery: [ + "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + 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}", + {}, + { + deprecated: "octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team" + } + ], + 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}" + ], + setImmutableReleasesSettings: [ + "PUT /orgs/{org}/settings/immutable-releases" + ], + setImmutableReleasesSettingsRepositories: [ + "PUT /orgs/{org}/settings/immutable-releases/repositories" + ], + setMembershipForUser: [ + "PUT /orgs/{org}/memberships/{username}" + ], + setPublicMembershipForAuthenticatedUser: [ + "PUT /orgs/{org}/public_members/{username}" + ], + unblockUser: [ + "DELETE /orgs/{org}/blocks/{username}" + ], + update: [ + "PATCH /orgs/{org}" + ], + updateIssueType: [ + "PUT /orgs/{org}/issue-types/{issue_type_id}" + ], + 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" + ] + }, + privateRegistries: { + createOrgPrivateRegistry: [ + "POST /orgs/{org}/private-registries" + ], + deleteOrgPrivateRegistry: [ + "DELETE /orgs/{org}/private-registries/{secret_name}" + ], + getOrgPrivateRegistry: [ + "GET /orgs/{org}/private-registries/{secret_name}" + ], + getOrgPublicKey: [ + "GET /orgs/{org}/private-registries/public-key" + ], + listOrgPrivateRegistries: [ + "GET /orgs/{org}/private-registries" + ], + updateOrgPrivateRegistry: [ + "PATCH /orgs/{org}/private-registries/{secret_name}" + ] + }, + projects: { + addItemForOrg: [ + "POST /orgs/{org}/projectsV2/{project_number}/items" + ], + addItemForUser: [ + "POST /users/{username}/projectsV2/{project_number}/items" + ], + deleteItemForOrg: [ + "DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}" + ], + deleteItemForUser: [ + "DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}" + ], + getFieldForOrg: [ + "GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}" + ], + getFieldForUser: [ + "GET /users/{username}/projectsV2/{project_number}/fields/{field_id}" + ], + getForOrg: [ + "GET /orgs/{org}/projectsV2/{project_number}" + ], + getForUser: [ + "GET /users/{username}/projectsV2/{project_number}" + ], + getOrgItem: [ + "GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}" + ], + getUserItem: [ + "GET /users/{username}/projectsV2/{project_number}/items/{item_id}" + ], + listFieldsForOrg: [ + "GET /orgs/{org}/projectsV2/{project_number}/fields" + ], + listFieldsForUser: [ + "GET /users/{username}/projectsV2/{project_number}/fields" + ], + listForOrg: [ + "GET /orgs/{org}/projectsV2" + ], + listForUser: [ + "GET /users/{username}/projectsV2" + ], + listItemsForOrg: [ + "GET /orgs/{org}/projectsV2/{project_number}/items" + ], + listItemsForUser: [ + "GET /users/{username}/projectsV2/{project_number}/items" + ], + updateItemForOrg: [ + "PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}" + ], + updateItemForUser: [ + "PATCH /users/{username}/projectsV2/{project_number}/items/{item_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" + ] } - } - if (opt.all && found.length) return found; - if (opt.nothrow) return null; - throw getNotFoundError(cmd); - }; - module.exports = which; - which.sync = whichSync; - }, - "../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js" (module) { - module.exports = wrappy; - function wrappy(fn, cb) { - if (fn && cb) return wrappy(fn)(cb); - if ('function' != typeof fn) 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 i = 0; i < args.length; i++)args[i] = arguments[i]; - var ret = fn.apply(this, args); - var cb = args[args.length - 1]; - if ('function' == typeof ret && ret !== cb) Object.keys(cb).forEach(function(k) { - ret[k] = cb[k]; - }); - return ret; - } - } - }, - assert (module) { - "use strict"; - module.exports = require("assert"); - }, - async_hooks (module) { - "use strict"; - module.exports = require("async_hooks"); - }, - buffer (module) { - "use strict"; - module.exports = require("buffer"); - }, - child_process (module) { - "use strict"; - module.exports = require("child_process"); - }, - console (module) { - "use strict"; - module.exports = require("console"); - }, - crypto (module) { - "use strict"; - module.exports = require("crypto"); - }, - diagnostics_channel (module) { - "use strict"; - module.exports = require("diagnostics_channel"); - }, - events (module) { - "use strict"; - module.exports = require("events"); - }, - fs (module) { - "use strict"; - module.exports = require("fs"); - }, - http (module) { - "use strict"; - module.exports = require("http"); - }, - http2 (module) { - "use strict"; - module.exports = require("http2"); - }, - https (module) { - "use strict"; - module.exports = require("https"); - }, - net (module) { - "use strict"; - module.exports = require("net"); - }, - "node:assert" (module) { - "use strict"; - module.exports = require("node:assert"); - }, - "node:async_hooks" (module) { - "use strict"; - module.exports = require("node:async_hooks"); - }, - "node:buffer" (module) { - "use strict"; - module.exports = require("node:buffer"); - }, - "node:console" (module) { - "use strict"; - module.exports = require("node:console"); - }, - "node:crypto" (module) { - "use strict"; - module.exports = require("node:crypto"); - }, - "node:diagnostics_channel" (module) { - "use strict"; - module.exports = require("node:diagnostics_channel"); - }, - "node:dns" (module) { - "use strict"; - module.exports = require("node:dns"); - }, - "node:events" (module) { - "use strict"; - module.exports = require("node:events"); - }, - "node:http" (module) { - "use strict"; - module.exports = require("node:http"); - }, - "node:http2" (module) { - "use strict"; - module.exports = require("node:http2"); - }, - "node:net" (module) { - "use strict"; - module.exports = require("node:net"); - }, - "node:perf_hooks" (module) { - "use strict"; - module.exports = require("node:perf_hooks"); - }, - "node:querystring" (module) { - "use strict"; - module.exports = require("node:querystring"); - }, - "node:stream" (module) { - "use strict"; - module.exports = require("node:stream"); - }, - "node:tls" (module) { - "use strict"; - module.exports = require("node:tls"); - }, - "node:url" (module) { - "use strict"; - module.exports = require("node:url"); - }, - "node:util" (module) { - "use strict"; - module.exports = require("node:util"); - }, - "node:util/types" (module) { - "use strict"; - module.exports = require("node:util/types"); - }, - "node:worker_threads" (module) { - "use strict"; - module.exports = require("node:worker_threads"); - }, - "node:zlib" (module) { - "use strict"; - module.exports = require("node:zlib"); - }, - os (module) { - "use strict"; - module.exports = require("os"); - }, - path (module) { - "use strict"; - module.exports = require("path"); - }, - perf_hooks (module) { - "use strict"; - module.exports = require("perf_hooks"); - }, - querystring (module) { - "use strict"; - module.exports = require("querystring"); - }, - stream (module) { - "use strict"; - module.exports = require("stream"); - }, - "stream/web" (module) { - "use strict"; - module.exports = require("stream/web"); - }, - string_decoder (module) { - "use strict"; - module.exports = require("string_decoder"); - }, - tls (module) { - "use strict"; - module.exports = require("tls"); - }, - url (module) { - "use strict"; - module.exports = require("url"); - }, - util (module) { - "use strict"; - module.exports = require("util"); - }, - "util/types" (module) { - "use strict"; - module.exports = require("util/types"); - }, - worker_threads (module) { - "use strict"; - module.exports = require("worker_threads"); - }, - zlib (module) { - "use strict"; - module.exports = require("zlib"); - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const WritableStream = __webpack_require__("node:stream").Writable; - const inherits = __webpack_require__("node:util").inherits; - const StreamSearch = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/streamsearch/sbmh.js"); - const PartStream = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js"); - const HeaderParser = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js"); - const DASH = 45; - const B_ONEDASH = Buffer.from('-'); - const B_CRLF = Buffer.from('\r\n'); - const EMPTY_FN = function() {}; - function Dicer(cfg) { - if (!(this instanceof Dicer)) return new Dicer(cfg); - WritableStream.call(this, cfg); - if (!cfg || !cfg.headerFirst && 'string' != typeof cfg.boundary) throw new TypeError('Boundary required'); - if ('string' == typeof cfg.boundary) this.setBoundary(cfg.boundary); - else this._bparser = void 0; - this._headerFirst = cfg.headerFirst; - this._dashes = 0; - this._parts = 0; - this._finished = false; - this._realFinish = false; - this._isPreamble = true; - this._justMatched = false; - this._firstWrite = true; - this._inHeader = true; - this._part = void 0; - this._cb = void 0; - this._ignoreData = false; - this._partOpts = { - highWaterMark: cfg.partHwm - }; - this._pause = false; - const self = this; - this._hparser = new HeaderParser(cfg); - this._hparser.on('header', function(header) { - self._inHeader = false; - self._part.emit('header', header); - }); - } - inherits(Dicer, WritableStream); - Dicer.prototype.emit = function(ev) { - if ('finish' !== ev || this._realFinish) WritableStream.prototype.emit.apply(this, arguments); - else if (!this._finished) { - const self = this; - process.nextTick(function() { - self.emit('error', new Error('Unexpected end of multipart data')); - if (self._part && !self._ignoreData) { - const type = self._isPreamble ? 'Preamble' : 'Part'; - self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data')); - self._part.push(null); - process.nextTick(function() { - self._realFinish = true; - self.emit('finish'); - self._realFinish = false; - }); - return; - } - self._realFinish = true; - self.emit('finish'); - self._realFinish = false; - }); - } - }; - Dicer.prototype._write = function(data, encoding, cb) { - if (!this._hparser && !this._bparser) return cb(); - if (this._headerFirst && this._isPreamble) { - if (!this._part) { - this._part = new PartStream(this._partOpts); - if (0 !== this.listenerCount('preamble')) this.emit('preamble', this._part); - else this._ignore(); - } - const r = this._hparser.push(data); - if (!!this._inHeader || void 0 === r || !(r < data.length)) return cb(); - data = data.slice(r); - } - if (this._firstWrite) { - this._bparser.push(B_CRLF); - this._firstWrite = false; - } - this._bparser.push(data); - if (this._pause) this._cb = cb; - else cb(); - }; - Dicer.prototype.reset = function() { - this._part = void 0; - this._bparser = void 0; - this._hparser = void 0; - }; - Dicer.prototype.setBoundary = function(boundary) { - const self = this; - this._bparser = new StreamSearch('\r\n--' + boundary); - this._bparser.on('info', function(isMatch, data, start, end) { - self._oninfo(isMatch, data, start, end); - }); - }; - Dicer.prototype._ignore = function() { - if (this._part && !this._ignoreData) { - this._ignoreData = true; - this._part.on('error', EMPTY_FN); - this._part.resume(); - } - }; - Dicer.prototype._oninfo = function(isMatch, data, start, end) { - let buf; - const self = this; - let i = 0; - let r; - let shouldWriteMore = true; - if (!this._part && this._justMatched && data) { - while(this._dashes < 2 && start + i < end)if (data[start + i] === DASH) { - ++i; - ++this._dashes; - } else { - if (this._dashes) buf = B_ONEDASH; - this._dashes = 0; - break; + ], + 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}" + ], + checkImmutableReleases: [ + "GET /repos/{owner}/{repo}/immutable-releases" + ], + 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}" + ], + createAttestation: [ + "POST /repos/{owner}/{repo}/attestations" + ], + 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" + ], + 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" + ], + createUsingTemplate: [ + "POST /repos/{template_owner}/{template_repo}/generate" + ], + createWebhook: [ + "POST /repos/{owner}/{repo}/hooks" + ], + customPropertiesForReposCreateOrUpdateRepositoryValues: [ + "PATCH /repos/{owner}/{repo}/properties/values" + ], + customPropertiesForReposGetRepositoryValues: [ + "GET /repos/{owner}/{repo}/properties/values" + ], + declineInvitation: [ + "DELETE /user/repository_invitations/{invitation_id}", + {}, + { + renamed: [ + "repos", + "declineInvitationForAuthenticatedUser" + ] } - if (2 === this._dashes) { - if (start + i < end && 0 !== this.listenerCount('trailer')) this.emit('trailer', data.slice(start + i, end)); - this.reset(); - this._finished = true; - if (0 === self._parts) { - self._realFinish = true; - self.emit('finish'); - self._realFinish = false; - } + ], + 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}" + ], + 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}" + ], + disableImmutableReleases: [ + "DELETE /repos/{owner}/{repo}/immutable-releases" + ], + 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" + ] } - if (this._dashes) return; - } - if (this._justMatched) this._justMatched = false; - if (!this._part) { - this._part = new PartStream(this._partOpts); - this._part._read = function(n) { - self._unpause(); - }; - if (this._isPreamble && 0 !== this.listenerCount('preamble')) this.emit('preamble', this._part); - else if (true !== this._isPreamble && 0 !== this.listenerCount('part')) this.emit('part', this._part); - else this._ignore(); - if (!this._isPreamble) this._inHeader = true; - } - if (data && start < end && !this._ignoreData) { - if (this._isPreamble || !this._inHeader) { - if (buf) shouldWriteMore = this._part.push(buf); - shouldWriteMore = this._part.push(data.slice(start, end)); - if (!shouldWriteMore) this._pause = true; - } else if (!this._isPreamble && this._inHeader) { - if (buf) this._hparser.push(buf); - r = this._hparser.push(data.slice(start, end)); - if (!this._inHeader && void 0 !== r && r < end) this._oninfo(false, data, start + r, end); - } - } - if (isMatch) { - this._hparser.reset(); - if (this._isPreamble) this._isPreamble = false; - else if (start !== end) { - ++this._parts; - this._part.on('end', function() { - if (0 === --self._parts) if (self._finished) { - self._realFinish = true; - self.emit('finish'); - self._realFinish = false; - } else self._unpause(); - }); + ], + downloadTarballArchive: [ + "GET /repos/{owner}/{repo}/tarball/{ref}" + ], + downloadZipballArchive: [ + "GET /repos/{owner}/{repo}/zipball/{ref}" + ], + enableAutomatedSecurityFixes: [ + "PUT /repos/{owner}/{repo}/automated-security-fixes" + ], + enableImmutableReleases: [ + "PUT /repos/{owner}/{repo}/immutable-releases" + ], + 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}" + ], + 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}" + ], + getRepoRulesetHistory: [ + "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history" + ], + getRepoRulesetVersion: [ + "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_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" + ], + listAttestations: [ + "GET /repos/{owner}/{repo}/attestations/{subject_digest}" + ], + 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" + ], + 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" } - this._part.push(null); - this._part = void 0; - this._ignoreData = false; - this._justMatched = true; - this._dashes = 0; - } - }; - Dicer.prototype._unpause = function() { - if (!this._pause) return; - this._pause = false; - if (this._cb) { - const cb = this._cb; - this._cb = void 0; - cb(); - } - }; - module.exports = Dicer; - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const EventEmitter = __webpack_require__("node:events").EventEmitter; - const inherits = __webpack_require__("node:util").inherits; - const getLimit = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/getLimit.js"); - const StreamSearch = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/streamsearch/sbmh.js"); - const B_DCRLF = Buffer.from('\r\n\r\n'); - const RE_CRLF = /\r\n/g; - const RE_HDR = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/; - function HeaderParser(cfg) { - EventEmitter.call(this); - cfg = cfg || {}; - const self = this; - this.nread = 0; - this.maxed = false; - this.npairs = 0; - this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000); - this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 81920); - this.buffer = ''; - this.header = {}; - this.finished = false; - this.ss = new StreamSearch(B_DCRLF); - this.ss.on('info', function(isMatch, data, start, end) { - if (data && !self.maxed) { - if (self.nread + end - start >= self.maxHeaderSize) { - end = self.maxHeaderSize - self.nread + start; - self.nread = self.maxHeaderSize; - self.maxed = true; - } else self.nread += end - start; - self.buffer += data.toString('binary', start, end); - } - if (isMatch) self._finish(); - }); - } - inherits(HeaderParser, EventEmitter); - HeaderParser.prototype.push = function(data) { - const r = this.ss.push(data); - if (this.finished) return r; - }; - HeaderParser.prototype.reset = function() { - this.finished = false; - this.buffer = ''; - this.header = {}; - this.ss.reset(); - }; - HeaderParser.prototype._finish = function() { - if (this.buffer) this._parseHeader(); - this.ss.matches = this.ss.maxMatches; - const header = this.header; - this.header = {}; - this.buffer = ''; - this.finished = true; - this.nread = this.npairs = 0; - this.maxed = false; - this.emit('header', header); - }; - HeaderParser.prototype._parseHeader = function() { - if (this.npairs === this.maxHeaderPairs) return; - const lines = this.buffer.split(RE_CRLF); - const len = lines.length; - let m, h; - for(var i = 0; i < len; ++i){ - if (0 === lines[i].length) continue; - if ('\t' === lines[i][0] || ' ' === lines[i][0]) { - if (h) { - this.header[h][this.header[h].length - 1] += lines[i]; - continue; - } + ], + removeCollaborator: [ + "DELETE /repos/{owner}/{repo}/collaborators/{username}" + ], + removeStatusCheckContexts: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { + mapToData: "contexts" } - const posColon = lines[i].indexOf(':'); - if (-1 === posColon || 0 === posColon) return; - m = RE_HDR.exec(lines[i]); - h = m[1].toLowerCase(); - this.header[h] = this.header[h] || []; - this.header[h].push(m[2] || ''); - if (++this.npairs === this.maxHeaderPairs) break; - } - }; - module.exports = HeaderParser; - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const inherits = __webpack_require__("node:util").inherits; - const ReadableStream1 = __webpack_require__("node:stream").Readable; - function PartStream(opts) { - ReadableStream1.call(this, opts); - } - inherits(PartStream, ReadableStream1); - PartStream.prototype._read = function(n) {}; - module.exports = PartStream; - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/streamsearch/sbmh.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const EventEmitter = __webpack_require__("node:events").EventEmitter; - const inherits = __webpack_require__("node:util").inherits; - function SBMH(needle) { - if ('string' == typeof needle) needle = Buffer.from(needle); - if (!Buffer.isBuffer(needle)) throw new TypeError('The needle has to be a String or a Buffer.'); - const needleLength = needle.length; - if (0 === needleLength) throw new Error('The needle cannot be an empty String/Buffer.'); - if (needleLength > 256) throw new Error('The needle cannot have a length bigger than 256.'); - this.maxMatches = 1 / 0; - this.matches = 0; - this._occ = new Array(256).fill(needleLength); - this._lookbehind_size = 0; - this._needle = needle; - this._bufpos = 0; - this._lookbehind = Buffer.alloc(needleLength); - for(var i = 0; i < needleLength - 1; ++i)this._occ[needle[i]] = needleLength - 1 - i; - } - inherits(SBMH, EventEmitter); - SBMH.prototype.reset = function() { - this._lookbehind_size = 0; - this.matches = 0; - this._bufpos = 0; - }; - SBMH.prototype.push = function(chunk, pos) { - if (!Buffer.isBuffer(chunk)) chunk = Buffer.from(chunk, 'binary'); - const chlen = chunk.length; - this._bufpos = pos || 0; - let r; - while(r !== chlen && this.matches < this.maxMatches)r = this._sbmh_feed(chunk); - return r; - }; - SBMH.prototype._sbmh_feed = function(data) { - const len = data.length; - const needle = this._needle; - const needleLength = needle.length; - const lastNeedleChar = needle[needleLength - 1]; - let pos = -this._lookbehind_size; - let ch; - if (pos < 0) { - while(pos < 0 && pos <= len - needleLength){ - ch = this._sbmh_lookup_char(data, pos + needleLength - 1); - if (ch === lastNeedleChar && this._sbmh_memcmp(data, pos, needleLength - 1)) { - this._lookbehind_size = 0; - ++this.matches; - this.emit('info', true); - return this._bufpos = pos + needleLength; - } - pos += this._occ[ch]; + ], + 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: { + createPushProtectionBypass: [ + "POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses" + ], + getAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ], + getScanHistory: [ + "GET /repos/{owner}/{repo}/secret-scanning/scan-history" + ], + 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" + ], + listOrgPatternConfigs: [ + "GET /orgs/{org}/secret-scanning/pattern-configurations" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ], + updateOrgPatternConfigs: [ + "PATCH /orgs/{org}/secret-scanning/pattern-configurations" + ] + }, + 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}" + ], + addOrUpdateRepoPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + 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" + ], + listReposInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/repos" + ], + removeMembershipForUserInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + 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" + ] } - if (pos < 0) while(pos < 0 && !this._sbmh_memcmp(data, pos, len - pos))++pos; - if (pos >= 0) { - this.emit('info', false, this._lookbehind, 0, this._lookbehind_size); - this._lookbehind_size = 0; - } else { - const bytesToCutOff = this._lookbehind_size + pos; - if (bytesToCutOff > 0) this.emit('info', false, this._lookbehind, 0, bytesToCutOff); - this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff, this._lookbehind_size - bytesToCutOff); - this._lookbehind_size -= bytesToCutOff; - data.copy(this._lookbehind, this._lookbehind_size); - this._lookbehind_size += len; - this._bufpos = len; - return len; - } - } - pos += (pos >= 0) * this._bufpos; - if (-1 !== data.indexOf(needle, pos)) { - pos = data.indexOf(needle, pos); - ++this.matches; - if (pos > 0) this.emit('info', true, data, this._bufpos, pos); - else this.emit('info', true); - return this._bufpos = pos + needleLength; - } - pos = len - needleLength; - while(pos < len && (data[pos] !== needle[0] || 0 !== Buffer.compare(data.subarray(pos, pos + len - pos), needle.subarray(0, len - pos))))++pos; - if (pos < len) { - data.copy(this._lookbehind, 0, pos, pos + (len - pos)); - this._lookbehind_size = len - pos; - } - if (pos > 0) this.emit('info', false, data, this._bufpos, pos < len ? pos : len); - this._bufpos = len; - return len; - }; - SBMH.prototype._sbmh_lookup_char = function(data, pos) { - return pos < 0 ? this._lookbehind[this._lookbehind_size + pos] : data[pos]; - }; - SBMH.prototype._sbmh_memcmp = function(data, pos, len) { - for(var i = 0; i < len; ++i)if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) return false; - return true; - }; - module.exports = SBMH; - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/main.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const WritableStream = __webpack_require__("node:stream").Writable; - const { inherits } = __webpack_require__("node:util"); - const Dicer = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js"); - const MultipartParser = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/multipart.js"); - const UrlencodedParser = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/urlencoded.js"); - const parseParams = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/parseParams.js"); - function Busboy(opts) { - if (!(this instanceof Busboy)) return new Busboy(opts); - if ('object' != typeof opts) throw new TypeError('Busboy expected an options-Object.'); - if ('object' != typeof opts.headers) throw new TypeError('Busboy expected an options-Object with headers-attribute.'); - if ('string' != typeof opts.headers['content-type']) throw new TypeError('Missing Content-Type-header.'); - const { headers, ...streamOptions } = opts; - this.opts = { - autoDestroy: false, - ...streamOptions - }; - WritableStream.call(this, this.opts); - this._done = false; - this._parser = this.getParserByHeaders(headers); - this._finished = false; - } - inherits(Busboy, WritableStream); - Busboy.prototype.emit = function(ev) { - if ('finish' === ev) { - if (!this._done) return void this._parser?.end(); - if (this._finished) return; - this._finished = true; - } - WritableStream.prototype.emit.apply(this, arguments); - }; - Busboy.prototype.getParserByHeaders = function(headers) { - const parsed = parseParams(headers['content-type']); - const cfg = { - defCharset: this.opts.defCharset, - fileHwm: this.opts.fileHwm, - headers, - highWaterMark: this.opts.highWaterMark, - isPartAFile: this.opts.isPartAFile, - limits: this.opts.limits, - parsedConType: parsed, - preservePath: this.opts.preservePath - }; - if (MultipartParser.detect.test(parsed[0])) return new MultipartParser(this, cfg); - if (UrlencodedParser.detect.test(parsed[0])) return new UrlencodedParser(this, cfg); - throw new Error('Unsupported Content-Type.'); - }; - Busboy.prototype._write = function(chunk, encoding, cb) { - this._parser.write(chunk, cb); - }; - module.exports = Busboy; - module.exports["default"] = Busboy; - module.exports.Busboy = Busboy; - module.exports.Dicer = Dicer; - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/multipart.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Readable } = __webpack_require__("node:stream"); - const { inherits } = __webpack_require__("node:util"); - const Dicer = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js"); - const parseParams = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/parseParams.js"); - const decodeText = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/decodeText.js"); - const basename = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/basename.js"); - const getLimit = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/getLimit.js"); - const RE_BOUNDARY = /^boundary$/i; - const RE_FIELD = /^form-data$/i; - const RE_CHARSET = /^charset$/i; - const RE_FILENAME = /^filename$/i; - const RE_NAME = /^name$/i; - Multipart.detect = /^multipart\/form-data/i; - function Multipart(boy, cfg) { - let i; - let len; - const self = this; - let boundary; - const limits = cfg.limits; - const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName)=>'application/octet-stream' === contentType || void 0 !== fileName); - const parsedConType = cfg.parsedConType || []; - const defCharset = cfg.defCharset || 'utf8'; - const preservePath = cfg.preservePath; - const fileOpts = { - highWaterMark: cfg.fileHwm - }; - for(i = 0, len = parsedConType.length; i < len; ++i)if (Array.isArray(parsedConType[i]) && RE_BOUNDARY.test(parsedConType[i][0])) { - boundary = parsedConType[i][1]; - break; - } - function checkFinished() { - if (0 === nends && finished && !boy._done) { - finished = false; - self.end(); - } - } - if ('string' != typeof boundary) throw new Error('Multipart: Boundary not found'); - const fieldSizeLimit = getLimit(limits, 'fieldSize', 1048576); - const fileSizeLimit = getLimit(limits, 'fileSize', 1 / 0); - const filesLimit = getLimit(limits, 'files', 1 / 0); - const fieldsLimit = getLimit(limits, 'fields', 1 / 0); - const partsLimit = getLimit(limits, 'parts', 1 / 0); - const headerPairsLimit = getLimit(limits, 'headerPairs', 2000); - const headerSizeLimit = getLimit(limits, 'headerSize', 81920); - let nfiles = 0; - let nfields = 0; - let nends = 0; - let curFile; - let curField; - let finished = false; - this._needDrain = false; - this._pause = false; - this._cb = void 0; - this._nparts = 0; - this._boy = boy; - const parserCfg = { - boundary, - maxHeaderPairs: headerPairsLimit, - maxHeaderSize: headerSizeLimit, - partHwm: fileOpts.highWaterMark, - highWaterMark: cfg.highWaterMark - }; - this.parser = new Dicer(parserCfg); - this.parser.on('drain', function() { - self._needDrain = false; - if (self._cb && !self._pause) { - const cb = self._cb; - self._cb = void 0; - cb(); + ], + 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" + ] } - }).on('part', function onPart(part) { - if (++self._nparts > partsLimit) { - self.parser.removeListener('part', onPart); - self.parser.on('part', skipPart); - boy.hitPartsLimit = true; - boy.emit('partsLimit'); - return skipPart(part); - } - if (curField) { - const field = curField; - field.emit('end'); - field.removeAllListeners('end'); - } - part.on('header', function(header) { - let contype; - let fieldname; - let parsed; - let charset; - let encoding; - let filename; - let nsize = 0; - if (header['content-type']) { - parsed = parseParams(header['content-type'][0]); - if (parsed[0]) { - contype = parsed[0].toLowerCase(); - for(i = 0, len = parsed.length; i < len; ++i)if (RE_CHARSET.test(parsed[i][0])) { - charset = parsed[i][1].toLowerCase(); - break; - } - } - } - if (void 0 === contype) contype = 'text/plain'; - if (void 0 === charset) charset = defCharset; - if (!header['content-disposition']) return skipPart(part); - parsed = parseParams(header['content-disposition'][0]); - if (!RE_FIELD.test(parsed[0])) return skipPart(part); - for(i = 0, len = parsed.length; i < len; ++i)if (RE_NAME.test(parsed[i][0])) fieldname = parsed[i][1]; - else if (RE_FILENAME.test(parsed[i][0])) { - filename = parsed[i][1]; - if (!preservePath) filename = basename(filename); - } - encoding = header['content-transfer-encoding'] ? header['content-transfer-encoding'][0].toLowerCase() : '7bit'; - let onData, onEnd; - if (isPartAFile(fieldname, contype, filename)) { - if (nfiles === filesLimit) { - if (!boy.hitFilesLimit) { - boy.hitFilesLimit = true; - boy.emit('filesLimit'); - } - return skipPart(part); - } - ++nfiles; - if (0 === boy.listenerCount('file')) return void self.parser._ignore(); - ++nends; - const file = new FileStream(fileOpts); - curFile = file; - file.on('end', function() { - --nends; - self._pause = false; - checkFinished(); - if (self._cb && !self._needDrain) { - const cb = self._cb; - self._cb = void 0; - cb(); - } - }); - file._read = function(n) { - if (!self._pause) return; - self._pause = false; - if (self._cb && !self._needDrain) { - const cb = self._cb; - self._cb = void 0; - cb(); - } - }; - boy.emit('file', fieldname, file, filename, encoding, contype); - onData = function(data) { - if ((nsize += data.length) > fileSizeLimit) { - const extralen = fileSizeLimit - nsize + data.length; - if (extralen > 0) file.push(data.slice(0, extralen)); - file.truncated = true; - file.bytesRead = fileSizeLimit; - part.removeAllListeners('data'); - file.emit('limit'); - return; - } - if (!file.push(data)) self._pause = true; - file.bytesRead = nsize; - }; - onEnd = function() { - curFile = void 0; - file.push(null); - }; - } else { - if (nfields === fieldsLimit) { - if (!boy.hitFieldsLimit) { - boy.hitFieldsLimit = true; - boy.emit('fieldsLimit'); - } - return skipPart(part); - } - ++nfields; - ++nends; - let buffer = ''; - let truncated = false; - curField = part; - onData = function(data) { - if ((nsize += data.length) > fieldSizeLimit) { - const extralen = fieldSizeLimit - (nsize - data.length); - buffer += data.toString('binary', 0, extralen); - truncated = true; - part.removeAllListeners('data'); - } else buffer += data.toString('binary'); - }; - onEnd = function() { - curField = void 0; - if (buffer.length) buffer = decodeText(buffer, 'binary', charset); - boy.emit('field', fieldname, buffer, false, truncated, encoding, contype); - --nends; - checkFinished(); - }; - } - part._readableState.sync = false; - part.on('data', onData); - part.on('end', onEnd); - }).on('error', function(err) { - if (curFile) curFile.emit('error', err); - }); - }).on('error', function(err) { - boy.emit('error', err); - }).on('finish', function() { - finished = true; - checkFinished(); - }); - } - Multipart.prototype.write = function(chunk, cb) { - const r = this.parser.write(chunk); - if (r && !this._pause) cb(); - else { - this._needDrain = !r; - this._cb = cb; - } - }; - Multipart.prototype.end = function() { - const self = this; - if (self.parser.writable) self.parser.end(); - else if (!self._boy._done) process.nextTick(function() { - self._boy._done = true; - self._boy.emit('finish'); - }); - }; - function skipPart(part) { - part.resume(); - } - function FileStream(opts) { - Readable.call(this, opts); - this.bytesRead = 0; - this.truncated = false; - } - inherits(FileStream, Readable); - FileStream.prototype._read = function(n) {}; - module.exports = Multipart; - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/urlencoded.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const Decoder = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/Decoder.js"); - const decodeText = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/decodeText.js"); - const getLimit = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/getLimit.js"); - const RE_CHARSET = /^charset$/i; - UrlEncoded.detect = /^application\/x-www-form-urlencoded/i; - function UrlEncoded(boy, cfg) { - const limits = cfg.limits; - const parsedConType = cfg.parsedConType; - this.boy = boy; - this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1048576); - this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100); - this.fieldsLimit = getLimit(limits, 'fields', 1 / 0); - let charset; - for(var i = 0, len = parsedConType.length; i < len; ++i)if (Array.isArray(parsedConType[i]) && RE_CHARSET.test(parsedConType[i][0])) { - charset = parsedConType[i][1].toLowerCase(); - break; - } - if (void 0 === charset) charset = cfg.defCharset || 'utf8'; - this.decoder = new Decoder(); - this.charset = charset; - this._fields = 0; - this._state = 'key'; - this._checkingBytes = true; - this._bytesKey = 0; - this._bytesVal = 0; - this._key = ''; - this._val = ''; - this._keyTrunc = false; - this._valTrunc = false; - this._hitLimit = false; - } - UrlEncoded.prototype.write = function(data, cb) { - if (this._fields === this.fieldsLimit) { - if (!this.boy.hitFieldsLimit) { - this.boy.hitFieldsLimit = true; - this.boy.emit('fieldsLimit'); - } - return cb(); - } - let idxeq; - let idxamp; - let i; - let p = 0; - const len = data.length; - while(p < len)if ('key' === this._state) { - idxeq = idxamp = void 0; - for(i = p; i < len; ++i){ - if (!this._checkingBytes) ++p; - if (0x3D === data[i]) { - idxeq = i; - break; - } - if (0x26 === data[i]) { - idxamp = i; - break; - } - if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) { - this._hitLimit = true; - break; - } - if (this._checkingBytes) ++this._bytesKey; - } - if (void 0 !== idxeq) { - if (idxeq > p) this._key += this.decoder.write(data.toString('binary', p, idxeq)); - this._state = 'val'; - this._hitLimit = false; - this._checkingBytes = true; - this._val = ''; - this._bytesVal = 0; - this._valTrunc = false; - this.decoder.reset(); - p = idxeq + 1; - } else if (void 0 !== idxamp) { - ++this._fields; - let key; - const keyTrunc = this._keyTrunc; - key = idxamp > p ? this._key += this.decoder.write(data.toString('binary', p, idxamp)) : this._key; - this._hitLimit = false; - this._checkingBytes = true; - this._key = ''; - this._bytesKey = 0; - this._keyTrunc = false; - this.decoder.reset(); - if (key.length) this.boy.emit('field', decodeText(key, 'binary', this.charset), '', keyTrunc, false); - p = idxamp + 1; - if (this._fields === this.fieldsLimit) return cb(); - } else if (this._hitLimit) { - if (i > p) this._key += this.decoder.write(data.toString('binary', p, i)); - p = i; - if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) { - this._checkingBytes = false; - this._keyTrunc = true; - } - } else { - if (p < len) this._key += this.decoder.write(data.toString('binary', p)); - p = len; + ], + createGpgKeyForAuthenticatedUser: [ + "POST /user/gpg_keys" + ], + createPublicSshKeyForAuthenticated: [ + "POST /user/keys", + {}, + { + renamed: [ + "users", + "createPublicSshKeyForAuthenticatedUser" + ] } - } else { - idxamp = void 0; - for(i = p; i < len; ++i){ - if (!this._checkingBytes) ++p; - if (0x26 === data[i]) { - idxamp = i; - break; - } - if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) { - this._hitLimit = true; - break; - } - if (this._checkingBytes) ++this._bytesVal; - } - if (void 0 !== idxamp) { - ++this._fields; - if (idxamp > p) this._val += this.decoder.write(data.toString('binary', p, idxamp)); - this.boy.emit('field', decodeText(this._key, 'binary', this.charset), decodeText(this._val, 'binary', this.charset), this._keyTrunc, this._valTrunc); - this._state = 'key'; - this._hitLimit = false; - this._checkingBytes = true; - this._key = ''; - this._bytesKey = 0; - this._keyTrunc = false; - this.decoder.reset(); - p = idxamp + 1; - if (this._fields === this.fieldsLimit) return cb(); - } else if (this._hitLimit) { - if (i > p) this._val += this.decoder.write(data.toString('binary', p, i)); - p = i; - if ('' === this._val && 0 === this.fieldSizeLimit || (this._bytesVal = this._val.length) === this.fieldSizeLimit) { - this._checkingBytes = false; - this._valTrunc = true; - } - } else { - if (p < len) this._val += this.decoder.write(data.toString('binary', p)); - p = len; + ], + createPublicSshKeyForAuthenticatedUser: [ + "POST /user/keys" + ], + createSshSigningKeyForAuthenticatedUser: [ + "POST /user/ssh_signing_keys" + ], + deleteAttestationsBulk: [ + "POST /users/{username}/attestations/delete-request" + ], + deleteAttestationsById: [ + "DELETE /users/{username}/attestations/{attestation_id}" + ], + deleteAttestationsBySubjectDigest: [ + "DELETE /users/{username}/attestations/digest/{subject_digest}" + ], + deleteEmailForAuthenticated: [ + "DELETE /user/emails", + {}, + { + renamed: [ + "users", + "deleteEmailForAuthenticatedUser" + ] } - } - cb(); - }; - UrlEncoded.prototype.end = function() { - if (this.boy._done) return; - if ('key' === this._state && this._key.length > 0) this.boy.emit('field', decodeText(this._key, 'binary', this.charset), '', this._keyTrunc, false); - else if ('val' === this._state) this.boy.emit('field', decodeText(this._key, 'binary', this.charset), decodeText(this._val, 'binary', this.charset), this._keyTrunc, this._valTrunc); - this.boy._done = true; - this.boy.emit('finish'); - }; - module.exports = UrlEncoded; - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/Decoder.js" (module) { - "use strict"; - const RE_PLUS = /\+/g; - const HEX = [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ]; - function Decoder() { - this.buffer = void 0; - } - Decoder.prototype.write = function(str) { - str = str.replace(RE_PLUS, ' '); - let res = ''; - let i = 0; - let p = 0; - const len = str.length; - for(; i < len; ++i)if (void 0 !== this.buffer) if (HEX[str.charCodeAt(i)]) { - this.buffer += str[i]; - ++p; - if (2 === this.buffer.length) { - res += String.fromCharCode(parseInt(this.buffer, 16)); - this.buffer = void 0; + ], + deleteEmailForAuthenticatedUser: [ + "DELETE /user/emails" + ], + deleteGpgKeyForAuthenticated: [ + "DELETE /user/gpg_keys/{gpg_key_id}", + {}, + { + renamed: [ + "users", + "deleteGpgKeyForAuthenticatedUser" + ] } - } else { - res += '%' + this.buffer; - this.buffer = void 0; - --i; - } - else if ('%' === str[i]) { - if (i > p) { - res += str.substring(p, i); - p = i; + ], + deleteGpgKeyForAuthenticatedUser: [ + "DELETE /user/gpg_keys/{gpg_key_id}" + ], + deletePublicSshKeyForAuthenticated: [ + "DELETE /user/keys/{key_id}", + {}, + { + renamed: [ + "users", + "deletePublicSshKeyForAuthenticatedUser" + ] } - this.buffer = ''; - ++p; - } - if (p < len && void 0 === this.buffer) res += str.substring(p); - return res; - }; - Decoder.prototype.reset = function() { - this.buffer = void 0; - }; - module.exports = Decoder; - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/basename.js" (module) { - "use strict"; - module.exports = function(path) { - if ('string' != typeof path) return ''; - for(var i = path.length - 1; i >= 0; --i)switch(path.charCodeAt(i)){ - case 0x2F: - case 0x5C: - path = path.slice(i + 1); - return '..' === path || '.' === path ? '' : path; - } - return '..' === path || '.' === path ? '' : path; - }; - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/decodeText.js" (module) { - "use strict"; - const utf8Decoder = new TextDecoder('utf-8'); - const textDecoders = new Map([ - [ - 'utf-8', - utf8Decoder ], - [ - 'utf8', - utf8Decoder - ] - ]); - function getDecoder(charset) { - let lc; - while(true)switch(charset){ - case 'utf-8': - case 'utf8': - return decoders.utf8; - case 'latin1': - case 'ascii': - case 'us-ascii': - case 'iso-8859-1': - case 'iso8859-1': - case 'iso88591': - case 'iso_8859-1': - case 'windows-1252': - case 'iso_8859-1:1987': - case 'cp1252': - case 'x-cp1252': - return decoders.latin1; - case 'utf16le': - case 'utf-16le': - case 'ucs2': - case 'ucs-2': - return decoders.utf16le; - case 'base64': - return decoders.base64; - default: - if (void 0 === lc) { - lc = true; - charset = charset.toLowerCase(); - continue; - } - return decoders.other.bind(charset); - } - } - const decoders = { - utf8: (data, sourceEncoding)=>{ - if (0 === data.length) return ''; - if ('string' == typeof data) data = Buffer.from(data, sourceEncoding); - return data.utf8Slice(0, data.length); - }, - latin1: (data, sourceEncoding)=>{ - if (0 === data.length) return ''; - if ('string' == typeof data) return data; - return data.latin1Slice(0, data.length); - }, - utf16le: (data, sourceEncoding)=>{ - if (0 === data.length) return ''; - if ('string' == typeof data) data = Buffer.from(data, sourceEncoding); - return data.ucs2Slice(0, data.length); - }, - base64: (data, sourceEncoding)=>{ - if (0 === data.length) return ''; - if ('string' == typeof data) data = Buffer.from(data, sourceEncoding); - return data.base64Slice(0, data.length); - }, - other: (data, sourceEncoding)=>{ - if (0 === data.length) return ''; - if ('string' == typeof data) data = Buffer.from(data, sourceEncoding); - if (textDecoders.has(this.toString())) try { - return textDecoders.get(this).decode(data); - } catch {} - return 'string' == typeof data ? data : data.toString(); - } - }; - function decodeText(text, sourceEncoding, destEncoding) { - if (text) return getDecoder(destEncoding)(text, sourceEncoding); - return text; - } - module.exports = decodeText; - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/getLimit.js" (module) { - "use strict"; - module.exports = function(limits, name, defaultLimit) { - if (!limits || void 0 === limits[name] || null === limits[name]) return defaultLimit; - if ('number' != typeof limits[name] || isNaN(limits[name])) throw new TypeError('Limit ' + name + ' is not a valid number'); - return limits[name]; - }; - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/parseParams.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const decodeText = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/decodeText.js"); - const RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g; - const EncodedLookup = { - '%00': '\x00', - '%01': '\x01', - '%02': '\x02', - '%03': '\x03', - '%04': '\x04', - '%05': '\x05', - '%06': '\x06', - '%07': '\x07', - '%08': '\x08', - '%09': '\x09', - '%0a': '\x0a', - '%0A': '\x0a', - '%0b': '\x0b', - '%0B': '\x0b', - '%0c': '\x0c', - '%0C': '\x0c', - '%0d': '\x0d', - '%0D': '\x0d', - '%0e': '\x0e', - '%0E': '\x0e', - '%0f': '\x0f', - '%0F': '\x0f', - '%10': '\x10', - '%11': '\x11', - '%12': '\x12', - '%13': '\x13', - '%14': '\x14', - '%15': '\x15', - '%16': '\x16', - '%17': '\x17', - '%18': '\x18', - '%19': '\x19', - '%1a': '\x1a', - '%1A': '\x1a', - '%1b': '\x1b', - '%1B': '\x1b', - '%1c': '\x1c', - '%1C': '\x1c', - '%1d': '\x1d', - '%1D': '\x1d', - '%1e': '\x1e', - '%1E': '\x1e', - '%1f': '\x1f', - '%1F': '\x1f', - '%20': '\x20', - '%21': '\x21', - '%22': '\x22', - '%23': '\x23', - '%24': '\x24', - '%25': '\x25', - '%26': '\x26', - '%27': '\x27', - '%28': '\x28', - '%29': '\x29', - '%2a': '\x2a', - '%2A': '\x2a', - '%2b': '\x2b', - '%2B': '\x2b', - '%2c': '\x2c', - '%2C': '\x2c', - '%2d': '\x2d', - '%2D': '\x2d', - '%2e': '\x2e', - '%2E': '\x2e', - '%2f': '\x2f', - '%2F': '\x2f', - '%30': '\x30', - '%31': '\x31', - '%32': '\x32', - '%33': '\x33', - '%34': '\x34', - '%35': '\x35', - '%36': '\x36', - '%37': '\x37', - '%38': '\x38', - '%39': '\x39', - '%3a': '\x3a', - '%3A': '\x3a', - '%3b': '\x3b', - '%3B': '\x3b', - '%3c': '\x3c', - '%3C': '\x3c', - '%3d': '\x3d', - '%3D': '\x3d', - '%3e': '\x3e', - '%3E': '\x3e', - '%3f': '\x3f', - '%3F': '\x3f', - '%40': '\x40', - '%41': '\x41', - '%42': '\x42', - '%43': '\x43', - '%44': '\x44', - '%45': '\x45', - '%46': '\x46', - '%47': '\x47', - '%48': '\x48', - '%49': '\x49', - '%4a': '\x4a', - '%4A': '\x4a', - '%4b': '\x4b', - '%4B': '\x4b', - '%4c': '\x4c', - '%4C': '\x4c', - '%4d': '\x4d', - '%4D': '\x4d', - '%4e': '\x4e', - '%4E': '\x4e', - '%4f': '\x4f', - '%4F': '\x4f', - '%50': '\x50', - '%51': '\x51', - '%52': '\x52', - '%53': '\x53', - '%54': '\x54', - '%55': '\x55', - '%56': '\x56', - '%57': '\x57', - '%58': '\x58', - '%59': '\x59', - '%5a': '\x5a', - '%5A': '\x5a', - '%5b': '\x5b', - '%5B': '\x5b', - '%5c': '\x5c', - '%5C': '\x5c', - '%5d': '\x5d', - '%5D': '\x5d', - '%5e': '\x5e', - '%5E': '\x5e', - '%5f': '\x5f', - '%5F': '\x5f', - '%60': '\x60', - '%61': '\x61', - '%62': '\x62', - '%63': '\x63', - '%64': '\x64', - '%65': '\x65', - '%66': '\x66', - '%67': '\x67', - '%68': '\x68', - '%69': '\x69', - '%6a': '\x6a', - '%6A': '\x6a', - '%6b': '\x6b', - '%6B': '\x6b', - '%6c': '\x6c', - '%6C': '\x6c', - '%6d': '\x6d', - '%6D': '\x6d', - '%6e': '\x6e', - '%6E': '\x6e', - '%6f': '\x6f', - '%6F': '\x6f', - '%70': '\x70', - '%71': '\x71', - '%72': '\x72', - '%73': '\x73', - '%74': '\x74', - '%75': '\x75', - '%76': '\x76', - '%77': '\x77', - '%78': '\x78', - '%79': '\x79', - '%7a': '\x7a', - '%7A': '\x7a', - '%7b': '\x7b', - '%7B': '\x7b', - '%7c': '\x7c', - '%7C': '\x7c', - '%7d': '\x7d', - '%7D': '\x7d', - '%7e': '\x7e', - '%7E': '\x7e', - '%7f': '\x7f', - '%7F': '\x7f', - '%80': '\x80', - '%81': '\x81', - '%82': '\x82', - '%83': '\x83', - '%84': '\x84', - '%85': '\x85', - '%86': '\x86', - '%87': '\x87', - '%88': '\x88', - '%89': '\x89', - '%8a': '\x8a', - '%8A': '\x8a', - '%8b': '\x8b', - '%8B': '\x8b', - '%8c': '\x8c', - '%8C': '\x8c', - '%8d': '\x8d', - '%8D': '\x8d', - '%8e': '\x8e', - '%8E': '\x8e', - '%8f': '\x8f', - '%8F': '\x8f', - '%90': '\x90', - '%91': '\x91', - '%92': '\x92', - '%93': '\x93', - '%94': '\x94', - '%95': '\x95', - '%96': '\x96', - '%97': '\x97', - '%98': '\x98', - '%99': '\x99', - '%9a': '\x9a', - '%9A': '\x9a', - '%9b': '\x9b', - '%9B': '\x9b', - '%9c': '\x9c', - '%9C': '\x9c', - '%9d': '\x9d', - '%9D': '\x9d', - '%9e': '\x9e', - '%9E': '\x9e', - '%9f': '\x9f', - '%9F': '\x9f', - '%a0': '\xa0', - '%A0': '\xa0', - '%a1': '\xa1', - '%A1': '\xa1', - '%a2': '\xa2', - '%A2': '\xa2', - '%a3': '\xa3', - '%A3': '\xa3', - '%a4': '\xa4', - '%A4': '\xa4', - '%a5': '\xa5', - '%A5': '\xa5', - '%a6': '\xa6', - '%A6': '\xa6', - '%a7': '\xa7', - '%A7': '\xa7', - '%a8': '\xa8', - '%A8': '\xa8', - '%a9': '\xa9', - '%A9': '\xa9', - '%aa': '\xaa', - '%Aa': '\xaa', - '%aA': '\xaa', - '%AA': '\xaa', - '%ab': '\xab', - '%Ab': '\xab', - '%aB': '\xab', - '%AB': '\xab', - '%ac': '\xac', - '%Ac': '\xac', - '%aC': '\xac', - '%AC': '\xac', - '%ad': '\xad', - '%Ad': '\xad', - '%aD': '\xad', - '%AD': '\xad', - '%ae': '\xae', - '%Ae': '\xae', - '%aE': '\xae', - '%AE': '\xae', - '%af': '\xaf', - '%Af': '\xaf', - '%aF': '\xaf', - '%AF': '\xaf', - '%b0': '\xb0', - '%B0': '\xb0', - '%b1': '\xb1', - '%B1': '\xb1', - '%b2': '\xb2', - '%B2': '\xb2', - '%b3': '\xb3', - '%B3': '\xb3', - '%b4': '\xb4', - '%B4': '\xb4', - '%b5': '\xb5', - '%B5': '\xb5', - '%b6': '\xb6', - '%B6': '\xb6', - '%b7': '\xb7', - '%B7': '\xb7', - '%b8': '\xb8', - '%B8': '\xb8', - '%b9': '\xb9', - '%B9': '\xb9', - '%ba': '\xba', - '%Ba': '\xba', - '%bA': '\xba', - '%BA': '\xba', - '%bb': '\xbb', - '%Bb': '\xbb', - '%bB': '\xbb', - '%BB': '\xbb', - '%bc': '\xbc', - '%Bc': '\xbc', - '%bC': '\xbc', - '%BC': '\xbc', - '%bd': '\xbd', - '%Bd': '\xbd', - '%bD': '\xbd', - '%BD': '\xbd', - '%be': '\xbe', - '%Be': '\xbe', - '%bE': '\xbe', - '%BE': '\xbe', - '%bf': '\xbf', - '%Bf': '\xbf', - '%bF': '\xbf', - '%BF': '\xbf', - '%c0': '\xc0', - '%C0': '\xc0', - '%c1': '\xc1', - '%C1': '\xc1', - '%c2': '\xc2', - '%C2': '\xc2', - '%c3': '\xc3', - '%C3': '\xc3', - '%c4': '\xc4', - '%C4': '\xc4', - '%c5': '\xc5', - '%C5': '\xc5', - '%c6': '\xc6', - '%C6': '\xc6', - '%c7': '\xc7', - '%C7': '\xc7', - '%c8': '\xc8', - '%C8': '\xc8', - '%c9': '\xc9', - '%C9': '\xc9', - '%ca': '\xca', - '%Ca': '\xca', - '%cA': '\xca', - '%CA': '\xca', - '%cb': '\xcb', - '%Cb': '\xcb', - '%cB': '\xcb', - '%CB': '\xcb', - '%cc': '\xcc', - '%Cc': '\xcc', - '%cC': '\xcc', - '%CC': '\xcc', - '%cd': '\xcd', - '%Cd': '\xcd', - '%cD': '\xcd', - '%CD': '\xcd', - '%ce': '\xce', - '%Ce': '\xce', - '%cE': '\xce', - '%CE': '\xce', - '%cf': '\xcf', - '%Cf': '\xcf', - '%cF': '\xcf', - '%CF': '\xcf', - '%d0': '\xd0', - '%D0': '\xd0', - '%d1': '\xd1', - '%D1': '\xd1', - '%d2': '\xd2', - '%D2': '\xd2', - '%d3': '\xd3', - '%D3': '\xd3', - '%d4': '\xd4', - '%D4': '\xd4', - '%d5': '\xd5', - '%D5': '\xd5', - '%d6': '\xd6', - '%D6': '\xd6', - '%d7': '\xd7', - '%D7': '\xd7', - '%d8': '\xd8', - '%D8': '\xd8', - '%d9': '\xd9', - '%D9': '\xd9', - '%da': '\xda', - '%Da': '\xda', - '%dA': '\xda', - '%DA': '\xda', - '%db': '\xdb', - '%Db': '\xdb', - '%dB': '\xdb', - '%DB': '\xdb', - '%dc': '\xdc', - '%Dc': '\xdc', - '%dC': '\xdc', - '%DC': '\xdc', - '%dd': '\xdd', - '%Dd': '\xdd', - '%dD': '\xdd', - '%DD': '\xdd', - '%de': '\xde', - '%De': '\xde', - '%dE': '\xde', - '%DE': '\xde', - '%df': '\xdf', - '%Df': '\xdf', - '%dF': '\xdf', - '%DF': '\xdf', - '%e0': '\xe0', - '%E0': '\xe0', - '%e1': '\xe1', - '%E1': '\xe1', - '%e2': '\xe2', - '%E2': '\xe2', - '%e3': '\xe3', - '%E3': '\xe3', - '%e4': '\xe4', - '%E4': '\xe4', - '%e5': '\xe5', - '%E5': '\xe5', - '%e6': '\xe6', - '%E6': '\xe6', - '%e7': '\xe7', - '%E7': '\xe7', - '%e8': '\xe8', - '%E8': '\xe8', - '%e9': '\xe9', - '%E9': '\xe9', - '%ea': '\xea', - '%Ea': '\xea', - '%eA': '\xea', - '%EA': '\xea', - '%eb': '\xeb', - '%Eb': '\xeb', - '%eB': '\xeb', - '%EB': '\xeb', - '%ec': '\xec', - '%Ec': '\xec', - '%eC': '\xec', - '%EC': '\xec', - '%ed': '\xed', - '%Ed': '\xed', - '%eD': '\xed', - '%ED': '\xed', - '%ee': '\xee', - '%Ee': '\xee', - '%eE': '\xee', - '%EE': '\xee', - '%ef': '\xef', - '%Ef': '\xef', - '%eF': '\xef', - '%EF': '\xef', - '%f0': '\xf0', - '%F0': '\xf0', - '%f1': '\xf1', - '%F1': '\xf1', - '%f2': '\xf2', - '%F2': '\xf2', - '%f3': '\xf3', - '%F3': '\xf3', - '%f4': '\xf4', - '%F4': '\xf4', - '%f5': '\xf5', - '%F5': '\xf5', - '%f6': '\xf6', - '%F6': '\xf6', - '%f7': '\xf7', - '%F7': '\xf7', - '%f8': '\xf8', - '%F8': '\xf8', - '%f9': '\xf9', - '%F9': '\xf9', - '%fa': '\xfa', - '%Fa': '\xfa', - '%fA': '\xfa', - '%FA': '\xfa', - '%fb': '\xfb', - '%Fb': '\xfb', - '%fB': '\xfb', - '%FB': '\xfb', - '%fc': '\xfc', - '%Fc': '\xfc', - '%fC': '\xfc', - '%FC': '\xfc', - '%fd': '\xfd', - '%Fd': '\xfd', - '%fD': '\xfd', - '%FD': '\xfd', - '%fe': '\xfe', - '%Fe': '\xfe', - '%fE': '\xfe', - '%FE': '\xfe', - '%ff': '\xff', - '%Ff': '\xff', - '%fF': '\xff', - '%FF': '\xff' - }; - function encodedReplacer(match) { - return EncodedLookup[match]; - } - const STATE_KEY = 0; - const STATE_VALUE = 1; - const STATE_CHARSET = 2; - const STATE_LANG = 3; - function parseParams(str) { - const res = []; - let state = STATE_KEY; - let charset = ''; - let inquote = false; - let escaping = false; - let p = 0; - let tmp = ''; - const len = str.length; - for(var i = 0; i < len; ++i){ - const char = str[i]; - if ('\\' === char && inquote) if (escaping) escaping = false; - else { - escaping = true; - continue; + 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" + ], + getById: [ + "GET /user/{account_id}" + ], + getByUsername: [ + "GET /users/{username}" + ], + getContextForUser: [ + "GET /users/{username}/hovercard" + ], + getGpgKeyForAuthenticated: [ + "GET /user/gpg_keys/{gpg_key_id}", + {}, + { + renamed: [ + "users", + "getGpgKeyForAuthenticatedUser" + ] } - else if ('"' === char) if (escaping) escaping = false; - else { - if (inquote) { - inquote = false; - state = STATE_KEY; - } else inquote = true; - continue; + ], + getGpgKeyForAuthenticatedUser: [ + "GET /user/gpg_keys/{gpg_key_id}" + ], + getPublicSshKeyForAuthenticated: [ + "GET /user/keys/{key_id}", + {}, + { + renamed: [ + "users", + "getPublicSshKeyForAuthenticatedUser" + ] } - else { - if (escaping && inquote) tmp += '\\'; - escaping = false; - if ((state === STATE_CHARSET || state === STATE_LANG) && "'" === char) { - if (state === STATE_CHARSET) { - state = STATE_LANG; - charset = tmp.substring(1); - } else state = STATE_VALUE; - tmp = ''; - continue; - } - if (state === STATE_KEY && ('*' === char || '=' === char) && res.length) { - state = '*' === char ? STATE_CHARSET : STATE_VALUE; - res[p] = [ - tmp, - void 0 - ]; - tmp = ''; - continue; - } - if (inquote || ';' !== char) { - if (!inquote && (' ' === char || '\t' === char)) continue; - } else { - state = STATE_KEY; - if (charset) { - if (tmp.length) tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), 'binary', charset); - charset = ''; - } else if (tmp.length) tmp = decodeText(tmp, 'binary', 'utf8'); - if (void 0 === res[p]) res[p] = tmp; - else res[p][1] = tmp; - tmp = ''; - ++p; - continue; - } + ], + getPublicSshKeyForAuthenticatedUser: [ + "GET /user/keys/{key_id}" + ], + getSshSigningKeyForAuthenticatedUser: [ + "GET /user/ssh_signing_keys/{ssh_signing_key_id}" + ], + list: [ + "GET /users" + ], + listAttestations: [ + "GET /users/{username}/attestations/{subject_digest}" + ], + listAttestationsBulk: [ + "POST /users/{username}/attestations/bulk-list{?per_page,before,after}" + ], + listBlockedByAuthenticated: [ + "GET /user/blocks", + {}, + { + renamed: [ + "users", + "listBlockedByAuthenticatedUser" + ] } - tmp += char; - } - if (charset && tmp.length) tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), 'binary', charset); - else if (tmp) tmp = decodeText(tmp, 'binary', 'utf8'); - if (void 0 === res[p]) { - if (tmp) res[p] = tmp; - } else res[p][1] = tmp; - return res; - } - module.exports = parseParams; - } -}; -var __webpack_module_cache__ = {}; -function __webpack_require__(moduleId) { - var cachedModule = __webpack_module_cache__[moduleId]; - if (void 0 !== cachedModule) return cachedModule.exports; - var module = __webpack_module_cache__[moduleId] = { - exports: {} - }; - __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); - return module.exports; -} -(()=>{ - __webpack_require__.n = (module)=>{ - var getter = module && module.__esModule ? ()=>module['default'] : ()=>module; - __webpack_require__.d(getter, { - a: getter - }); - return getter; - }; -})(); -(()=>{ - __webpack_require__.d = (exports1, getters, values)=>{ - var define = (defs, kind)=>{ - for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, { - enumerable: true, - [kind]: defs[key] - }); - }; - define(getters, "get"); - define(values, "value"); - }; -})(); -(()=>{ - __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop); -})(); -var __webpack_exports__ = {}; -(()=>{ - "use strict"; - var external_os_ = __webpack_require__("os"); - function utils_toCommandValue(input) { - if (null == input) return ''; - if ('string' == typeof input || input instanceof String) return input; - return JSON.stringify(input); - } - function utils_toCommandProperties(annotationProperties) { - if (!Object.keys(annotationProperties).length) return {}; - return { - title: annotationProperties.title, - file: annotationProperties.file, - line: annotationProperties.startLine, - endLine: annotationProperties.endLine, - col: annotationProperties.startColumn, - endColumn: annotationProperties.endColumn - }; - } - function command_issueCommand(command, properties, message) { - const cmd = new Command(command, properties, message); - process.stdout.write(cmd.toString() + external_os_.EOL); - } - const CMD_STRING = '::'; - class Command { - constructor(command, properties, message){ - if (!command) command = 'missing.command'; - this.command = command; - this.properties = properties; - this.message = message; - } - toString() { - let cmdStr = CMD_STRING + this.command; - if (this.properties && Object.keys(this.properties).length > 0) { - cmdStr += ' '; - let first = true; - for(const key in this.properties)if (this.properties.hasOwnProperty(key)) { - const val = this.properties[key]; - if (val) { - if (first) first = false; - else cmdStr += ','; - cmdStr += `${key}=${escapeProperty(val)}`; - } + ], + listBlockedByAuthenticatedUser: [ + "GET /user/blocks" + ], + listEmailsForAuthenticated: [ + "GET /user/emails", + {}, + { + renamed: [ + "users", + "listEmailsForAuthenticatedUser" + ] } - } - cmdStr += `${CMD_STRING}${escapeData(this.message)}`; - return cmdStr; - } - } - function escapeData(s) { - return utils_toCommandValue(s).replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A'); - } - function escapeProperty(s) { - return utils_toCommandValue(s).replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A').replace(/:/g, '%3A').replace(/,/g, '%2C'); - } - var external_crypto_ = __webpack_require__("crypto"); - var external_fs_ = __webpack_require__("fs"); - function file_command_issueFileCommand(command, message) { - const filePath = process.env[`GITHUB_${command}`]; - if (!filePath) throw new Error(`Unable to find environment variable for file command ${command}`); - if (!external_fs_.existsSync(filePath)) throw new Error(`Missing file at path: ${filePath}`); - external_fs_.appendFileSync(filePath, `${utils_toCommandValue(message)}${external_os_.EOL}`, { - encoding: 'utf8' - }); - } - function file_command_prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${external_crypto_.randomUUID()}`; - const convertedValue = utils_toCommandValue(value); - if (key.includes(delimiter)) throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); - if (convertedValue.includes(delimiter)) throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); - return `${key}<<${delimiter}${external_os_.EOL}${convertedValue}${external_os_.EOL}${delimiter}`; - } - __webpack_require__("path"); - __webpack_require__("http"); - __webpack_require__("https"); - URL; - __webpack_require__("../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js"); - __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/index.js"); - var lib_HttpCodes; - (function(HttpCodes) { - HttpCodes[HttpCodes["OK"] = 200] = "OK"; - HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; - HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; - HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; - HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; - HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; - HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; - HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; - HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; - HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; - HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; - HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; - HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; - HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; - HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; - HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; - HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; - HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; - HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; - HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; - HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; - HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; - HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; - HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; - HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; - HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; - HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; - })(lib_HttpCodes || (lib_HttpCodes = {})); - var lib_Headers; - (function(Headers) { - Headers["Accept"] = "accept"; - Headers["ContentType"] = "content-type"; - })(lib_Headers || (lib_Headers = {})); - var lib_MediaTypes; - (function(MediaTypes) { - MediaTypes["ApplicationJson"] = "application/json"; - })(lib_MediaTypes || (lib_MediaTypes = {})); - lib_HttpCodes.MovedPermanently, lib_HttpCodes.ResourceMoved, lib_HttpCodes.SeeOther, lib_HttpCodes.TemporaryRedirect, lib_HttpCodes.PermanentRedirect; - lib_HttpCodes.BadGateway, lib_HttpCodes.ServiceUnavailable, lib_HttpCodes.GatewayTimeout; - var summary_awaiter = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); + ], + 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" + ] } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); + ], + listPublicEmailsForAuthenticatedUser: [ + "GET /user/public_emails" + ], + listPublicKeysForUser: [ + "GET /users/{username}/keys" + ], + listPublicSshKeysForAuthenticated: [ + "GET /user/keys", + {}, + { + renamed: [ + "users", + "listPublicSshKeysForAuthenticatedUser" + ] } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - const { access, appendFile, writeFile } = external_fs_.promises; - const SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; - class Summary { - constructor(){ - this._buffer = ''; - } - filePath() { - return summary_awaiter(this, void 0, void 0, function*() { - if (this._filePath) return this._filePath; - const pathFromEnv = process.env[SUMMARY_ENV_VAR]; - if (!pathFromEnv) throw new Error(`Unable to find environment variable for $${SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); - try { - yield access(pathFromEnv, external_fs_.constants.R_OK | external_fs_.constants.W_OK); - } catch (_a) { - throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + ], + 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" + ] } - this._filePath = pathFromEnv; - return this._filePath; - }); - } - wrap(tag, content, attrs = {}) { - const htmlAttrs = Object.entries(attrs).map(([key, value])=>` ${key}="${value}"`).join(''); - if (!content) return `<${tag}${htmlAttrs}>`; - return `<${tag}${htmlAttrs}>${content}`; - } - write(options) { - return summary_awaiter(this, void 0, void 0, function*() { - const overwrite = !!(null == options ? void 0 : options.overwrite); - const filePath = yield this.filePath(); - const writeFunc = overwrite ? writeFile : appendFile; - yield writeFunc(filePath, this._buffer, { - encoding: 'utf8' - }); - return this.emptyBuffer(); - }); - } - clear() { - return summary_awaiter(this, void 0, void 0, function*() { - return this.emptyBuffer().write({ - overwrite: true - }); - }); - } - stringify() { - return this._buffer; - } - isEmptyBuffer() { - return 0 === this._buffer.length; - } - emptyBuffer() { - this._buffer = ''; - return this; - } - addRaw(text, addEOL = false) { - this._buffer += text; - return addEOL ? this.addEOL() : this; - } - addEOL() { - return this.addRaw(external_os_.EOL); - } - addCodeBlock(code, lang) { - const attrs = Object.assign({}, lang && { - lang - }); - const element = this.wrap('pre', this.wrap('code', code), attrs); - return this.addRaw(element).addEOL(); - } - addList(items, ordered = false) { - const tag = ordered ? 'ol' : 'ul'; - const listItems = items.map((item)=>this.wrap('li', item)).join(''); - const element = this.wrap(tag, listItems); - return this.addRaw(element).addEOL(); - } - addTable(rows) { - const tableBody = rows.map((row)=>{ - const cells = row.map((cell)=>{ - if ('string' == typeof cell) return this.wrap('td', cell); - const { header, data, colspan, rowspan } = cell; - const tag = header ? 'th' : 'td'; - const attrs = Object.assign(Object.assign({}, colspan && { - colspan - }), rowspan && { - rowspan - }); - return this.wrap(tag, data, attrs); - }).join(''); - return this.wrap('tr', cells); - }).join(''); - const element = this.wrap('table', tableBody); - return this.addRaw(element).addEOL(); - } - addDetails(label, content) { - const element = this.wrap('details', this.wrap('summary', label) + content); - return this.addRaw(element).addEOL(); - } - addImage(src, alt, options) { - const { width, height } = options || {}; - const attrs = Object.assign(Object.assign({}, width && { - width - }), height && { - height - }); - const element = this.wrap('img', null, Object.assign({ - src, - alt - }, attrs)); - return this.addRaw(element).addEOL(); - } - addHeading(text, level) { - const tag = `h${level}`; - const allowedTag = [ - 'h1', - 'h2', - 'h3', - 'h4', - 'h5', - 'h6' - ].includes(tag) ? tag : 'h1'; - const element = this.wrap(allowedTag, text); - return this.addRaw(element).addEOL(); - } - addSeparator() { - const element = this.wrap('hr', null); - return this.addRaw(element).addEOL(); - } - addBreak() { - const element = this.wrap('br', null); - return this.addRaw(element).addEOL(); - } - addQuote(text, cite) { - const attrs = Object.assign({}, cite && { - cite - }); - const element = this.wrap('blockquote', text, attrs); - return this.addRaw(element).addEOL(); - } - addLink(text, href) { - const element = this.wrap('a', text, { - href - }); - return this.addRaw(element).addEOL(); + ], + setPrimaryEmailVisibilityForAuthenticatedUser: [ + "PATCH /user/email/visibility" + ], + unblock: [ + "DELETE /user/blocks/{username}" + ], + unfollow: [ + "DELETE /user/following/{username}" + ], + updateAuthenticated: [ + "PATCH /user" + ] } + }; + var endpoints_default = Endpoints; + const endpointMethodsMap = /* @__PURE__ */ new Map(); + for (const [scope, endpoints] of Object.entries(endpoints_default))for (const [methodName, endpoint] of Object.entries(endpoints)){ + const [route, defaults, decorations] = endpoint; + 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 + }); } - new Summary(); - __webpack_require__("string_decoder"); - var external_events_ = __webpack_require__("events"); - __webpack_require__("child_process"); - __webpack_require__("assert"); - const { chmod, copyFile, lstat, mkdir, open: io_util_open, readdir, rename, rm, rmdir, stat, symlink, unlink } = external_fs_.promises; - process.platform; - external_fs_.constants.O_RDONLY; - require("timers"); - process.platform; - external_events_.EventEmitter; - external_events_.EventEmitter; - external_os_.platform(); - external_os_.arch(); - var core_ExitCode; - (function(ExitCode) { - ExitCode[ExitCode["Success"] = 0] = "Success"; - ExitCode[ExitCode["Failure"] = 1] = "Failure"; - })(core_ExitCode || (core_ExitCode = {})); - function core_setSecret(secret) { - command_issueCommand('add-mask', {}, secret); + const endpoints_to_methods_handler = { + has ({ scope }, methodName) { + return endpointMethodsMap.get(scope).has(methodName); + }, + getOwnPropertyDescriptor (target, methodName) { + return { + value: this.get(target, methodName), + 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; + 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: {} + }, endpoints_to_methods_handler); + return newMethods; } - function getInput(name, options) { - const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || ''; - if (options && options.required && !val) throw new Error(`Input required and not supplied: ${name}`); - if (options && false === options.trimWhitespace) return val; - return val.trim(); + 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 setOutput(name, value) { - const filePath = process.env['GITHUB_OUTPUT'] || ''; - if (filePath) return file_command_issueFileCommand('OUTPUT', file_command_prepareKeyValueMessage(name, value)); - process.stdout.write(external_os_.EOL); - command_issueCommand('set-output', { - name - }, utils_toCommandValue(value)); + function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + rest: api + }; } - function setFailed(message) { - process.exitCode = core_ExitCode.Failure; - core_error(message); + restEndpointMethods.VERSION = "17.0.0"; + function legacyRestEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + ...api, + rest: api + }; } - function core_error(message, properties = {}) { - command_issueCommand('error', utils_toCommandProperties(properties), message instanceof Error ? message.toString() : message); + legacyRestEndpointMethods.VERSION = "17.0.0"; + var plugin_paginate_rest_dist_bundle_VERSION = "0.0.0-development"; + function normalizePaginatedListResponse(response) { + if (!response.data) return { + ...response, + data: [] + }; + const responseNeedsNormalization = ("total_count" in response.data || "total_commits" 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; + const totalCommits = response.data.total_commits; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + delete response.data.total_commits; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (void 0 !== incompleteResults) response.data.incomplete_results = incompleteResults; + if (void 0 !== repositorySelection) response.data.repository_selection = repositorySelection; + response.data.total_count = totalCount; + response.data.total_commits = totalCommits; + return response; } - function core_info(message) { - process.stdout.write(message + external_os_.EOL); + function iterator(octokit, route, parameters) { + const options = "function" == typeof route ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = "function" == typeof route ? 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]; + if (!url && "total_commits" in normalizedResponse.data) { + const parsedUrl = new URL(normalizedResponse.url); + const params = parsedUrl.searchParams; + const page = parseInt(params.get("page") || "1", 10); + const per_page = parseInt(params.get("per_page") || "250", 10); + if (page * per_page < normalizedResponse.data.total_commits) { + params.set("page", String(page + 1)); + url = parsedUrl.toString(); + } + } + return { + value: normalizedResponse + }; + } catch (error) { + if (409 !== error.status) throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } + } + }) + }; } - var github = __webpack_require__("../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/github.js"); - function isPlainObject(value) { + function paginate(octokit, route, parameters, mapFn) { + if ("function" == typeof parameters) { + mapFn = parameters; + parameters = void 0; + } + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); + } + function gather(octokit, results, iterator2, mapFn) { + return iterator2.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, iterator2, mapFn); + }); + } + Object.assign(paginate, { + iterator + }); + function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; + } + paginateRest.VERSION = plugin_paginate_rest_dist_bundle_VERSION; + new Context(); + const utils_baseUrl = getApiBaseUrl(); + const utils_defaults = { + baseUrl: utils_baseUrl, + request: { + agent: getProxyAgent(utils_baseUrl), + fetch: getProxyFetch(utils_baseUrl) + } + }; + const GitHub = Octokit.plugin(restEndpointMethods, paginateRest).defaults(utils_defaults); + function getOctokitOptions(token, options) { + const opts = Object.assign({}, options || {}); + const auth = getAuthString(token, opts); + if (auth) opts.auth = auth; + const userAgent = getUserAgentWithOrchestrationId(opts.userAgent); + if (userAgent) opts.userAgent = userAgent; + return opts; + } + const github_context = new Context(); + function getOctokit(token, options, ...additionalPlugins) { + const GitHubWithPlugins = GitHub.plugin(...additionalPlugins); + return new GitHubWithPlugins(getOctokitOptions(token, options)); + } + function is_plain_obj_isPlainObject(value) { if ('object' != typeof value || null === value) return false; const prototype = Object.getPrototypeOf(value); return (null === prototype || prototype === Object.prototype || null === Object.getPrototypeOf(prototype)) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value); @@ -33807,7 +20511,7 @@ var __webpack_exports__ = {}; const normalizeFileUrl = (file)=>file instanceof URL ? (0, external_node_url_.fileURLToPath)(file) : file; const normalizeParameters = (rawFile, rawArguments = [], rawOptions = {})=>{ const filePath = safeNormalizeFileUrl(rawFile, 'First argument'); - const [commandArguments, options] = isPlainObject(rawArguments) ? [ + const [commandArguments, options] = is_plain_obj_isPlainObject(rawArguments) ? [ [], rawArguments ] : [ @@ -33819,7 +20523,7 @@ var __webpack_exports__ = {}; const normalizedArguments = commandArguments.map(String); const nullByteArgument = normalizedArguments.find((normalizedArgument)=>normalizedArgument.includes('\0')); if (void 0 !== nullByteArgument) throw new TypeError(`Arguments cannot contain null bytes ("\\0"): ${nullByteArgument}`); - if (!isPlainObject(options)) throw new TypeError(`Last argument must be an options object: ${options}`); + if (!is_plain_obj_isPlainObject(options)) throw new TypeError(`Last argument must be an options object: ${options}`); return [ filePath, normalizedArguments, @@ -33951,7 +20655,7 @@ var __webpack_exports__ = {}; const typeOfExpression = typeof expression; if ('string' === typeOfExpression) return expression; if ('number' === typeOfExpression) return String(expression); - if (isPlainObject(expression) && ('stdout' in expression || 'isMaxBuffer' in expression)) return getSubprocessResult(expression); + if (is_plain_obj_isPlainObject(expression) && ('stdout' in expression || 'isMaxBuffer' in expression)) return getSubprocessResult(expression); if (expression instanceof external_node_child_process_namespaceObject.ChildProcess || '[object Promise]' === Object.prototype.toString.call(expression)) throw new TypeError('Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}.'); throw new TypeError(`Unexpected "${typeOfExpression}" in template expression`); }; @@ -33990,7 +20694,7 @@ var __webpack_exports__ = {}; return addDefaultValue(optionArray, optionName); }; const getStdioLength = ({ stdio })=>Array.isArray(stdio) ? Math.max(stdio.length, STANDARD_STREAMS_ALIASES.length) : STANDARD_STREAMS_ALIASES.length; - const normalizeFdSpecificValue = (optionValue, optionArray, optionName)=>isPlainObject(optionValue) ? normalizeOptionObject(optionValue, optionArray, optionName) : optionArray.fill(optionValue); + const normalizeFdSpecificValue = (optionValue, optionArray, optionName)=>is_plain_obj_isPlainObject(optionValue) ? normalizeOptionObject(optionValue, optionArray, optionName) : optionArray.fill(optionValue); const normalizeOptionObject = (optionValue, optionArray, optionName)=>{ for (const fdName of Object.keys(optionValue).sort(compareFdName))for (const fdNumber of parseFdName(fdName, optionName, optionArray))optionArray[fdNumber] = optionValue[fdName]; return optionArray; @@ -34388,7 +21092,7 @@ Please set the "stdio" option to ensure that file descriptor exists.`); Object.entries(specialMainSymbols); const external_node_tty_namespaceObject = require("node:tty"); const hasColors = external_node_tty_namespaceObject?.WriteStream?.prototype?.hasColors?.() ?? false; - const format = (open, close)=>{ + const base_format = (open, close)=>{ if (!hasColors) return (input)=>input; const openCode = `\u001B[${open}m`; const closeCode = `\u001B[${close}m`; @@ -34409,47 +21113,47 @@ Please set the "stdio" option to ensure that file descriptor exists.`); return result; }; }; - format(0, 0); - const bold = format(1, 22); - format(2, 22); - format(3, 23); - format(4, 24); - format(53, 55); - format(7, 27); - format(8, 28); - format(9, 29); - format(30, 39); - format(31, 39); - format(32, 39); - format(33, 39); - format(34, 39); - format(35, 39); - format(36, 39); - format(37, 39); - const gray = format(90, 39); - format(40, 49); - format(41, 49); - format(42, 49); - format(43, 49); - format(44, 49); - format(45, 49); - format(46, 49); - format(47, 49); - format(100, 49); - const redBright = format(91, 39); - format(92, 39); - const yellowBright = format(93, 39); - format(94, 39); - format(95, 39); - format(96, 39); - format(97, 39); - format(101, 49); - format(102, 49); - format(103, 49); - format(104, 49); - format(105, 49); - format(106, 49); - format(107, 49); + base_format(0, 0); + const bold = base_format(1, 22); + base_format(2, 22); + base_format(3, 23); + base_format(4, 24); + base_format(53, 55); + base_format(7, 27); + base_format(8, 28); + base_format(9, 29); + base_format(30, 39); + base_format(31, 39); + base_format(32, 39); + base_format(33, 39); + base_format(34, 39); + base_format(35, 39); + base_format(36, 39); + base_format(37, 39); + const gray = base_format(90, 39); + base_format(40, 49); + base_format(41, 49); + base_format(42, 49); + base_format(43, 49); + base_format(44, 49); + base_format(45, 49); + base_format(46, 49); + base_format(47, 49); + base_format(100, 49); + const redBright = base_format(91, 39); + base_format(92, 39); + const yellowBright = base_format(93, 39); + base_format(94, 39); + base_format(95, 39); + base_format(96, 39); + base_format(97, 39); + base_format(101, 49); + base_format(102, 49); + base_format(103, 49); + base_format(104, 49); + base_format(105, 49); + base_format(106, 49); + base_format(107, 49); const defaultVerboseFunction = ({ type, message, timestamp, piped, commandId, result: { failed = false } = {}, options: { reject = true } })=>{ const timestampString = serializeTimestamp(timestamp); const icon = ICONS[type]({ @@ -36507,10 +23211,10 @@ Please rename it to one of: ${correctEncodings}.`); const isGenerator = (value)=>isAsyncGenerator(value) || isSyncGenerator(value); const isAsyncGenerator = (value)=>'[object AsyncGeneratorFunction]' === Object.prototype.toString.call(value); const isSyncGenerator = (value)=>'[object GeneratorFunction]' === Object.prototype.toString.call(value); - const isTransformOptions = (value)=>isPlainObject(value) && (void 0 !== value.transform || void 0 !== value.final); + const isTransformOptions = (value)=>is_plain_obj_isPlainObject(value) && (void 0 !== value.transform || void 0 !== value.final); const isUrl = (value)=>'[object URL]' === Object.prototype.toString.call(value); const isRegularUrl = (value)=>isUrl(value) && 'file:' !== value.protocol; - const isFilePathObject = (value)=>isPlainObject(value) && Object.keys(value).length > 0 && Object.keys(value).every((key)=>FILE_PATH_KEYS.has(key)) && isFilePathString(value.file); + const isFilePathObject = (value)=>is_plain_obj_isPlainObject(value) && Object.keys(value).length > 0 && Object.keys(value).every((key)=>FILE_PATH_KEYS.has(key)) && isFilePathString(value.file); const FILE_PATH_KEYS = new Set([ 'file', 'append' @@ -36644,7 +23348,7 @@ Please rename it to one of: ${correctEncodings}.`); }; }; const normalizeTransformStream = ({ stdioItem, stdioItem: { value }, index, newTransforms, direction })=>{ - const { transform, objectMode } = isPlainObject(value) ? value : { + const { transform, objectMode } = is_plain_obj_isPlainObject(value) ? value : { transform: value }; const { writableObjectMode, readableObjectMode } = getTransformObjectModes(objectMode, index, newTransforms, direction); @@ -36658,7 +23362,7 @@ Please rename it to one of: ${correctEncodings}.`); }; }; const normalizeGenerator = ({ stdioItem, stdioItem: { value }, index, newTransforms, direction, encoding })=>{ - const { transform, final, binary: binaryOption = false, preserveNewlines = false, objectMode } = isPlainObject(value) ? value : { + const { transform, final, binary: binaryOption = false, preserveNewlines = false, objectMode } = is_plain_obj_isPlainObject(value) ? value : { transform: value }; const binary = binaryOption || BINARY_ENCODINGS.has(encoding); @@ -38184,11 +24888,11 @@ Instead, \`yield\` should either be called with a value, or not be called at all }; const errorStream = (stream, error)=>{ if (!stream.destroyed) { - stream.once('error', noop); + stream.once('error', merge_streams_noop); stream.destroy(error); } }; - const noop = ()=>{}; + const merge_streams_noop = ()=>{}; const updateMaxListeners = (passThroughStream, increment)=>{ const maxListeners = passThroughStream.getMaxListeners(); if (0 !== maxListeners && maxListeners !== 1 / 0) passThroughStream.setMaxListeners(maxListeners + increment); @@ -38603,7 +25307,7 @@ Instead, \`yield\` should either be called with a value, or not be called at all }); }; const pipeToSubprocess = (sourceInfo, ...pipeArguments)=>{ - if (isPlainObject(pipeArguments[0])) return pipeToSubprocess.bind(void 0, { + if (is_plain_obj_isPlainObject(pipeArguments[0])) return pipeToSubprocess.bind(void 0, { ...sourceInfo, boundOptions: { ...sourceInfo.boundOptions, @@ -39689,7 +26393,7 @@ Instead, \`yield\` should either be called with a value, or not be called at all }; }; const mergeOption = (optionName, boundOptionValue, optionValue)=>{ - if (DEEP_OPTIONS.has(optionName) && isPlainObject(boundOptionValue) && isPlainObject(optionValue)) return { + if (DEEP_OPTIONS.has(optionName) && is_plain_obj_isPlainObject(boundOptionValue) && is_plain_obj_isPlainObject(optionValue)) return { ...boundOptionValue, ...optionValue }; @@ -39712,7 +26416,7 @@ Instead, \`yield\` should either be called with a value, or not be called at all return boundExeca; }; const callBoundExeca = ({ mapArguments, deepOptions = {}, boundOptions = {}, setBoundExeca, createNested }, firstArgument, ...nextArguments)=>{ - if (isPlainObject(firstArgument)) return createNested(mapArguments, mergeOptions(boundOptions, firstArgument), setBoundExeca); + if (is_plain_obj_isPlainObject(firstArgument)) return createNested(mapArguments, mergeOptions(boundOptions, firstArgument), setBoundExeca); const { file, commandArguments, options, isSync } = parseArguments({ mapArguments, firstArgument, @@ -39921,7 +26625,7 @@ Instead, \`yield\` should either be called with a value, or not be called at all } async function run() { const branch = getInput('release-branch') || 'release'; - const base = getInput('base') || github.context.payload.repository?.default_branch || 'main'; + const base = getInput('base') || github_context.payload.repository?.default_branch || 'main'; const prTitle = getInput('pr-title', { required: true }); @@ -39932,7 +26636,7 @@ Instead, \`yield\` should either be called with a value, or not be called at all required: true }); core_setSecret(token); - const octokit = (0, github.getOctokit)(token); + const octokit = getOctokit(token); const gitUserName = getInput('git-user-name') || 'GitHub Actions[bot]'; const gitUserEmail = getInput('git-user-email') || 'npm-publisher@rightcapital.com'; await $`git config user.email ${gitUserEmail}`; @@ -39997,8 +26701,8 @@ Instead, \`yield\` should either be called with a value, or not be called at all })); const body = composePrBody(banner, projectsVersionData, plans, releaseGroups, projectNameToNpmName); const { data: prs } = await octokit.rest.pulls.list({ - ...github.context.repo, - head: `${github.context.repo.owner}:${branch}`, + ...github_context.repo, + head: `${github_context.repo.owner}:${branch}`, base, state: 'open' }); @@ -40006,21 +26710,21 @@ Instead, \`yield\` should either be called with a value, or not be called at all let prUrl = ''; if (prNumber) { await octokit.rest.pulls.update({ - ...github.context.repo, + ...github_context.repo, pull_number: prNumber, body }); prUrl = prs[0].html_url; } else { const { data: pr } = await octokit.rest.pulls.create({ - ...github.context.repo, + ...github_context.repo, base, head: branch, title: prTitle, body }); await octokit.rest.issues.addLabels({ - ...github.context.repo, + ...github_context.repo, issue_number: pr.number, labels: [ label diff --git a/nx-release-pr/dist/index.js.LICENSE.txt b/nx-release-pr/dist/index.js.LICENSE.txt index 435b825..9c7c81b 100644 --- a/nx-release-pr/dist/index.js.LICENSE.txt +++ b/nx-release-pr/dist/index.js.LICENSE.txt @@ -1,3 +1,15 @@ +/* v8 ignore else -- @preserve */ + +/* v8 ignore else -- @preserve -- Bug with vitest coverage where it sees an else branch that doesn't exist */ + +/* v8 ignore next -- @preserve */ + +/*! + * content-type + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + /*! formdata-polyfill. MIT License. Jimmy Wärting */ /*! ws. MIT License. Einar Otto Stangvik */ \ No newline at end of file diff --git a/nx-release-pr/package.json b/nx-release-pr/package.json index adc0148..8479fbf 100644 --- a/nx-release-pr/package.json +++ b/nx-release-pr/package.json @@ -1,6 +1,6 @@ { "name": "nx-release-pr", - "version": "0.6.0", + "version": "0.6.1", "private": true, "scripts": { "build": "rslib build" diff --git a/nx-release/CHANGELOG.md b/nx-release/CHANGELOG.md index 7b6334b..ef9e288 100644 --- a/nx-release/CHANGELOG.md +++ b/nx-release/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.6.1 (2026-06-16) + +### 🩹 Fixes + +- fix(deps): update dependency @actions/github to v9 ([a943022](https://github.com/RightCapitalHQ/actions/commit/a943022)) + ## 0.6.0 (2026-05-29) ### 🚀 Features diff --git a/nx-release/dist/index.js b/nx-release/dist/index.js index b857fdc..268eedb 100644 --- a/nx-release/dist/index.js +++ b/nx-release/dist/index.js @@ -1,108 +1,6 @@ /*! LICENSE: index.js.LICENSE.txt */ var __webpack_modules__ = { - "../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/context.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - Object.defineProperty(exports1, "__esModule", { - value: true - }); - exports1.Context = void 0; - const fs_1 = __webpack_require__("fs"); - const os_1 = __webpack_require__("os"); - class Context { - constructor(){ - var _a, _b, _c; - this.payload = {}; - if (process.env.GITHUB_EVENT_PATH) if ((0, fs_1.existsSync)(process.env.GITHUB_EVENT_PATH)) this.payload = JSON.parse((0, fs_1.readFileSync)(process.env.GITHUB_EVENT_PATH, { - encoding: 'utf8' - })); - else { - const path = process.env.GITHUB_EVENT_PATH; - process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`); - } - this.eventName = process.env.GITHUB_EVENT_NAME; - this.sha = process.env.GITHUB_SHA; - this.ref = process.env.GITHUB_REF; - this.workflow = process.env.GITHUB_WORKFLOW; - this.action = process.env.GITHUB_ACTION; - this.actor = process.env.GITHUB_ACTOR; - this.job = process.env.GITHUB_JOB; - this.runAttempt = parseInt(process.env.GITHUB_RUN_ATTEMPT, 10); - this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); - this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); - this.apiUrl = null != (_a = process.env.GITHUB_API_URL) ? _a : "https://api.github.com"; - this.serverUrl = null != (_b = process.env.GITHUB_SERVER_URL) ? _b : "https://github.com"; - this.graphqlUrl = null != (_c = process.env.GITHUB_GRAPHQL_URL) ? _c : "https://api.github.com/graphql"; - } - get issue() { - const payload = this.payload; - return Object.assign(Object.assign({}, this.repo), { - number: (payload.issue || payload.pull_request || payload).number - }); - } - get repo() { - if (process.env.GITHUB_REPOSITORY) { - const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); - return { - owner, - repo - }; - } - if (this.payload.repository) return { - owner: this.payload.repository.owner.login, - repo: this.payload.repository.name - }; - throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); - } - } - exports1.Context = Context; - }, - "../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/github.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = { - enumerable: true, - get: function() { - return m[k]; - } - }; - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = this && this.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (null != mod) { - for(var k in mod)if ("default" !== k && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports1, "__esModule", { - value: true - }); - exports1.getOctokit = exports1.context = void 0; - const Context = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/context.js")); - const utils_1 = __webpack_require__("../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/utils.js"); - exports1.context = new Context.Context(); - function getOctokit(token, options, ...additionalPlugins) { - const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins); - return new GitHubWithPlugins((0, utils_1.getOctokitOptions)(token, options)); - } - exports1.getOctokit = getOctokit; - }, - "../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/internal/utils.js" (__unused_rspack_module, exports1, __webpack_require__) { + "../node_modules/.pnpm/@actions+http-client@3.0.2/node_modules/@actions/http-client/lib/index.js" (__unused_rspack_module, exports1, __webpack_require__) { "use strict"; var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) { if (void 0 === k2) k2 = k; @@ -126,173 +24,25 @@ var __webpack_modules__ = { } : function(o, v) { o["default"] = v; }); - var __importStar = this && this.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (null != mod) { - for(var k in mod)if ("default" !== k && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - Object.defineProperty(exports1, "__esModule", { - value: true - }); - exports1.getApiBaseUrl = exports1.getProxyFetch = exports1.getProxyAgentDispatcher = exports1.getProxyAgent = exports1.getAuthString = void 0; - const httpClient = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/lib/index.js")); - const undici_1 = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/index.js"); - function getAuthString(token, options) { - if (token || options.auth) { - if (token && options.auth) throw new Error('Parameters token and opts.auth may not both be specified'); - } else throw new Error('Parameter token or opts.auth is required'); - return 'string' == typeof options.auth ? options.auth : `token ${token}`; - } - exports1.getAuthString = getAuthString; - function getProxyAgent(destinationUrl) { - const hc = new httpClient.HttpClient(); - return hc.getAgent(destinationUrl); - } - exports1.getProxyAgent = getProxyAgent; - function getProxyAgentDispatcher(destinationUrl) { - const hc = new httpClient.HttpClient(); - return hc.getAgentDispatcher(destinationUrl); - } - exports1.getProxyAgentDispatcher = getProxyAgentDispatcher; - function getProxyFetch(destinationUrl) { - const httpDispatcher = getProxyAgentDispatcher(destinationUrl); - const proxyFetch = (url, opts)=>__awaiter(this, void 0, void 0, function*() { - return (0, undici_1.fetch)(url, Object.assign(Object.assign({}, opts), { - dispatcher: httpDispatcher - })); - }); - return proxyFetch; - } - exports1.getProxyFetch = getProxyFetch; - function getApiBaseUrl() { - return process.env['GITHUB_API_URL'] || 'https://api.github.com'; - } - exports1.getApiBaseUrl = getApiBaseUrl; - }, - "../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/utils.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = { - enumerable: true, - get: function() { - return m[k]; - } + var __importStar = this && this.__importStar || function() { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function(o) { + var ar = []; + for(var k in o)if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); }; - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = this && this.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (null != mod) { - for(var k in mod)if ("default" !== k && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports1, "__esModule", { - value: true - }); - exports1.getOctokitOptions = exports1.GitHub = exports1.defaults = exports1.context = void 0; - const Context = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/context.js")); - const Utils = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/internal/utils.js")); - const core_1 = __webpack_require__("../node_modules/.pnpm/@octokit+core@5.2.2/node_modules/@octokit/core/dist-web/index.js"); - const plugin_rest_endpoint_methods_1 = __webpack_require__("../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.2/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js"); - const plugin_paginate_rest_1 = __webpack_require__("../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.2_@octokit+core@5.2.2/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js"); - exports1.context = new Context.Context(); - const baseUrl = Utils.getApiBaseUrl(); - exports1.defaults = { - baseUrl, - request: { - agent: Utils.getProxyAgent(baseUrl), - fetch: Utils.getProxyFetch(baseUrl) - } - }; - exports1.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports1.defaults); - function getOctokitOptions(token, options) { - const opts = Object.assign({}, options || {}); - const auth = Utils.getAuthString(token, opts); - if (auth) opts.auth = auth; - return opts; - } - exports1.getOctokitOptions = getOctokitOptions; - }, - "../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/lib/index.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = { - enumerable: true, - get: function() { - return m[k]; + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (null != mod) { + for(var k = ownKeys(mod), i = 0; i < k.length; i++)if ("default" !== k[i]) __createBinding(result, mod, k[i]); } + __setModuleDefault(result, mod); + return result; }; - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (void 0 === k2) k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = this && this.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (null != mod) { - for(var k in mod)if ("default" !== k && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; + }(); var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { @@ -323,12 +73,14 @@ var __webpack_modules__ = { Object.defineProperty(exports1, "__esModule", { value: true }); - exports1.HttpClient = exports1.isHttps = exports1.HttpClientResponse = exports1.HttpClientError = exports1.getProxyUrl = exports1.MediaTypes = exports1.Headers = exports1.HttpCodes = void 0; + exports1.HttpClient = exports1.HttpClientResponse = exports1.HttpClientError = exports1.MediaTypes = exports1.Headers = exports1.HttpCodes = void 0; + exports1.getProxyUrl = getProxyUrl; + exports1.isHttps = isHttps; const http = __importStar(__webpack_require__("http")); const https = __importStar(__webpack_require__("https")); - const pm = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/lib/proxy.js")); + const pm = __importStar(__webpack_require__("../node_modules/.pnpm/@actions+http-client@3.0.2/node_modules/@actions/http-client/lib/proxy.js")); const tunnel = __importStar(__webpack_require__("../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js")); - const undici_1 = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/index.js"); + const undici_1 = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/index.js"); var HttpCodes; (function(HttpCodes) { HttpCodes[HttpCodes["OK"] = 200] = "OK"; @@ -372,7 +124,6 @@ var __webpack_modules__ = { const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); return proxyUrl ? proxyUrl.href : ''; } - exports1.getProxyUrl = getProxyUrl; const HttpRedirectCodes = [ HttpCodes.MovedPermanently, HttpCodes.ResourceMoved, @@ -441,7 +192,6 @@ var __webpack_modules__ = { const parsedUrl = new URL(requestUrl); return 'https:' === parsedUrl.protocol; } - exports1.isHttps = isHttps; class HttpClient { constructor(userAgent, handlers, requestOptions){ this._ignoreSslError = false; @@ -452,7 +202,7 @@ var __webpack_modules__ = { this._maxRetries = 1; this._keepAlive = false; this._disposed = false; - this.userAgent = userAgent; + this.userAgent = this._getUserAgentWithOrchestrationId(userAgent); this.handlers = handlers || []; this.requestOptions = requestOptions; if (requestOptions) { @@ -506,36 +256,36 @@ var __webpack_modules__ = { return this.request(verb, requestUrl, stream, additionalHeaders); }); } - getJson(requestUrl, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function*() { + getJson(requestUrl_1) { + return __awaiter(this, arguments, void 0, function*(requestUrl, additionalHeaders = {}) { additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); const res = yield this.get(requestUrl, additionalHeaders); return this._processResponse(res, this.requestOptions); }); } - postJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function*() { + postJson(requestUrl_1, obj_1) { + return __awaiter(this, arguments, void 0, function*(requestUrl, obj, additionalHeaders = {}) { const data = JSON.stringify(obj, null, 2); additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); const res = yield this.post(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); }); } - putJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function*() { + putJson(requestUrl_1, obj_1) { + return __awaiter(this, arguments, void 0, function*(requestUrl, obj, additionalHeaders = {}) { const data = JSON.stringify(obj, null, 2); additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); const res = yield this.put(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); }); } - patchJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function*() { + patchJson(requestUrl_1, obj_1) { + return __awaiter(this, arguments, void 0, function*(requestUrl, obj, additionalHeaders = {}) { const data = JSON.stringify(obj, null, 2); additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); const res = yield this.patch(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); }); @@ -668,8 +418,27 @@ var __webpack_modules__ = { } _getExistingOrDefaultHeader(additionalHeaders, header, _default) { let clientHeader; - if (this.requestOptions && this.requestOptions.headers) clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; - return additionalHeaders[header] || clientHeader || _default; + if (this.requestOptions && this.requestOptions.headers) { + const headerValue = lowercaseKeys(this.requestOptions.headers)[header]; + if (headerValue) clientHeader = 'number' == typeof headerValue ? headerValue.toString() : headerValue; + } + const additionalValue = additionalHeaders[header]; + if (void 0 !== additionalValue) return 'number' == typeof additionalValue ? additionalValue.toString() : additionalValue; + if (void 0 !== clientHeader) return clientHeader; + return _default; + } + _getExistingOrDefaultContentTypeHeader(additionalHeaders, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + const headerValue = lowercaseKeys(this.requestOptions.headers)[Headers.ContentType]; + if (headerValue) clientHeader = 'number' == typeof headerValue ? String(headerValue) : Array.isArray(headerValue) ? headerValue.join(', ') : headerValue; + } + const additionalValue = additionalHeaders[Headers.ContentType]; + if (void 0 !== additionalValue) if ('number' == typeof additionalValue) return String(additionalValue); + else if (Array.isArray(additionalValue)) return additionalValue.join(', '); + else return additionalValue; + if (void 0 !== clientHeader) return clientHeader; + return _default; } _getAgent(parsedUrl) { let agent; @@ -728,6 +497,15 @@ var __webpack_modules__ = { }); return proxyAgent; } + _getUserAgentWithOrchestrationId(userAgent) { + const baseUserAgent = userAgent || 'actions/http-client'; + const orchId = process.env['ACTIONS_ORCHESTRATION_ID']; + if (orchId) { + const sanitizedId = orchId.replace(/[^a-z0-9_.-]/gi, '_'); + return `${baseUserAgent} actions_orchestration_id/${sanitizedId}`; + } + return baseUserAgent; + } _performExponentialBackoff(retryNumber) { return __awaiter(this, void 0, void 0, function*() { retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); @@ -776,12 +554,13 @@ var __webpack_modules__ = { exports1.HttpClient = HttpClient; const lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {}); }, - "../node_modules/.pnpm/@actions+http-client@2.2.3/node_modules/@actions/http-client/lib/proxy.js" (__unused_rspack_module, exports1) { + "../node_modules/.pnpm/@actions+http-client@3.0.2/node_modules/@actions/http-client/lib/proxy.js" (__unused_rspack_module, exports1) { "use strict"; Object.defineProperty(exports1, "__esModule", { value: true }); - exports1.checkBypass = exports1.getProxyUrl = void 0; + exports1.getProxyUrl = getProxyUrl; + exports1.checkBypass = checkBypass; function getProxyUrl(reqUrl) { const usingSsl = 'https:' === reqUrl.protocol; if (checkBypass(reqUrl)) return; @@ -796,7 +575,6 @@ var __webpack_modules__ = { if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://')) return new DecodedURL(`http://${proxyVar}`); } } - exports1.getProxyUrl = getProxyUrl; function checkBypass(reqUrl) { if (!reqUrl.hostname) return false; const reqHost = reqUrl.hostname; @@ -814,7 +592,6 @@ var __webpack_modules__ = { for (const upperNoProxyItem of noProxy.split(',').map((x)=>x.trim().toUpperCase()).filter((x)=>x))if ('*' === upperNoProxyItem || upperReqHosts.some((x)=>x === upperNoProxyItem || x.endsWith(`.${upperNoProxyItem}`) || upperNoProxyItem.startsWith('.') && x.endsWith(`${upperNoProxyItem}`))) return true; return false; } - exports1.checkBypass = checkBypass; function isLoopbackAddress(host) { const hostLower = host.toLowerCase(); return 'localhost' === hostLower || hostLower.startsWith('127.') || hostLower.startsWith('[::1]') || hostLower.startsWith('[0:0:0:0:0:0:0:1]'); @@ -833,16515 +610,523 @@ var __webpack_modules__ = { } } }, - "../node_modules/.pnpm/@octokit+core@5.2.2/node_modules/@octokit/core/dist-web/index.js" (__unused_rspack_module, __webpack_exports__, __webpack_require__) { + "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js" (module, __unused_rspack_exports, __webpack_require__) { "use strict"; - __webpack_require__.d(__webpack_exports__, { - Octokit: ()=>Octokit - }); - function getUserAgent() { - if ("object" == typeof navigator && "userAgent" in navigator) return navigator.userAgent; - if ("object" == typeof process && void 0 !== process.version) return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; - return ""; - } - var before_after_hook = __webpack_require__("../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/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 ("object" != typeof value || null === value) return false; - if ("[object Object]" !== Object.prototype.toString.call(value)) return false; - const proto = Object.getPrototypeOf(value); - if (null === proto) return true; - const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; - return "function" == typeof Ctor && 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) result[key] = mergeDeep(defaults[key], options[key]); - else Object.assign(result, { - [key]: options[key] - }); - else Object.assign(result, { - [key]: options[key] - }); - }); - return result; - } - function removeUndefinedProperties(obj) { - for(const key in obj)if (void 0 === obj[key]) delete obj[key]; - return obj; + const cp = __webpack_require__("child_process"); + const parse = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js"); + const enoent = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js"); + function spawn(command, args, options) { + const parsed = parse(command, args, options); + const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); + enoent.hookChildProcess(spawned, parsed); + return spawned; } - function merge(defaults, route, options) { - if ("string" == typeof route) { - 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 ("/graphql" === options.url) { - if (defaults && defaults.mediaType.previews?.length) mergedOptions.mediaType.previews = defaults.mediaType.previews.filter((preview)=>!mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); - mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview)=>preview.replace(/-preview/, "")); - } - return mergedOptions; - } - function addQueryParameters(url, parameters) { - const separator = /\?/.test(url) ? "&" : "?"; - const names = Object.keys(parameters); - if (0 === names.length) return url; - return url + separator + names.map((name)=>{ - if ("q" === name) return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); - } - const urlVariableRegex = /\{[^{}}]+\}/g; - function removeNonChars(variableName) { - return variableName.replace(/(?:^\W+)|(?:(?a.concat(b), []); - } - function omit(object, keysToOmit) { - const result = { - __proto__: null - }; - for (const key of Object.keys(object))if (-1 === keysToOmit.indexOf(key)) result[key] = object[key]; + function spawnSync(command, args, options) { + const parsed = parse(command, args, options); + const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); + result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); 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(); + module.exports = spawn; + module.exports.spawn = spawn; + module.exports.sync = spawnSync; + module.exports._parse = parse; + module.exports._enoent = enoent; + }, + "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js" (module) { + "use strict"; + const isWin = 'win32' === process.platform; + function notFoundError(original, syscall) { + return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { + code: 'ENOENT', + errno: 'ENOENT', + syscall: `${syscall} ${original.command}`, + path: original.command, + spawnargs: original.args }); } - function encodeValue(operator, value, key) { - value = "+" === operator || "#" === operator ? encodeReserved(value) : encodeUnreserved(value); - if (key) return encodeUnreserved(key) + "=" + value; - return value; + function hookChildProcess(cp, parsed) { + if (!isWin) return; + const originalEmit = cp.emit; + cp.emit = function(name, arg1) { + if ('exit' === name) { + const err = verifyENOENT(arg1, parsed); + if (err) return originalEmit.call(cp, 'error', err); + } + return originalEmit.apply(cp, arguments); + }; } - function isDefined(value) { - return null != value; + function verifyENOENT(status, parsed) { + if (isWin && 1 === status && !parsed.file) return notFoundError(parsed.original, 'spawn'); + return null; } - function isKeyOperator(operator) { - return ";" === operator || "&" === operator || "?" === operator; + function verifyENOENTSync(status, parsed) { + if (isWin && 1 === status && !parsed.file) return notFoundError(parsed.original, 'spawnSync'); + return null; } - function getValues(context, operator, key, modifier) { - var value = context[key], result = []; - if (isDefined(value) && "" !== value) if ("string" == typeof value || "number" == typeof value || "boolean" == typeof value) { - 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 (0 !== tmp.length) result.push(tmp.join(",")); + module.exports = { + hookChildProcess, + verifyENOENT, + verifyENOENTSync, + notFoundError + }; + }, + "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const path = __webpack_require__("path"); + const resolveCommand = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js"); + const escape = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js"); + const readShebang = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js"); + const isWin = 'win32' === process.platform; + const isExecutableRegExp = /\.(?:com|exe)$/i; + const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; + function detectShebang(parsed) { + parsed.file = resolveCommand(parsed); + const shebang = parsed.file && readShebang(parsed.file); + if (shebang) { + parsed.args.unshift(parsed.file); + parsed.command = shebang; + return resolveCommand(parsed); } - 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) - }; + return parsed.file; } - function expand(template, context) { - var operators = [ - "+", - "#", - ".", - "/", - ";", - "?", - "&" - ]; - template = template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function(_, expression, literal) { - if (!expression) return encodeReserved(literal); - { - let operator = ""; - const values = []; - if (-1 !== operators.indexOf(expression.charAt(0))) { - 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) return values.join(","); - var separator = ","; - if ("?" === operator) separator = "&"; - else if ("#" !== operator) separator = operator; - return (0 !== values.length ? operator : "") + values.join(separator); - } - }); - if ("/" === template) return template; - return template.replace(/\/$/, ""); - } - function parse(options) { - let method = options.method.toUpperCase(); - let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); - let headers = Object.assign({}, options.headers); - let body; - let parameters = omit(options, [ - "method", - "baseUrl", - "url", - "headers", - "request", - "mediaType" - ]); - const urlVariableNames = extractUrlVariableNames(url); - url = parseUrl(url).expand(parameters); - if (!/^http/.test(url)) url = options.baseUrl + url; - const omittedParameters = Object.keys(options).filter((option)=>urlVariableNames.includes(option)).concat("baseUrl"); - const remainingParameters = omit(parameters, omittedParameters); - const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); - if (!isBinaryRequest) { - if (options.mediaType.format) headers.accept = headers.accept.split(/,/).map((format)=>format.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); - if (url.endsWith("/graphql")) { - if (options.mediaType.previews?.length) { - const previewsFromAcceptHeader = headers.accept.match(/(?{ - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); - } - } + function parseNonShell(parsed) { + if (!isWin) return parsed; + const commandFile = detectShebang(parsed); + const needsShell = !isExecutableRegExp.test(commandFile); + if (parsed.options.forceShell || needsShell) { + const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); + parsed.command = path.normalize(parsed.command); + parsed.command = escape.command(parsed.command); + parsed.args = parsed.args.map((arg)=>escape.argument(arg, needsDoubleEscapeMetaChars)); + const shellCommand = [ + parsed.command + ].concat(parsed.args).join(' '); + parsed.args = [ + '/d', + '/s', + '/c', + `"${shellCommand}"` + ]; + parsed.command = process.env.comspec || 'cmd.exe'; + parsed.options.windowsVerbatimArguments = true; } - 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"] && void 0 !== body) headers["content-type"] = "application/json; charset=utf-8"; - if ([ - "PATCH", - "PUT" - ].includes(method) && void 0 === body) body = ""; - return Object.assign({ - method, - url, - headers - }, void 0 !== body ? { - body - } : null, options.request ? { - request: options.request - } : null); - } - function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); - } - function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS = merge(oldDefaults, newDefaults); - const endpoint = endpointWithDefaults.bind(null, DEFAULTS); - return Object.assign(endpoint, { - DEFAULTS, - defaults: withDefaults.bind(null, DEFAULTS), - merge: merge.bind(null, DEFAULTS), - parse: parse - }); + return parsed; } - const userAgent = `octokit-endpoint.js/9.0.6 ${getUserAgent()}`; - const defaults_DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "" - } - }; - const dist_src_endpoint = withDefaults(null, defaults_DEFAULTS); - function is_plain_object_isPlainObject(value) { - if ("object" != typeof value || null === value) return false; - if ("[object Object]" !== Object.prototype.toString.call(value)) return false; - const proto = Object.getPrototypeOf(value); - if (null === proto) return true; - const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; - return "function" == typeof Ctor && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); - } - class Deprecation extends Error { - constructor(message){ - super(message); - if (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor); - this.name = 'Deprecation'; + function parse(command, args, options) { + if (args && !Array.isArray(args)) { + options = args; + args = null; } + args = args ? args.slice(0) : []; + options = Object.assign({}, options); + const parsed = { + command, + args, + options, + file: void 0, + original: { + command, + args + } + }; + return options.shell ? parsed : parseNonShell(parsed); } - var once = __webpack_require__("../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js"); - var once_default = /*#__PURE__*/ __webpack_require__.n(once); - const logOnceCode = once_default()((deprecation)=>console.warn(deprecation)); - const logOnceHeaders = once_default()((deprecation)=>console.warn(deprecation)); - class RequestError 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 && void 0 !== options.headers) 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(/(?&|;, *?])/g; + function escapeCommand(arg) { + arg = arg.replace(metaCharsRegExp, '^$1'); + return arg; + } + function escapeArgument(arg, doubleEscapeMetaChars) { + arg = `${arg}`; + arg = arg.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"'); + arg = arg.replace(/(?=(\\+?)?)\1$/, '$1$1'); + arg = `"${arg}"`; + arg = arg.replace(metaCharsRegExp, '^$1'); + if (doubleEscapeMetaChars) arg = arg.replace(metaCharsRegExp, '^$1'); + return arg; + } + module.exports.command = escapeCommand; + module.exports.argument = escapeArgument; + }, + "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const fs = __webpack_require__("fs"); + const shebangCommand = __webpack_require__("../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js"); + function readShebang(command) { + const size = 150; + const buffer = Buffer.alloc(size); + let fd; + try { + fd = fs.openSync(command, 'r'); + fs.readSync(fd, buffer, 0, size, 0); + fs.closeSync(fd); + } catch (e) {} + return shebangCommand(buffer.toString()); + } + module.exports = readShebang; + }, + "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const path = __webpack_require__("path"); + const which = __webpack_require__("../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js"); + const getPathKey = __webpack_require__("../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js"); + function resolveCommandAttempt(parsed, withoutPathExt) { + const env = parsed.options.env || process.env; + const cwd = process.cwd(); + const hasCustomCwd = null != parsed.options.cwd; + const shouldSwitchCwd = hasCustomCwd && void 0 !== process.chdir && !process.chdir.disabled; + if (shouldSwitchCwd) try { + process.chdir(parsed.options.cwd); + } catch (err) {} + let resolved; + try { + resolved = which.sync(parsed.command, { + path: env[getPathKey({ + env + })], + pathExt: withoutPathExt ? path.delimiter : void 0 }); + } catch (e) {} finally{ + if (shouldSwitchCwd) process.chdir(cwd); } + if (resolved) resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved); + return resolved; } - function getBufferResponse(response) { - return response.arrayBuffer(); - } - function fetchWrapper(requestOptions) { - const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; - const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false; - if (is_plain_object_isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) requestOptions.body = JSON.stringify(requestOptions.body); - let headers = {}; - let status; - let url; - let { fetch } = globalThis; - if (requestOptions.request?.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: requestOptions.request?.redirect, - headers: requestOptions.headers, - signal: requestOptions.request?.signal, - ...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 (204 === status || 205 === status) return; - if ("HEAD" === requestOptions.method) { - if (status < 400) return; - throw new RequestError(response.statusText, status, { - response: { - url, - status, - headers, - data: void 0 - }, - request: requestOptions + function resolveCommand(parsed) { + return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); + } + module.exports = resolveCommand; + }, + "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js" (module, __unused_rspack_exports, __webpack_require__) { + __webpack_require__("fs"); + var core; + core = 'win32' === process.platform || global.TESTING_WINDOWS ? __webpack_require__("../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js") : __webpack_require__("../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js"); + module.exports = isexe; + isexe.sync = sync; + function isexe(path, options, cb) { + if ('function' == typeof options) { + cb = options; + options = {}; + } + if (!cb) { + if ('function' != typeof Promise) throw new TypeError('callback not provided'); + return new Promise(function(resolve, reject) { + isexe(path, options || {}, function(er, is) { + if (er) reject(er); + else resolve(is); }); - } - if (304 === status) 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)=>({ - status, - url, - headers, - data - })).catch((error)=>{ - if (error instanceof RequestError) throw error; - if ("AbortError" === error.name) throw error; - let message = error.message; - if ("TypeError" === error.name && "cause" in error) { - if (error.cause instanceof Error) message = error.cause.message; - else if ("string" == typeof error.cause) message = error.cause; + } + core(path, options || {}, function(er, is) { + if (er) { + if ('EACCES' === er.code || options && options.ignoreErrors) { + er = null; + is = false; + } } - 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 ("string" == typeof data) return data; - let suffix; - suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : ""; - 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 with_defaults_withDefaults(oldEndpoint, newDefaults) { - const endpoint = oldEndpoint.defaults(newDefaults); - const newApi = function(route, parameters) { - const endpointOptions = endpoint.merge(route, parameters); - if (!endpointOptions.request || !endpointOptions.request.hook) return fetchWrapper(endpoint.parse(endpointOptions)); - const request = (route2, parameters2)=>fetchWrapper(endpoint.parse(endpoint.merge(route2, parameters2))); - Object.assign(request, { - endpoint, - defaults: with_defaults_withDefaults.bind(null, endpoint) - }); - return endpointOptions.request.hook(request, endpointOptions); - }; - return Object.assign(newApi, { - endpoint, - defaults: with_defaults_withDefaults.bind(null, endpoint) + cb(er, is); }); } - const dist_src_request = with_defaults_withDefaults(dist_src_endpoint, { - headers: { - "user-agent": `octokit-request.js/8.4.1 ${getUserAgent()}` + function sync(path, options) { + try { + return core.sync(path, options || {}); + } catch (er) { + if (options && options.ignoreErrors || 'EACCES' === er.code) return false; + throw er; } - }); - var VERSION = "7.1.1"; - function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors: -` + data.errors.map((e)=>` - ${e.message}`).join("\n"); } - var GraphqlResponseError = class extends Error { - constructor(request2, headers, response){ - super(_buildMessageForResponseErrors(response)); - this.request = request2; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; - this.errors = response.errors; - this.data = response.data; - if (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor); - } - }; - var NON_VARIABLE_OPTIONS = [ - "method", - "baseUrl", - "url", - "headers", - "request", - "query", - "mediaType" - ]; - var FORBIDDEN_VARIABLE_OPTIONS = [ - "query", - "method", - "url" - ]; - var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; - function graphql(request2, query, options) { - if (options) { - if ("string" == typeof query && "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)) return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`)); - } - const parsedOptions = "string" == typeof query ? 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; + }, + "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js" (module, __unused_rspack_exports, __webpack_require__) { + module.exports = isexe; + isexe.sync = sync; + var fs = __webpack_require__("fs"); + function isexe(path, options, cb) { + fs.stat(path, function(er, stat) { + cb(er, er ? false : checkStat(stat, options)); }); } - function dist_web_withDefaults(request2, newDefaults) { - const newRequest = request2.defaults(newDefaults); - const newApi = (query, options)=>graphql(newRequest, query, options); - return Object.assign(newApi, { - defaults: dist_web_withDefaults.bind(null, newRequest), - endpoint: newRequest.endpoint - }); + function sync(path, options) { + return checkStat(fs.statSync(path), options); } - dist_web_withDefaults(dist_src_request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}` - }, - method: "POST", - url: "/graphql" - }); - function withCustomRequest(customRequest) { - return dist_web_withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); + function checkStat(stat, options) { + return stat.isFile() && checkMode(stat, options); } - const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; - const REGEX_IS_INSTALLATION = /^ghs_/; - const REGEX_IS_USER_TO_SERVER = /^ghu_/; - async function auth_auth(token) { - const isApp = 3 === token.split(/\./).length; - 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 checkMode(stat, options) { + var mod = stat.mode; + var uid = stat.uid; + var gid = stat.gid; + var myUid = void 0 !== options.uid ? options.uid : process.getuid && process.getuid(); + var myGid = void 0 !== options.gid ? options.gid : process.getgid && process.getgid(); + var u = parseInt('100', 8); + var g = parseInt('010', 8); + var o = parseInt('001', 8); + var ug = u | g; + var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && 0 === myUid; + return ret; } - function withAuthorizationPrefix(token) { - if (3 === token.split(/\./).length) return `bearer ${token}`; - return `token ${token}`; - } - async function hook_hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge(route, parameters); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); - } - const createTokenAuth = function(token) { - if (!token) throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); - if ("string" != typeof token) throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); - token = token.replace(/^(token|bearer) +/i, ""); - return Object.assign(auth_auth.bind(null, token), { - hook: hook_hook.bind(null, token) - }); - }; - var dist_web_VERSION = "5.2.2"; - var noop = ()=>{}; - var consoleWarn = console.warn.bind(console); - var consoleError = console.error.bind(console); - function createLogger(logger = {}) { - if ("function" != typeof logger.debug) logger.debug = noop; - if ("function" != typeof logger.info) logger.info = noop; - if ("function" != typeof logger.warn) logger.warn = consoleWarn; - if ("function" != typeof logger.error) logger.error = consoleError; - return logger; - } - var userAgentTrail = `octokit-core.js/${dist_web_VERSION} ${getUserAgent()}`; - var Octokit = class { - static{ - this.VERSION = dist_web_VERSION; - } - static defaults(defaults) { - const OctokitWithDefaults = class extends this { - constructor(...args){ - const options = args[0] || {}; - if ("function" == typeof defaults) return void super(defaults(options)); - super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { - userAgent: `${options.userAgent} ${defaults.userAgent}` - } : null)); - } - }; - return OctokitWithDefaults; - } - static{ - this.plugins = []; - } - static plugin(...newPlugins) { - const currentPlugins = this.plugins; - const NewOctokit = class extends this { - static{ - this.plugins = currentPlugins.concat(newPlugins.filter((plugin)=>!currentPlugins.includes(plugin))); - } - }; - return NewOctokit; - } - constructor(options = {}){ - const hook = new before_after_hook.Collection(); - const requestDefaults = { - baseUrl: dist_src_request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" - } - }; - requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; - if (options.baseUrl) requestDefaults.baseUrl = options.baseUrl; - if (options.previews) requestDefaults.mediaType.previews = options.previews; - if (options.timeZone) requestDefaults.headers["time-zone"] = options.timeZone; - this.request = dist_src_request.defaults(requestDefaults); - this.graphql = withCustomRequest(this.request).defaults(requestDefaults); - this.log = createLogger(options.log); - this.hook = hook; - if (options.authStrategy) { - const { authStrategy, ...otherOptions } = options; - const auth = authStrategy(Object.assign({ - request: this.request, - log: this.log, - octokit: this, - octokitOptions: otherOptions - }, options.auth)); - hook.wrap("request", auth.hook); - this.auth = auth; - } else if (options.auth) { - const auth = createTokenAuth(options.auth); - hook.wrap("request", auth.hook); - this.auth = auth; - } else this.auth = async ()=>({ - type: "unauthenticated" - }); - const classConstructor = this.constructor; - for(let i = 0; i < classConstructor.plugins.length; ++i)Object.assign(this, classConstructor.plugins[i](this, options)); - } - }; }, - "../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.2_@octokit+core@5.2.2/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js" (__unused_rspack_module, __webpack_exports__, __webpack_require__) { - "use strict"; - var VERSION = "9.2.2"; - 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 (void 0 !== incompleteResults) response.data.incomplete_results = incompleteResults; - if (void 0 !== repositorySelection) response.data.repository_selection = repositorySelection; - response.data.total_count = totalCount; - return response; - } - function iterator(octokit, route, parameters) { - const options = "function" == typeof route ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); - const requestMethod = "function" == typeof route ? 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 (409 !== error.status) throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } - }) - }; - } - function paginate(octokit, route, parameters, mapFn) { - if ("function" == typeof parameters) { - mapFn = parameters; - parameters = void 0; + "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js" (module, __unused_rspack_exports, __webpack_require__) { + module.exports = isexe; + isexe.sync = sync; + var fs = __webpack_require__("fs"); + function checkPathExt(path, options) { + var pathext = void 0 !== options.pathExt ? options.pathExt : process.env.PATHEXT; + if (!pathext) return true; + pathext = pathext.split(';'); + if (-1 !== pathext.indexOf('')) return true; + for(var i = 0; i < pathext.length; i++){ + var p = pathext[i].toLowerCase(); + if (p && path.substr(-p.length).toLowerCase() === p) return true; } - return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); + return false; } - function gather(octokit, results, iterator2, mapFn) { - return iterator2.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, iterator2, mapFn); + function checkStat(stat, path, options) { + if (!stat.isSymbolicLink() && !stat.isFile()) return false; + return checkPathExt(path, options); + } + function isexe(path, options, cb) { + fs.stat(path, function(er, stat) { + cb(er, er ? false : checkStat(stat, path, options)); }); } - Object.assign(paginate, { - iterator - }); - function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; + function sync(path, options) { + return checkStat(fs.statSync(path), path, options); } - paginateRest.VERSION = VERSION; - __webpack_require__.d(__webpack_exports__, { - paginateRest: ()=>paginateRest - }); }, - "../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.2/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js" (__unused_rspack_module, __webpack_exports__, __webpack_require__) { + "../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js" (module) { "use strict"; - __webpack_require__.d(__webpack_exports__, { - restEndpointMethods: ()=>restEndpointMethods - }); - const 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 /repositories/{repository_id}/environments/{environment_name}/variables" - ], - createOrUpdateEnvironmentSecret: [ - "PUT /repositories/{repository_id}/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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - deleteEnvironmentVariable: [ - "DELETE /repositories/{repository_id}/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 /repositories/{repository_id}/environments/{environment_name}/secrets/public-key" - ], - getEnvironmentSecret: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - getEnvironmentVariable: [ - "GET /repositories/{repository_id}/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" - ] + const pathKey = (options = {})=>{ + const environment = options.env || process.env; + const platform = options.platform || process.platform; + if ('win32' !== platform) return 'PATH'; + return Object.keys(environment).reverse().find((key)=>'PATH' === key.toUpperCase()) || 'Path'; + }; + module.exports = pathKey; + module.exports["default"] = pathKey; + }, + "../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js" (module, __unused_rspack_exports, __webpack_require__) { + "use strict"; + const shebangRegex = __webpack_require__("../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js"); + module.exports = (string = '')=>{ + const match = string.match(shebangRegex); + if (!match) return null; + const [path, argument] = match[0].replace(/#! ?/, '').split(' '); + const binary = path.split('/').pop(); + if ('env' === binary) return argument; + return argument ? `${binary} ${argument}` : binary; + }; + }, + "../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js" (module) { + "use strict"; + module.exports = /^#!(.*)/; + }, + "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js" (module, __unused_rspack_exports, __webpack_require__) { + module.exports = __webpack_require__("../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js"); + }, + "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js" (__unused_rspack_module, exports1, __webpack_require__) { + "use strict"; + __webpack_require__("net"); + var tls = __webpack_require__("tls"); + var http = __webpack_require__("http"); + var https = __webpack_require__("https"); + var events = __webpack_require__("events"); + __webpack_require__("assert"); + var util = __webpack_require__("util"); + exports1.httpOverHttp = httpOverHttp; + exports1.httpsOverHttp = httpsOverHttp; + exports1.httpOverHttps = httpOverHttps; + exports1.httpsOverHttps = httpsOverHttps; + function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; + } + function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; + } + function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; + } + function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; + } + function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; + self.on('free', function(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for(var i = 0, len = self.requests.length; i < len; ++i){ + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; } - ], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets" - ], - listEnvironmentVariables: [ - "GET /repositories/{repository_id}/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 /repositories/{repository_id}/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" - ] + } + socket.destroy(); + self.removeSocket(socket); + }); + } + util.inherits(TunnelingAgent, events.EventEmitter); + TunnelingAgent.prototype.addRequest = function(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({ + request: req + }, self.options, toOptions(host, port, localAddress)); + if (self.sockets.length >= this.maxSockets) return void self.requests.push(options); + self.createSocket(options, function(socket) { + socket.on('free', onFree); + socket.on('close', onCloseOrRemove); + socket.on('agentRemove', onCloseOrRemove); + req.onSocket(socket); + function onFree() { + self.emit('free', socket, options); + } + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); + }; + TunnelingAgent.prototype.createSocket = function(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port + } + }); + if (options.localAddress) connectOptions.localAddress = options.localAddress; + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {}; + connectOptions.headers['Proxy-Authorization'] = 'Basic ' + new Buffer(connectOptions.proxyAuth).toString('base64'); + } + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; + connectReq.once('response', onResponse); + connectReq.once('upgrade', onUpgrade); + connectReq.once('connect', onConnect); + connectReq.once('error', onError); + connectReq.end(); + function onResponse(res) { + res.upgrade = true; + } + function onUpgrade(res, socket, head) { + process.nextTick(function() { + onConnect(res, socket, head); + }); + } + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); + if (200 !== res.statusCode) { + debug('tunneling socket could not be established, statusCode=%d', res.statusCode); + socket.destroy(); + var error = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + if (head.length > 0) { + debug('got illegal response body from proxy'); + socket.destroy(); + var error = new Error('got illegal response body from proxy'); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } + function onError(cause) { + connectReq.removeAllListeners(); + debug('tunneling socket could not be established, cause=%s\n', cause.message, cause.stack); + var error = new Error("tunneling socket could not be established, cause=" + cause.message); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + } + }; + TunnelingAgent.prototype.removeSocket = function(socket) { + var pos = this.sockets.indexOf(socket); + if (-1 === pos) return; + this.sockets.splice(pos, 1); + var pending = this.requests.shift(); + if (pending) this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + }; + function createSecureSocket(options, cb) { + var self = this; + TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + var hostHeader = options.request.getHeader('host'); + var tlsOptions = mergeOptions({}, self.options, { + socket: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); + } + function toOptions(host, port, localAddress) { + if ('string' == typeof host) return { + host: host, + port: port, + localAddress: localAddress + }; + return host; + } + function mergeOptions(target) { + for(var i = 1, len = arguments.length; i < len; ++i){ + var overrides = arguments[i]; + if ('object' == typeof overrides) { + var keys = Object.keys(overrides); + for(var j = 0, keyLen = keys.length; j < keyLen; ++j){ + var k = keys[j]; + if (void 0 !== overrides[k]) target[k] = overrides[k]; } - ], - 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" - ] - }, - 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: { - cancelImport: [ - "DELETE /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import" - } - ], - 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" - ], - getCommitAuthors: [ - "GET /repos/{owner}/{repo}/import/authors", - {}, - { - deprecated: "octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors" - } - ], - getImportStatus: [ - "GET /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status" - } - ], - getLargeFiles: [ - "GET /repos/{owner}/{repo}/import/large_files", - {}, - { - deprecated: "octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files" - } - ], - 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" - ] - } - ], - mapCommitAuthor: [ - "PATCH /repos/{owner}/{repo}/import/authors/{author_id}", - {}, - { - deprecated: "octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" - } - ], - setLfsPreference: [ - "PATCH /repos/{owner}/{repo}/import/lfs", - {}, - { - deprecated: "octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" - } - ], - startForAuthenticatedUser: [ - "POST /user/migrations" - ], - startForOrg: [ - "POST /orgs/{org}/migrations" - ], - startImport: [ - "PUT /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import" - } - ], - unlockRepoForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" - ], - unlockRepoForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" - ], - updateImport: [ - "PATCH /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import" - } - ] - }, - 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}" - ], - 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; - const endpointMethodsMap = /* @__PURE__ */ new Map(); - for (const [scope, endpoints] of Object.entries(endpoints_default))for (const [methodName, endpoint] of Object.entries(endpoints)){ - const [route, defaults, decorations] = endpoint; - 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 - }); - } - const handler = { - has ({ scope }, methodName) { - return endpointMethodsMap.get(scope).has(methodName); - }, - getOwnPropertyDescriptor (target, methodName) { - return { - value: this.get(target, methodName), - 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; - 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 = "10.4.1"; - function legacyRestEndpointMethods(octokit) { - const api = endpointsToMethods(octokit); - return { - ...api, - rest: api - }; - } - legacyRestEndpointMethods.VERSION = "10.4.1"; - }, - "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/index.js" (module, __unused_rspack_exports, __webpack_require__) { - var register = __webpack_require__("../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/register.js"); - var addHook = __webpack_require__("../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/add.js"); - var removeHook = __webpack_require__("../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/remove.js"); - var bind = Function.bind; - var bindable = bind.bind(bind); - function bindApi(hook, state, name) { - var removeHookRef = bindable(removeHook, null).apply(null, name ? [ - state, - name - ] : [ - state - ]); - hook.api = { - remove: removeHookRef - }; - hook.remove = removeHookRef; - [ - "before", - "error", - "after", - "wrap" - ].forEach(function(kind) { - var args = name ? [ - state, - kind, - name - ] : [ - state, - kind - ]; - hook[kind] = hook.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 hook = register.bind(null, state); - bindApi(hook, state); - return hook; - } - 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/before-after-hook@2.2.3/node_modules/before-after-hook/lib/add.js" (module) { - module.exports = addHook; - function addHook(state, kind, name, hook) { - var orig = hook; - if (!state.registry[name]) state.registry[name] = []; - if ("before" === kind) hook = function(method, options) { - return Promise.resolve().then(orig.bind(null, options)).then(method.bind(null, options)); - }; - if ("after" === kind) hook = 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 ("error" === kind) hook = function(method, options) { - return Promise.resolve().then(method.bind(null, options)).catch(function(error) { - return orig(error, options); - }); - }; - state.registry[name].push({ - hook: hook, - orig: orig - }); - } - }, - "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/register.js" (module) { - module.exports = register; - function register(state, name, method, options) { - if ("function" != typeof method) throw new Error("method for before hook must be a function"); - if (!options) options = {}; - if (Array.isArray(name)) return name.reverse().reduce(function(callback, name) { - return register.bind(null, state, name, callback, options); - }, method)(); - return Promise.resolve().then(function() { - if (!state.registry[name]) return method(options); - return state.registry[name].reduce(function(method, registered) { - return registered.hook.bind(null, method, options); - }, method)(); - }); - } - }, - "../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/lib/remove.js" (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 (-1 === index) return; - state.registry[name].splice(index, 1); - } - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const cp = __webpack_require__("child_process"); - const parse = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js"); - const enoent = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js"); - function spawn(command, args, options) { - const parsed = parse(command, args, options); - const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); - enoent.hookChildProcess(spawned, parsed); - return spawned; - } - function spawnSync(command, args, options) { - const parsed = parse(command, args, options); - const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); - result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); - return result; - } - module.exports = spawn; - module.exports.spawn = spawn; - module.exports.sync = spawnSync; - module.exports._parse = parse; - module.exports._enoent = enoent; - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js" (module) { - "use strict"; - const isWin = 'win32' === process.platform; - function notFoundError(original, syscall) { - return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { - code: 'ENOENT', - errno: 'ENOENT', - syscall: `${syscall} ${original.command}`, - path: original.command, - spawnargs: original.args - }); - } - function hookChildProcess(cp, parsed) { - if (!isWin) return; - const originalEmit = cp.emit; - cp.emit = function(name, arg1) { - if ('exit' === name) { - const err = verifyENOENT(arg1, parsed); - if (err) return originalEmit.call(cp, 'error', err); - } - return originalEmit.apply(cp, arguments); - }; - } - function verifyENOENT(status, parsed) { - if (isWin && 1 === status && !parsed.file) return notFoundError(parsed.original, 'spawn'); - return null; - } - function verifyENOENTSync(status, parsed) { - if (isWin && 1 === status && !parsed.file) return notFoundError(parsed.original, 'spawnSync'); - return null; - } - module.exports = { - hookChildProcess, - verifyENOENT, - verifyENOENTSync, - notFoundError - }; - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const path = __webpack_require__("path"); - const resolveCommand = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js"); - const escape = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js"); - const readShebang = __webpack_require__("../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js"); - const isWin = 'win32' === process.platform; - const isExecutableRegExp = /\.(?:com|exe)$/i; - const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; - function detectShebang(parsed) { - parsed.file = resolveCommand(parsed); - const shebang = parsed.file && readShebang(parsed.file); - if (shebang) { - parsed.args.unshift(parsed.file); - parsed.command = shebang; - return resolveCommand(parsed); - } - return parsed.file; - } - function parseNonShell(parsed) { - if (!isWin) return parsed; - const commandFile = detectShebang(parsed); - const needsShell = !isExecutableRegExp.test(commandFile); - if (parsed.options.forceShell || needsShell) { - const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); - parsed.command = path.normalize(parsed.command); - parsed.command = escape.command(parsed.command); - parsed.args = parsed.args.map((arg)=>escape.argument(arg, needsDoubleEscapeMetaChars)); - const shellCommand = [ - parsed.command - ].concat(parsed.args).join(' '); - parsed.args = [ - '/d', - '/s', - '/c', - `"${shellCommand}"` - ]; - parsed.command = process.env.comspec || 'cmd.exe'; - parsed.options.windowsVerbatimArguments = true; - } - return parsed; - } - function parse(command, args, options) { - if (args && !Array.isArray(args)) { - options = args; - args = null; - } - args = args ? args.slice(0) : []; - options = Object.assign({}, options); - const parsed = { - command, - args, - options, - file: void 0, - original: { - command, - args - } - }; - return options.shell ? parsed : parseNonShell(parsed); - } - module.exports = parse; - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js" (module) { - "use strict"; - const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; - function escapeCommand(arg) { - arg = arg.replace(metaCharsRegExp, '^$1'); - return arg; - } - function escapeArgument(arg, doubleEscapeMetaChars) { - arg = `${arg}`; - arg = arg.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"'); - arg = arg.replace(/(?=(\\+?)?)\1$/, '$1$1'); - arg = `"${arg}"`; - arg = arg.replace(metaCharsRegExp, '^$1'); - if (doubleEscapeMetaChars) arg = arg.replace(metaCharsRegExp, '^$1'); - return arg; - } - module.exports.command = escapeCommand; - module.exports.argument = escapeArgument; - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const fs = __webpack_require__("fs"); - const shebangCommand = __webpack_require__("../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js"); - function readShebang(command) { - const size = 150; - const buffer = Buffer.alloc(size); - let fd; - try { - fd = fs.openSync(command, 'r'); - fs.readSync(fd, buffer, 0, size, 0); - fs.closeSync(fd); - } catch (e) {} - return shebangCommand(buffer.toString()); - } - module.exports = readShebang; - }, - "../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const path = __webpack_require__("path"); - const which = __webpack_require__("../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js"); - const getPathKey = __webpack_require__("../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js"); - function resolveCommandAttempt(parsed, withoutPathExt) { - const env = parsed.options.env || process.env; - const cwd = process.cwd(); - const hasCustomCwd = null != parsed.options.cwd; - const shouldSwitchCwd = hasCustomCwd && void 0 !== process.chdir && !process.chdir.disabled; - if (shouldSwitchCwd) try { - process.chdir(parsed.options.cwd); - } catch (err) {} - let resolved; - try { - resolved = which.sync(parsed.command, { - path: env[getPathKey({ - env - })], - pathExt: withoutPathExt ? path.delimiter : void 0 - }); - } catch (e) {} finally{ - if (shouldSwitchCwd) process.chdir(cwd); - } - if (resolved) resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved); - return resolved; - } - function resolveCommand(parsed) { - return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); - } - module.exports = resolveCommand; - }, - "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js" (module, __unused_rspack_exports, __webpack_require__) { - __webpack_require__("fs"); - var core; - core = 'win32' === process.platform || global.TESTING_WINDOWS ? __webpack_require__("../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js") : __webpack_require__("../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js"); - module.exports = isexe; - isexe.sync = sync; - function isexe(path, options, cb) { - if ('function' == typeof options) { - cb = options; - options = {}; - } - if (!cb) { - if ('function' != typeof Promise) throw new TypeError('callback not provided'); - return new Promise(function(resolve, reject) { - isexe(path, options || {}, function(er, is) { - if (er) reject(er); - else resolve(is); - }); - }); - } - core(path, options || {}, function(er, is) { - if (er) { - if ('EACCES' === er.code || options && options.ignoreErrors) { - er = null; - is = false; - } - } - cb(er, is); - }); - } - function sync(path, options) { - try { - return core.sync(path, options || {}); - } catch (er) { - if (options && options.ignoreErrors || 'EACCES' === er.code) return false; - throw er; - } - } - }, - "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js" (module, __unused_rspack_exports, __webpack_require__) { - module.exports = isexe; - isexe.sync = sync; - var fs = __webpack_require__("fs"); - function isexe(path, options, cb) { - fs.stat(path, function(er, stat) { - cb(er, er ? false : checkStat(stat, options)); - }); - } - function sync(path, options) { - return checkStat(fs.statSync(path), options); - } - function checkStat(stat, options) { - return stat.isFile() && checkMode(stat, options); - } - function checkMode(stat, options) { - var mod = stat.mode; - var uid = stat.uid; - var gid = stat.gid; - var myUid = void 0 !== options.uid ? options.uid : process.getuid && process.getuid(); - var myGid = void 0 !== options.gid ? options.gid : process.getgid && process.getgid(); - var u = parseInt('100', 8); - var g = parseInt('010', 8); - var o = parseInt('001', 8); - var ug = u | g; - var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && 0 === myUid; - return ret; - } - }, - "../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js" (module, __unused_rspack_exports, __webpack_require__) { - module.exports = isexe; - isexe.sync = sync; - var fs = __webpack_require__("fs"); - function checkPathExt(path, options) { - var pathext = void 0 !== options.pathExt ? options.pathExt : process.env.PATHEXT; - if (!pathext) return true; - pathext = pathext.split(';'); - if (-1 !== pathext.indexOf('')) return true; - for(var i = 0; i < pathext.length; i++){ - var p = pathext[i].toLowerCase(); - if (p && path.substr(-p.length).toLowerCase() === p) return true; - } - return false; - } - function checkStat(stat, path, options) { - if (!stat.isSymbolicLink() && !stat.isFile()) return false; - return checkPathExt(path, options); - } - function isexe(path, options, cb) { - fs.stat(path, function(er, stat) { - cb(er, er ? false : checkStat(stat, path, options)); - }); - } - function sync(path, options) { - return checkStat(fs.statSync(path), path, options); - } - }, - "../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js" (module, __unused_rspack_exports, __webpack_require__) { - var wrappy = __webpack_require__("../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js"); - module.exports = wrappy(once); - module.exports.strict = wrappy(onceStrict); - once.proto = once(function() { - Object.defineProperty(Function.prototype, 'once', { - value: function() { - return once(this); - }, - configurable: true - }); - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function() { - return onceStrict(this); - }, - configurable: true - }); - }); - function once(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/path-key@3.1.1/node_modules/path-key/index.js" (module) { - "use strict"; - const pathKey = (options = {})=>{ - const environment = options.env || process.env; - const platform = options.platform || process.platform; - if ('win32' !== platform) return 'PATH'; - return Object.keys(environment).reverse().find((key)=>'PATH' === key.toUpperCase()) || 'Path'; - }; - module.exports = pathKey; - module.exports["default"] = pathKey; - }, - "../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const shebangRegex = __webpack_require__("../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js"); - module.exports = (string = '')=>{ - const match = string.match(shebangRegex); - if (!match) return null; - const [path, argument] = match[0].replace(/#! ?/, '').split(' '); - const binary = path.split('/').pop(); - if ('env' === binary) return argument; - return argument ? `${binary} ${argument}` : binary; - }; - }, - "../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js" (module) { - "use strict"; - module.exports = /^#!(.*)/; - }, - "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js" (module, __unused_rspack_exports, __webpack_require__) { - module.exports = __webpack_require__("../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js"); - }, - "../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - __webpack_require__("net"); - var tls = __webpack_require__("tls"); - var http = __webpack_require__("http"); - var https = __webpack_require__("https"); - var events = __webpack_require__("events"); - __webpack_require__("assert"); - var util = __webpack_require__("util"); - exports1.httpOverHttp = httpOverHttp; - exports1.httpsOverHttp = httpsOverHttp; - exports1.httpOverHttps = httpOverHttps; - exports1.httpsOverHttps = httpsOverHttps; - function httpOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; - } - function httpsOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; - } - function httpOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; - } - function httpsOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; - } - function TunnelingAgent(options) { - var self = this; - self.options = options || {}; - self.proxyOptions = self.options.proxy || {}; - self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - self.on('free', function(socket, host, port, localAddress) { - var options = toOptions(host, port, localAddress); - for(var i = 0, len = self.requests.length; i < len; ++i){ - var pending = self.requests[i]; - if (pending.host === options.host && pending.port === options.port) { - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } - } - socket.destroy(); - self.removeSocket(socket); - }); - } - util.inherits(TunnelingAgent, events.EventEmitter); - TunnelingAgent.prototype.addRequest = function(req, host, port, localAddress) { - var self = this; - var options = mergeOptions({ - request: req - }, self.options, toOptions(host, port, localAddress)); - if (self.sockets.length >= this.maxSockets) return void self.requests.push(options); - self.createSocket(options, function(socket) { - socket.on('free', onFree); - socket.on('close', onCloseOrRemove); - socket.on('agentRemove', onCloseOrRemove); - req.onSocket(socket); - function onFree() { - self.emit('free', socket, options); - } - function onCloseOrRemove(err) { - self.removeSocket(socket); - socket.removeListener('free', onFree); - socket.removeListener('close', onCloseOrRemove); - socket.removeListener('agentRemove', onCloseOrRemove); - } - }); - }; - TunnelingAgent.prototype.createSocket = function(options, cb) { - var self = this; - var placeholder = {}; - self.sockets.push(placeholder); - var connectOptions = mergeOptions({}, self.proxyOptions, { - method: 'CONNECT', - path: options.host + ':' + options.port, - agent: false, - headers: { - host: options.host + ':' + options.port - } - }); - if (options.localAddress) connectOptions.localAddress = options.localAddress; - if (connectOptions.proxyAuth) { - connectOptions.headers = connectOptions.headers || {}; - connectOptions.headers['Proxy-Authorization'] = 'Basic ' + new Buffer(connectOptions.proxyAuth).toString('base64'); - } - debug('making CONNECT request'); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; - connectReq.once('response', onResponse); - connectReq.once('upgrade', onUpgrade); - connectReq.once('connect', onConnect); - connectReq.once('error', onError); - connectReq.end(); - function onResponse(res) { - res.upgrade = true; - } - function onUpgrade(res, socket, head) { - process.nextTick(function() { - onConnect(res, socket, head); - }); - } - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - if (200 !== res.statusCode) { - debug('tunneling socket could not be established, statusCode=%d', res.statusCode); - socket.destroy(); - var error = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - return; - } - if (head.length > 0) { - debug('got illegal response body from proxy'); - socket.destroy(); - var error = new Error('got illegal response body from proxy'); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - return; - } - debug('tunneling connection has established'); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); - } - function onError(cause) { - connectReq.removeAllListeners(); - debug('tunneling socket could not be established, cause=%s\n', cause.message, cause.stack); - var error = new Error("tunneling socket could not be established, cause=" + cause.message); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - } - }; - TunnelingAgent.prototype.removeSocket = function(socket) { - var pos = this.sockets.indexOf(socket); - if (-1 === pos) return; - this.sockets.splice(pos, 1); - var pending = this.requests.shift(); - if (pending) this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); - }; - function createSecureSocket(options, cb) { - var self = this; - TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { - var hostHeader = options.request.getHeader('host'); - var tlsOptions = mergeOptions({}, self.options, { - socket: socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host - }); - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); - } - function toOptions(host, port, localAddress) { - if ('string' == typeof host) return { - host: host, - port: port, - localAddress: localAddress - }; - return host; - } - function mergeOptions(target) { - for(var i = 1, len = arguments.length; i < len; ++i){ - var overrides = arguments[i]; - if ('object' == typeof overrides) { - var keys = Object.keys(overrides); - for(var j = 0, keyLen = keys.length; j < keyLen; ++j){ - var k = keys[j]; - if (void 0 !== overrides[k]) target[k] = overrides[k]; - } - } - } - return target; - } - var debug; - debug = process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG) ? function() { - var args = Array.prototype.slice.call(arguments); - if ('string' == typeof args[0]) args[0] = 'TUNNEL: ' + args[0]; - else args.unshift('TUNNEL:'); - console.error.apply(console, args); - } : function() {}; - exports1.debug = debug; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/client.js"); - const Dispatcher = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher.js"); - const errors = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/balanced-pool.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/agent.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { InvalidArgumentError } = errors; - const api = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/index.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/connect.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-client.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-agent.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-pool.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-errors.js"); - const ProxyAgent = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/proxy-agent.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/RetryHandler.js"); - const { getGlobalDispatcher, setGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/DecoratorHandler.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/RedirectHandler.js"); - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/interceptor/redirectInterceptor.js"); - let hasCrypto; - try { - __webpack_require__("crypto"); - hasCrypto = true; - } catch { - hasCrypto = false; - } - Object.assign(Dispatcher.prototype, api); - module.exports.ProxyAgent = ProxyAgent; - function makeDispatcher(fn) { - return (url, opts, handler)=>{ - if ('function' == typeof opts) { - handler = opts; - opts = null; - } - if (!url || 'string' != typeof url && 'object' != typeof url && !(url instanceof URL)) throw new InvalidArgumentError('invalid url'); - if (null != opts && 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - if (opts && null != opts.path) { - if ('string' != typeof opts.path) throw new InvalidArgumentError('invalid opts.path'); - let path = opts.path; - if (!opts.path.startsWith('/')) path = `/${path}`; - url = new URL(util.parseOrigin(url).origin + path); - } else { - if (!opts) opts = 'object' == typeof url ? url : {}; - url = util.parseURL(url); - } - const { agent, dispatcher = getGlobalDispatcher() } = opts; - if (agent) throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?'); - return fn.call(dispatcher, { - ...opts, - origin: url.origin, - path: url.search ? `${url.pathname}${url.search}` : url.pathname, - method: opts.method || (opts.body ? 'PUT' : 'GET') - }, handler); - }; - } - if (util.nodeMajor > 16 || 16 === util.nodeMajor && util.nodeMinor >= 8) { - let fetchImpl = null; - module.exports.fetch = async function(resource) { - if (!fetchImpl) fetchImpl = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/index.js").fetch; - try { - return await fetchImpl(...arguments); - } catch (err) { - if ('object' == typeof err) Error.captureStackTrace(err, this); - throw err; - } - }; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js").Headers; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/response.js").Response; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/request.js").Request; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/formdata.js").FormData; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/file.js").File; - __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/filereader.js").FileReader; - const { setGlobalOrigin, getGlobalOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js"); - const { CacheStorage } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/cachestorage.js"); - const { kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/symbols.js"); - new CacheStorage(kConstruct); - } - if (util.nodeMajor >= 16) { - const { deleteCookie, getCookies, getSetCookies, setCookie } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/index.js"); - const { parseMIMEType, serializeAMimeType } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - } - if (util.nodeMajor >= 18 && hasCrypto) { - const { WebSocket } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/websocket.js"); - } - makeDispatcher(api.request); - makeDispatcher(api.stream); - makeDispatcher(api.pipeline); - makeDispatcher(api.connect); - makeDispatcher(api.upgrade); - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/agent.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const DispatcherBase = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher-base.js"); - const Pool = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js"); - const Client = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/client.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const createRedirectInterceptor = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/interceptor/redirectInterceptor.js"); - const { WeakRef: WeakRef1, FinalizationRegistry: FinalizationRegistry1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/compat/dispatcher-weakref.js")(); - const kOnConnect = Symbol('onConnect'); - const kOnDisconnect = Symbol('onDisconnect'); - const kOnConnectionError = Symbol('onConnectionError'); - const kMaxRedirections = Symbol('maxRedirections'); - const kOnDrain = Symbol('onDrain'); - const kFactory = Symbol('factory'); - const kFinalizer = Symbol('finalizer'); - const kOptions = Symbol('options'); - function defaultFactory(origin, opts) { - return opts && 1 === opts.connections ? new Client(origin, opts) : new Pool(origin, opts); - } - class Agent extends DispatcherBase { - constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}){ - super(); - if ('function' != typeof factory) throw new InvalidArgumentError('factory must be a function.'); - if (null != connect && 'function' != typeof connect && 'object' != typeof connect) throw new InvalidArgumentError('connect must be a function or an object'); - if (!Number.isInteger(maxRedirections) || maxRedirections < 0) throw new InvalidArgumentError('maxRedirections must be a positive number'); - if (connect && 'function' != typeof connect) connect = { - ...connect - }; - this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [ - createRedirectInterceptor({ - maxRedirections - }) - ]; - this[kOptions] = { - ...util.deepClone(options), - connect - }; - this[kOptions].interceptors = options.interceptors ? { - ...options.interceptors - } : void 0; - this[kMaxRedirections] = maxRedirections; - this[kFactory] = factory; - this[kClients] = new Map(); - this[kFinalizer] = new FinalizationRegistry1((key)=>{ - const ref = this[kClients].get(key); - if (void 0 !== ref && void 0 === ref.deref()) this[kClients].delete(key); - }); - const agent = this; - this[kOnDrain] = (origin, targets)=>{ - agent.emit('drain', origin, [ - agent, - ...targets - ]); - }; - this[kOnConnect] = (origin, targets)=>{ - agent.emit('connect', origin, [ - agent, - ...targets - ]); - }; - this[kOnDisconnect] = (origin, targets, err)=>{ - agent.emit('disconnect', origin, [ - agent, - ...targets - ], err); - }; - this[kOnConnectionError] = (origin, targets, err)=>{ - agent.emit('connectionError', origin, [ - agent, - ...targets - ], err); - }; - } - get [kRunning]() { - let ret = 0; - for (const ref of this[kClients].values()){ - const client = ref.deref(); - if (client) ret += client[kRunning]; - } - return ret; - } - [kDispatch](opts, handler) { - let key; - if (opts.origin && ('string' == typeof opts.origin || opts.origin instanceof URL)) key = String(opts.origin); - else throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.'); - const ref = this[kClients].get(key); - let dispatcher = ref ? ref.deref() : null; - if (!dispatcher) { - dispatcher = this[kFactory](opts.origin, this[kOptions]).on('drain', this[kOnDrain]).on('connect', this[kOnConnect]).on('disconnect', this[kOnDisconnect]).on('connectionError', this[kOnConnectionError]); - this[kClients].set(key, new WeakRef1(dispatcher)); - this[kFinalizer].register(dispatcher, key); - } - return dispatcher.dispatch(opts, handler); - } - async [kClose]() { - const closePromises = []; - for (const ref of this[kClients].values()){ - const client = ref.deref(); - if (client) closePromises.push(client.close()); - } - await Promise.all(closePromises); - } - async [kDestroy](err) { - const destroyPromises = []; - for (const ref of this[kClients].values()){ - const client = ref.deref(); - if (client) destroyPromises.push(client.destroy(err)); - } - await Promise.all(destroyPromises); - } - } - module.exports = Agent; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js" (module, __unused_rspack_exports, __webpack_require__) { - const { addAbortListener } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { RequestAbortedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const kListener = Symbol('kListener'); - const kSignal = Symbol('kSignal'); - function abort(self) { - if (self.abort) self.abort(); - else self.onError(new RequestAbortedError()); - } - function addSignal(self, signal) { - self[kSignal] = null; - self[kListener] = null; - if (!signal) return; - if (signal.aborted) return void abort(self); - self[kSignal] = signal; - self[kListener] = ()=>{ - abort(self); - }; - addAbortListener(self[kSignal], self[kListener]); - } - function removeSignal(self) { - if (!self[kSignal]) return; - if ('removeEventListener' in self[kSignal]) self[kSignal].removeEventListener('abort', self[kListener]); - else self[kSignal].removeListener('abort', self[kListener]); - self[kSignal] = null; - self[kListener] = null; - } - module.exports = { - addSignal, - removeSignal - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-connect.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { AsyncResource } = __webpack_require__("async_hooks"); - const { InvalidArgumentError, RequestAbortedError, SocketError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { addSignal, removeSignal } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js"); - class ConnectHandler extends AsyncResource { - constructor(opts, callback){ - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - const { signal, opaque, responseHeaders } = opts; - if (signal && 'function' != typeof signal.on && 'function' != typeof signal.addEventListener) throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget'); - super('UNDICI_CONNECT'); - this.opaque = opaque || null; - this.responseHeaders = responseHeaders || null; - this.callback = callback; - this.abort = null; - addSignal(this, signal); - } - onConnect(abort, context) { - if (!this.callback) throw new RequestAbortedError(); - this.abort = abort; - this.context = context; - } - onHeaders() { - throw new SocketError('bad connect', null); - } - onUpgrade(statusCode, rawHeaders, socket) { - const { callback, opaque, context } = this; - removeSignal(this); - this.callback = null; - let headers = rawHeaders; - if (null != headers) headers = 'raw' === this.responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - this.runInAsyncScope(callback, null, null, { - statusCode, - headers, - socket, - opaque, - context - }); - } - onError(err) { - const { callback, opaque } = this; - removeSignal(this); - if (callback) { - this.callback = null; - queueMicrotask(()=>{ - this.runInAsyncScope(callback, null, err, { - opaque - }); - }); - } - } - } - function connect(opts, callback) { - if (void 0 === callback) return new Promise((resolve, reject)=>{ - connect.call(this, opts, (err, data)=>err ? reject(err) : resolve(data)); - }); - try { - const connectHandler = new ConnectHandler(opts, callback); - this.dispatch({ - ...opts, - method: 'CONNECT' - }, connectHandler); - } catch (err) { - if ('function' != typeof callback) throw err; - const opaque = opts && opts.opaque; - queueMicrotask(()=>callback(err, { - opaque - })); - } - } - module.exports = connect; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-pipeline.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Readable, Duplex, PassThrough } = __webpack_require__("stream"); - const { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { AsyncResource } = __webpack_require__("async_hooks"); - const { addSignal, removeSignal } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js"); - const assert = __webpack_require__("assert"); - const kResume = Symbol('resume'); - class PipelineRequest extends Readable { - constructor(){ - super({ - autoDestroy: true - }); - this[kResume] = null; - } - _read() { - const { [kResume]: resume } = this; - if (resume) { - this[kResume] = null; - resume(); - } - } - _destroy(err, callback) { - this._read(); - callback(err); - } - } - class PipelineResponse extends Readable { - constructor(resume){ - super({ - autoDestroy: true - }); - this[kResume] = resume; - } - _read() { - this[kResume](); - } - _destroy(err, callback) { - if (!err && !this._readableState.endEmitted) err = new RequestAbortedError(); - callback(err); - } - } - class PipelineHandler extends AsyncResource { - constructor(opts, handler){ - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - if ('function' != typeof handler) throw new InvalidArgumentError('invalid handler'); - const { signal, method, opaque, onInfo, responseHeaders } = opts; - if (signal && 'function' != typeof signal.on && 'function' != typeof signal.addEventListener) throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget'); - if ('CONNECT' === method) throw new InvalidArgumentError('invalid method'); - if (onInfo && 'function' != typeof onInfo) throw new InvalidArgumentError('invalid onInfo callback'); - super('UNDICI_PIPELINE'); - this.opaque = opaque || null; - this.responseHeaders = responseHeaders || null; - this.handler = handler; - this.abort = null; - this.context = null; - this.onInfo = onInfo || null; - this.req = new PipelineRequest().on('error', util.nop); - this.ret = new Duplex({ - readableObjectMode: opts.objectMode, - autoDestroy: true, - read: ()=>{ - const { body } = this; - if (body && body.resume) body.resume(); - }, - write: (chunk, encoding, callback)=>{ - const { req } = this; - if (req.push(chunk, encoding) || req._readableState.destroyed) callback(); - else req[kResume] = callback; - }, - destroy: (err, callback)=>{ - const { body, req, res, ret, abort } = this; - if (!err && !ret._readableState.endEmitted) err = new RequestAbortedError(); - if (abort && err) abort(); - util.destroy(body, err); - util.destroy(req, err); - util.destroy(res, err); - removeSignal(this); - callback(err); - } - }).on('prefinish', ()=>{ - const { req } = this; - req.push(null); - }); - this.res = null; - addSignal(this, signal); - } - onConnect(abort, context) { - const { ret, res } = this; - assert(!res, 'pipeline cannot be retried'); - if (ret.destroyed) throw new RequestAbortedError(); - this.abort = abort; - this.context = context; - } - onHeaders(statusCode, rawHeaders, resume) { - const { opaque, handler, context } = this; - if (statusCode < 200) { - if (this.onInfo) { - const headers = 'raw' === this.responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - this.onInfo({ - statusCode, - headers - }); - } - return; - } - this.res = new PipelineResponse(resume); - let body; - try { - this.handler = null; - const headers = 'raw' === this.responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - body = this.runInAsyncScope(handler, null, { - statusCode, - headers, - opaque, - body: this.res, - context - }); - } catch (err) { - this.res.on('error', util.nop); - throw err; - } - if (!body || 'function' != typeof body.on) throw new InvalidReturnValueError('expected Readable'); - body.on('data', (chunk)=>{ - const { ret, body } = this; - if (!ret.push(chunk) && body.pause) body.pause(); - }).on('error', (err)=>{ - const { ret } = this; - util.destroy(ret, err); - }).on('end', ()=>{ - const { ret } = this; - ret.push(null); - }).on('close', ()=>{ - const { ret } = this; - if (!ret._readableState.ended) util.destroy(ret, new RequestAbortedError()); - }); - this.body = body; - } - onData(chunk) { - const { res } = this; - return res.push(chunk); - } - onComplete(trailers) { - const { res } = this; - res.push(null); - } - onError(err) { - const { ret } = this; - this.handler = null; - util.destroy(ret, err); - } - } - function pipeline(opts, handler) { - try { - const pipelineHandler = new PipelineHandler(opts, handler); - this.dispatch({ - ...opts, - body: pipelineHandler.req - }, pipelineHandler); - return pipelineHandler.ret; - } catch (err) { - return new PassThrough().destroy(err); - } - } - module.exports = pipeline; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-request.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const Readable = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/readable.js"); - const { InvalidArgumentError, RequestAbortedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { getResolveErrorBodyCallback } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/util.js"); - const { AsyncResource } = __webpack_require__("async_hooks"); - const { addSignal, removeSignal } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js"); - class RequestHandler extends AsyncResource { - constructor(opts, callback){ - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts; - try { - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - if (highWaterMark && ('number' != typeof highWaterMark || highWaterMark < 0)) throw new InvalidArgumentError('invalid highWaterMark'); - if (signal && 'function' != typeof signal.on && 'function' != typeof signal.addEventListener) throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget'); - if ('CONNECT' === method) throw new InvalidArgumentError('invalid method'); - if (onInfo && 'function' != typeof onInfo) throw new InvalidArgumentError('invalid onInfo callback'); - super('UNDICI_REQUEST'); - } catch (err) { - if (util.isStream(body)) util.destroy(body.on('error', util.nop), err); - throw err; - } - this.responseHeaders = responseHeaders || null; - this.opaque = opaque || null; - this.callback = callback; - this.res = null; - this.abort = null; - this.body = body; - this.trailers = {}; - this.context = null; - this.onInfo = onInfo || null; - this.throwOnError = throwOnError; - this.highWaterMark = highWaterMark; - if (util.isStream(body)) body.on('error', (err)=>{ - this.onError(err); - }); - addSignal(this, signal); - } - onConnect(abort, context) { - if (!this.callback) throw new RequestAbortedError(); - this.abort = abort; - this.context = context; - } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { - const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this; - const headers = 'raw' === responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - if (statusCode < 200) { - if (this.onInfo) this.onInfo({ - statusCode, - headers - }); - return; - } - const parsedHeaders = 'raw' === responseHeaders ? util.parseHeaders(rawHeaders) : headers; - const contentType = parsedHeaders['content-type']; - const body = new Readable({ - resume, - abort, - contentType, - highWaterMark - }); - this.callback = null; - this.res = body; - if (null !== callback) if (this.throwOnError && statusCode >= 400) this.runInAsyncScope(getResolveErrorBodyCallback, null, { - callback, - body, - contentType, - statusCode, - statusMessage, - headers - }); - else this.runInAsyncScope(callback, null, null, { - statusCode, - headers, - trailers: this.trailers, - opaque, - body, - context - }); - } - onData(chunk) { - const { res } = this; - return res.push(chunk); - } - onComplete(trailers) { - const { res } = this; - removeSignal(this); - util.parseHeaders(trailers, this.trailers); - res.push(null); - } - onError(err) { - const { res, callback, body, opaque } = this; - removeSignal(this); - if (callback) { - this.callback = null; - queueMicrotask(()=>{ - this.runInAsyncScope(callback, null, err, { - opaque - }); - }); - } - if (res) { - this.res = null; - queueMicrotask(()=>{ - util.destroy(res, err); - }); - } - if (body) { - this.body = null; - util.destroy(body, err); - } - } - } - function request(opts, callback) { - if (void 0 === callback) return new Promise((resolve, reject)=>{ - request.call(this, opts, (err, data)=>err ? reject(err) : resolve(data)); - }); - try { - this.dispatch(opts, new RequestHandler(opts, callback)); - } catch (err) { - if ('function' != typeof callback) throw err; - const opaque = opts && opts.opaque; - queueMicrotask(()=>callback(err, { - opaque - })); - } - } - module.exports = request; - module.exports.RequestHandler = RequestHandler; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-stream.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { finished, PassThrough } = __webpack_require__("stream"); - const { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { getResolveErrorBodyCallback } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/util.js"); - const { AsyncResource } = __webpack_require__("async_hooks"); - const { addSignal, removeSignal } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js"); - class StreamHandler extends AsyncResource { - constructor(opts, factory, callback){ - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts; - try { - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - if ('function' != typeof factory) throw new InvalidArgumentError('invalid factory'); - if (signal && 'function' != typeof signal.on && 'function' != typeof signal.addEventListener) throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget'); - if ('CONNECT' === method) throw new InvalidArgumentError('invalid method'); - if (onInfo && 'function' != typeof onInfo) throw new InvalidArgumentError('invalid onInfo callback'); - super('UNDICI_STREAM'); - } catch (err) { - if (util.isStream(body)) util.destroy(body.on('error', util.nop), err); - throw err; - } - this.responseHeaders = responseHeaders || null; - this.opaque = opaque || null; - this.factory = factory; - this.callback = callback; - this.res = null; - this.abort = null; - this.context = null; - this.trailers = null; - this.body = body; - this.onInfo = onInfo || null; - this.throwOnError = throwOnError || false; - if (util.isStream(body)) body.on('error', (err)=>{ - this.onError(err); - }); - addSignal(this, signal); - } - onConnect(abort, context) { - if (!this.callback) throw new RequestAbortedError(); - this.abort = abort; - this.context = context; - } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { - const { factory, opaque, context, callback, responseHeaders } = this; - const headers = 'raw' === responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - if (statusCode < 200) { - if (this.onInfo) this.onInfo({ - statusCode, - headers - }); - return; - } - this.factory = null; - let res; - if (this.throwOnError && statusCode >= 400) { - const parsedHeaders = 'raw' === responseHeaders ? util.parseHeaders(rawHeaders) : headers; - const contentType = parsedHeaders['content-type']; - res = new PassThrough(); - this.callback = null; - this.runInAsyncScope(getResolveErrorBodyCallback, null, { - callback, - body: res, - contentType, - statusCode, - statusMessage, - headers - }); - } else { - if (null === factory) return; - res = this.runInAsyncScope(factory, null, { - statusCode, - headers, - opaque, - context - }); - if (!res || 'function' != typeof res.write || 'function' != typeof res.end || 'function' != typeof res.on) throw new InvalidReturnValueError('expected Writable'); - finished(res, { - readable: false - }, (err)=>{ - const { callback, res, opaque, trailers, abort } = this; - this.res = null; - if (err || !res.readable) util.destroy(res, err); - this.callback = null; - this.runInAsyncScope(callback, null, err || null, { - opaque, - trailers - }); - if (err) abort(); - }); - } - res.on('drain', resume); - this.res = res; - const needDrain = void 0 !== res.writableNeedDrain ? res.writableNeedDrain : res._writableState && res._writableState.needDrain; - return true !== needDrain; - } - onData(chunk) { - const { res } = this; - return res ? res.write(chunk) : true; - } - onComplete(trailers) { - const { res } = this; - removeSignal(this); - if (!res) return; - this.trailers = util.parseHeaders(trailers); - res.end(); - } - onError(err) { - const { res, callback, opaque, body } = this; - removeSignal(this); - this.factory = null; - if (res) { - this.res = null; - util.destroy(res, err); - } else if (callback) { - this.callback = null; - queueMicrotask(()=>{ - this.runInAsyncScope(callback, null, err, { - opaque - }); - }); - } - if (body) { - this.body = null; - util.destroy(body, err); - } - } - } - function stream(opts, factory, callback) { - if (void 0 === callback) return new Promise((resolve, reject)=>{ - stream.call(this, opts, factory, (err, data)=>err ? reject(err) : resolve(data)); - }); - try { - this.dispatch(opts, new StreamHandler(opts, factory, callback)); - } catch (err) { - if ('function' != typeof callback) throw err; - const opaque = opts && opts.opaque; - queueMicrotask(()=>callback(err, { - opaque - })); - } - } - module.exports = stream; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-upgrade.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { InvalidArgumentError, RequestAbortedError, SocketError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { AsyncResource } = __webpack_require__("async_hooks"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { addSignal, removeSignal } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/abort-signal.js"); - const assert = __webpack_require__("assert"); - class UpgradeHandler extends AsyncResource { - constructor(opts, callback){ - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('invalid opts'); - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - const { signal, opaque, responseHeaders } = opts; - if (signal && 'function' != typeof signal.on && 'function' != typeof signal.addEventListener) throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget'); - super('UNDICI_UPGRADE'); - this.responseHeaders = responseHeaders || null; - this.opaque = opaque || null; - this.callback = callback; - this.abort = null; - this.context = null; - addSignal(this, signal); - } - onConnect(abort, context) { - if (!this.callback) throw new RequestAbortedError(); - this.abort = abort; - this.context = null; - } - onHeaders() { - throw new SocketError('bad upgrade', null); - } - onUpgrade(statusCode, rawHeaders, socket) { - const { callback, opaque, context } = this; - assert.strictEqual(statusCode, 101); - removeSignal(this); - this.callback = null; - const headers = 'raw' === this.responseHeaders ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - this.runInAsyncScope(callback, null, null, { - headers, - socket, - opaque, - context - }); - } - onError(err) { - const { callback, opaque } = this; - removeSignal(this); - if (callback) { - this.callback = null; - queueMicrotask(()=>{ - this.runInAsyncScope(callback, null, err, { - opaque - }); - }); - } - } - } - function upgrade(opts, callback) { - if (void 0 === callback) return new Promise((resolve, reject)=>{ - upgrade.call(this, opts, (err, data)=>err ? reject(err) : resolve(data)); - }); - try { - const upgradeHandler = new UpgradeHandler(opts, callback); - this.dispatch({ - ...opts, - method: opts.method || 'GET', - upgrade: opts.protocol || 'Websocket' - }, upgradeHandler); - } catch (err) { - if ('function' != typeof callback) throw err; - const opaque = opts && opts.opaque; - queueMicrotask(()=>callback(err, { - opaque - })); - } - } - module.exports = upgrade; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - module.exports.request = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-request.js"); - module.exports.stream = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-stream.js"); - module.exports.pipeline = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-pipeline.js"); - module.exports.upgrade = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-upgrade.js"); - module.exports.connect = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/api-connect.js"); - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/readable.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const assert = __webpack_require__("assert"); - const { Readable } = __webpack_require__("stream"); - const { RequestAbortedError, NotSupportedError, InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { ReadableStreamFrom, toUSVString } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - let Blob1; - const kConsume = Symbol('kConsume'); - const kReading = Symbol('kReading'); - const kBody = Symbol('kBody'); - const kAbort = Symbol('abort'); - const kContentType = Symbol('kContentType'); - const noop = ()=>{}; - module.exports = class extends Readable { - constructor({ resume, abort, contentType = '', highWaterMark = 65536 }){ - super({ - autoDestroy: true, - read: resume, - highWaterMark - }); - this._readableState.dataEmitted = false; - this[kAbort] = abort; - this[kConsume] = null; - this[kBody] = null; - this[kContentType] = contentType; - this[kReading] = false; - } - destroy(err) { - if (this.destroyed) return this; - if (!err && !this._readableState.endEmitted) err = new RequestAbortedError(); - if (err) this[kAbort](); - return super.destroy(err); - } - emit(ev, ...args) { - if ('data' === ev) this._readableState.dataEmitted = true; - else if ('error' === ev) this._readableState.errorEmitted = true; - return super.emit(ev, ...args); - } - on(ev, ...args) { - if ('data' === ev || 'readable' === ev) this[kReading] = true; - return super.on(ev, ...args); - } - addListener(ev, ...args) { - return this.on(ev, ...args); - } - off(ev, ...args) { - const ret = super.off(ev, ...args); - if ('data' === ev || 'readable' === ev) this[kReading] = this.listenerCount('data') > 0 || this.listenerCount('readable') > 0; - return ret; - } - removeListener(ev, ...args) { - return this.off(ev, ...args); - } - push(chunk) { - if (this[kConsume] && null !== chunk && 0 === this.readableLength) { - consumePush(this[kConsume], chunk); - return this[kReading] ? super.push(chunk) : true; - } - return super.push(chunk); - } - async text() { - return consume(this, 'text'); - } - async json() { - return consume(this, 'json'); - } - async blob() { - return consume(this, 'blob'); - } - async arrayBuffer() { - return consume(this, 'arrayBuffer'); - } - async formData() { - throw new NotSupportedError(); - } - get bodyUsed() { - return util.isDisturbed(this); - } - get body() { - if (!this[kBody]) { - this[kBody] = ReadableStreamFrom(this); - if (this[kConsume]) { - this[kBody].getReader(); - assert(this[kBody].locked); - } - } - return this[kBody]; - } - dump(opts) { - let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144; - const signal = opts && opts.signal; - if (signal) try { - if ('object' != typeof signal || !('aborted' in signal)) throw new InvalidArgumentError('signal must be an AbortSignal'); - util.throwIfAborted(signal); - } catch (err) { - return Promise.reject(err); - } - if (this.closed) return Promise.resolve(null); - return new Promise((resolve, reject)=>{ - const signalListenerCleanup = signal ? util.addAbortListener(signal, ()=>{ - this.destroy(); - }) : noop; - this.on('close', function() { - signalListenerCleanup(); - if (signal && signal.aborted) reject(signal.reason || Object.assign(new Error('The operation was aborted'), { - name: 'AbortError' - })); - else resolve(null); - }).on('error', noop).on('data', function(chunk) { - limit -= chunk.length; - if (limit <= 0) this.destroy(); - }).resume(); - }); - } - }; - function isLocked(self) { - return self[kBody] && true === self[kBody].locked || self[kConsume]; - } - function isUnusable(self) { - return util.isDisturbed(self) || isLocked(self); - } - async function consume(stream, type) { - if (isUnusable(stream)) throw new TypeError('unusable'); - assert(!stream[kConsume]); - return new Promise((resolve, reject)=>{ - stream[kConsume] = { - type, - stream, - resolve, - reject, - length: 0, - body: [] - }; - stream.on('error', function(err) { - consumeFinish(this[kConsume], err); - }).on('close', function() { - if (null !== this[kConsume].body) consumeFinish(this[kConsume], new RequestAbortedError()); - }); - process.nextTick(consumeStart, stream[kConsume]); - }); - } - function consumeStart(consume) { - if (null === consume.body) return; - const { _readableState: state } = consume.stream; - for (const chunk of state.buffer)consumePush(consume, chunk); - if (state.endEmitted) consumeEnd(this[kConsume]); - else consume.stream.on('end', function() { - consumeEnd(this[kConsume]); - }); - consume.stream.resume(); - while(null != consume.stream.read()); - } - function consumeEnd(consume) { - const { type, body, resolve, stream, length } = consume; - try { - if ('text' === type) resolve(toUSVString(Buffer.concat(body))); - else if ('json' === type) resolve(JSON.parse(Buffer.concat(body))); - else if ('arrayBuffer' === type) { - const dst = new Uint8Array(length); - let pos = 0; - for (const buf of body){ - dst.set(buf, pos); - pos += buf.byteLength; - } - resolve(dst.buffer); - } else if ('blob' === type) { - if (!Blob1) Blob1 = __webpack_require__("buffer").Blob; - resolve(new Blob1(body, { - type: stream[kContentType] - })); - } - consumeFinish(consume); - } catch (err) { - stream.destroy(err); - } - } - function consumePush(consume, chunk) { - consume.length += chunk.length; - consume.body.push(chunk); - } - function consumeFinish(consume, err) { - if (null === consume.body) return; - if (err) consume.reject(err); - else consume.resolve(); - consume.type = null; - consume.stream = null; - consume.resolve = null; - consume.reject = null; - consume.length = 0; - consume.body = null; - } - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/api/util.js" (module, __unused_rspack_exports, __webpack_require__) { - const assert = __webpack_require__("assert"); - const { ResponseStatusCodeError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { toUSVString } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - async function getResolveErrorBodyCallback({ callback, body, contentType, statusCode, statusMessage, headers }) { - assert(body); - let chunks = []; - let limit = 0; - for await (const chunk of body){ - chunks.push(chunk); - limit += chunk.length; - if (limit > 131072) { - chunks = null; - break; - } - } - if (204 === statusCode || !contentType || !chunks) return void process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)); - try { - if (contentType.startsWith('application/json')) { - const payload = JSON.parse(toUSVString(Buffer.concat(chunks))); - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)); - return; - } - if (contentType.startsWith('text/')) { - const payload = toUSVString(Buffer.concat(chunks)); - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)); - return; - } - } catch (err) {} - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)); - } - module.exports = { - getResolveErrorBodyCallback - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/balanced-pool.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { BalancedPoolMissingUpstreamError, InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { PoolBase, kClients, kNeedDrain, kAddClient, kRemoveClient, kGetDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool-base.js"); - const Pool = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js"); - const { kUrl, kInterceptors } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { parseOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const kFactory = Symbol('factory'); - const kOptions = Symbol('options'); - const kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor'); - const kCurrentWeight = Symbol('kCurrentWeight'); - const kIndex = Symbol('kIndex'); - const kWeight = Symbol('kWeight'); - const kMaxWeightPerServer = Symbol('kMaxWeightPerServer'); - const kErrorPenalty = Symbol('kErrorPenalty'); - function getGreatestCommonDivisor(a, b) { - if (0 === b) return a; - return getGreatestCommonDivisor(b, a % b); - } - function defaultFactory(origin, opts) { - return new Pool(origin, opts); - } - class BalancedPool extends PoolBase { - constructor(upstreams = [], { factory = defaultFactory, ...opts } = {}){ - super(); - this[kOptions] = opts; - this[kIndex] = -1; - this[kCurrentWeight] = 0; - this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100; - this[kErrorPenalty] = this[kOptions].errorPenalty || 15; - if (!Array.isArray(upstreams)) upstreams = [ - upstreams - ]; - if ('function' != typeof factory) throw new InvalidArgumentError('factory must be a function.'); - this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) ? opts.interceptors.BalancedPool : []; - this[kFactory] = factory; - for (const upstream of upstreams)this.addUpstream(upstream); - this._updateBalancedPoolStats(); - } - addUpstream(upstream) { - const upstreamOrigin = parseOrigin(upstream).origin; - if (this[kClients].find((pool)=>pool[kUrl].origin === upstreamOrigin && true !== pool.closed && true !== pool.destroyed)) return this; - const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])); - this[kAddClient](pool); - pool.on('connect', ()=>{ - pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]); - }); - pool.on('connectionError', ()=>{ - pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); - this._updateBalancedPoolStats(); - }); - pool.on('disconnect', (...args)=>{ - const err = args[2]; - if (err && 'UND_ERR_SOCKET' === err.code) { - pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); - this._updateBalancedPoolStats(); - } - }); - for (const client of this[kClients])client[kWeight] = this[kMaxWeightPerServer]; - this._updateBalancedPoolStats(); - return this; - } - _updateBalancedPoolStats() { - this[kGreatestCommonDivisor] = this[kClients].map((p)=>p[kWeight]).reduce(getGreatestCommonDivisor, 0); - } - removeUpstream(upstream) { - const upstreamOrigin = parseOrigin(upstream).origin; - const pool = this[kClients].find((pool)=>pool[kUrl].origin === upstreamOrigin && true !== pool.closed && true !== pool.destroyed); - if (pool) this[kRemoveClient](pool); - return this; - } - get upstreams() { - return this[kClients].filter((dispatcher)=>true !== dispatcher.closed && true !== dispatcher.destroyed).map((p)=>p[kUrl].origin); - } - [kGetDispatcher]() { - if (0 === this[kClients].length) throw new BalancedPoolMissingUpstreamError(); - const dispatcher = this[kClients].find((dispatcher)=>!dispatcher[kNeedDrain] && true !== dispatcher.closed && true !== dispatcher.destroyed); - if (!dispatcher) return; - const allClientsBusy = this[kClients].map((pool)=>pool[kNeedDrain]).reduce((a, b)=>a && b, true); - if (allClientsBusy) return; - let counter = 0; - let maxWeightIndex = this[kClients].findIndex((pool)=>!pool[kNeedDrain]); - while(counter++ < this[kClients].length){ - this[kIndex] = (this[kIndex] + 1) % this[kClients].length; - const pool = this[kClients][this[kIndex]]; - if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) maxWeightIndex = this[kIndex]; - if (0 === this[kIndex]) { - this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]; - if (this[kCurrentWeight] <= 0) this[kCurrentWeight] = this[kMaxWeightPerServer]; - } - if (pool[kWeight] >= this[kCurrentWeight] && !pool[kNeedDrain]) return pool; - } - this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]; - this[kIndex] = maxWeightIndex; - return this[kClients][maxWeightIndex]; - } - } - module.exports = BalancedPool; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/cache.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/symbols.js"); - const { urlEquals, fieldValues: getFieldValues } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/util.js"); - const { kEnumerableProperty, isDisturbed } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { kHeadersList } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { Response, cloneResponse } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/response.js"); - const { Request } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/request.js"); - const { kState, kHeaders, kGuard, kRealm } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { fetching } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/index.js"); - const { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const assert = __webpack_require__("assert"); - const { getGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js"); - class Cache { - #relevantRequestResponseList; - constructor(){ - if (arguments[0] !== kConstruct) webidl.illegalConstructor(); - this.#relevantRequestResponseList = arguments[1]; - } - async match(request, options = {}) { - webidl.brandCheck(this, Cache); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Cache.match' - }); - request = webidl.converters.RequestInfo(request); - options = webidl.converters.CacheQueryOptions(options); - const p = await this.matchAll(request, options); - if (0 === p.length) return; - return p[0]; - } - async matchAll(request, options = {}) { - webidl.brandCheck(this, Cache); - if (void 0 !== request) request = webidl.converters.RequestInfo(request); - options = webidl.converters.CacheQueryOptions(options); - let r = null; - if (void 0 !== request) { - if (request instanceof Request) { - r = request[kState]; - if ('GET' !== r.method && !options.ignoreMethod) return []; - } else if ('string' == typeof request) r = new Request(request)[kState]; - } - const responses = []; - if (void 0 === request) for (const requestResponse of this.#relevantRequestResponseList)responses.push(requestResponse[1]); - else { - const requestResponses = this.#queryCache(r, options); - for (const requestResponse of requestResponses)responses.push(requestResponse[1]); - } - const responseList = []; - for (const response of responses){ - const responseObject = new Response(response.body?.source ?? null); - const body = responseObject[kState].body; - responseObject[kState] = response; - responseObject[kState].body = body; - responseObject[kHeaders][kHeadersList] = response.headersList; - responseObject[kHeaders][kGuard] = 'immutable'; - responseList.push(responseObject); - } - return Object.freeze(responseList); - } - async add(request) { - webidl.brandCheck(this, Cache); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Cache.add' - }); - request = webidl.converters.RequestInfo(request); - const requests = [ - request - ]; - const responseArrayPromise = this.addAll(requests); - return await responseArrayPromise; - } - async addAll(requests) { - webidl.brandCheck(this, Cache); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Cache.addAll' - }); - requests = webidl.converters['sequence'](requests); - const responsePromises = []; - const requestList = []; - for (const request of requests){ - if ('string' == typeof request) continue; - const r = request[kState]; - if (!urlIsHttpHttpsScheme(r.url) || 'GET' !== r.method) throw webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Expected http/s scheme when method is not GET.' - }); - } - const fetchControllers = []; - for (const request of requests){ - const r = new Request(request)[kState]; - if (!urlIsHttpHttpsScheme(r.url)) throw webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Expected http/s scheme.' - }); - r.initiator = 'fetch'; - r.destination = 'subresource'; - requestList.push(r); - const responsePromise = createDeferredPromise(); - fetchControllers.push(fetching({ - request: r, - dispatcher: getGlobalDispatcher(), - processResponse (response) { - if ('error' === response.type || 206 === response.status || response.status < 200 || response.status > 299) responsePromise.reject(webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Received an invalid status code or the request failed.' - })); - else if (response.headersList.contains('vary')) { - const fieldValues = getFieldValues(response.headersList.get('vary')); - for (const fieldValue of fieldValues)if ('*' === fieldValue) { - responsePromise.reject(webidl.errors.exception({ - header: 'Cache.addAll', - message: 'invalid vary field value' - })); - for (const controller of fetchControllers)controller.abort(); - return; - } - } - }, - processResponseEndOfBody (response) { - if (response.aborted) return void responsePromise.reject(new DOMException('aborted', 'AbortError')); - responsePromise.resolve(response); - } - })); - responsePromises.push(responsePromise.promise); - } - const p = Promise.all(responsePromises); - const responses = await p; - const operations = []; - let index = 0; - for (const response of responses){ - const operation = { - type: 'put', - request: requestList[index], - response - }; - operations.push(operation); - index++; - } - const cacheJobPromise = createDeferredPromise(); - let errorData = null; - try { - this.#batchCacheOperations(operations); - } catch (e) { - errorData = e; - } - queueMicrotask(()=>{ - if (null === errorData) cacheJobPromise.resolve(void 0); - else cacheJobPromise.reject(errorData); - }); - return cacheJobPromise.promise; - } - async put(request, response) { - webidl.brandCheck(this, Cache); - webidl.argumentLengthCheck(arguments, 2, { - header: 'Cache.put' - }); - request = webidl.converters.RequestInfo(request); - response = webidl.converters.Response(response); - let innerRequest = null; - innerRequest = request instanceof Request ? request[kState] : new Request(request)[kState]; - if (!urlIsHttpHttpsScheme(innerRequest.url) || 'GET' !== innerRequest.method) throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Expected an http/s scheme when method is not GET' - }); - const innerResponse = response[kState]; - if (206 === innerResponse.status) throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Got 206 status' - }); - if (innerResponse.headersList.contains('vary')) { - const fieldValues = getFieldValues(innerResponse.headersList.get('vary')); - for (const fieldValue of fieldValues)if ('*' === fieldValue) throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Got * vary field value' - }); - } - if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Response body is locked or disturbed' - }); - const clonedResponse = cloneResponse(innerResponse); - const bodyReadPromise = createDeferredPromise(); - if (null != innerResponse.body) { - const stream = innerResponse.body.stream; - const reader = stream.getReader(); - readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject); - } else bodyReadPromise.resolve(void 0); - const operations = []; - const operation = { - type: 'put', - request: innerRequest, - response: clonedResponse - }; - operations.push(operation); - const bytes = await bodyReadPromise.promise; - if (null != clonedResponse.body) clonedResponse.body.source = bytes; - const cacheJobPromise = createDeferredPromise(); - let errorData = null; - try { - this.#batchCacheOperations(operations); - } catch (e) { - errorData = e; - } - queueMicrotask(()=>{ - if (null === errorData) cacheJobPromise.resolve(); - else cacheJobPromise.reject(errorData); - }); - return cacheJobPromise.promise; - } - async delete(request, options = {}) { - webidl.brandCheck(this, Cache); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Cache.delete' - }); - request = webidl.converters.RequestInfo(request); - options = webidl.converters.CacheQueryOptions(options); - let r = null; - if (request instanceof Request) { - r = request[kState]; - if ('GET' !== r.method && !options.ignoreMethod) return false; - } else { - assert('string' == typeof request); - r = new Request(request)[kState]; - } - const operations = []; - const operation = { - type: 'delete', - request: r, - options - }; - operations.push(operation); - const cacheJobPromise = createDeferredPromise(); - let errorData = null; - let requestResponses; - try { - requestResponses = this.#batchCacheOperations(operations); - } catch (e) { - errorData = e; - } - queueMicrotask(()=>{ - if (null === errorData) cacheJobPromise.resolve(!!requestResponses?.length); - else cacheJobPromise.reject(errorData); - }); - return cacheJobPromise.promise; - } - async keys(request, options = {}) { - webidl.brandCheck(this, Cache); - if (void 0 !== request) request = webidl.converters.RequestInfo(request); - options = webidl.converters.CacheQueryOptions(options); - let r = null; - if (void 0 !== request) { - if (request instanceof Request) { - r = request[kState]; - if ('GET' !== r.method && !options.ignoreMethod) return []; - } else if ('string' == typeof request) r = new Request(request)[kState]; - } - const promise = createDeferredPromise(); - const requests = []; - if (void 0 === request) for (const requestResponse of this.#relevantRequestResponseList)requests.push(requestResponse[0]); - else { - const requestResponses = this.#queryCache(r, options); - for (const requestResponse of requestResponses)requests.push(requestResponse[0]); - } - queueMicrotask(()=>{ - const requestList = []; - for (const request of requests){ - const requestObject = new Request('https://a'); - requestObject[kState] = request; - requestObject[kHeaders][kHeadersList] = request.headersList; - requestObject[kHeaders][kGuard] = 'immutable'; - requestObject[kRealm] = request.client; - requestList.push(requestObject); - } - promise.resolve(Object.freeze(requestList)); - }); - return promise.promise; - } - #batchCacheOperations(operations) { - const cache = this.#relevantRequestResponseList; - const backupCache = [ - ...cache - ]; - const addedItems = []; - const resultList = []; - try { - for (const operation of operations){ - if ('delete' !== operation.type && 'put' !== operation.type) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'operation type does not match "delete" or "put"' - }); - if ('delete' === operation.type && null != operation.response) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'delete operation should not have an associated response' - }); - if (this.#queryCache(operation.request, operation.options, addedItems).length) throw new DOMException('???', 'InvalidStateError'); - let requestResponses; - if ('delete' === operation.type) { - requestResponses = this.#queryCache(operation.request, operation.options); - if (0 === requestResponses.length) return []; - for (const requestResponse of requestResponses){ - const idx = cache.indexOf(requestResponse); - assert(-1 !== idx); - cache.splice(idx, 1); - } - } else if ('put' === operation.type) { - if (null == operation.response) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'put operation should have an associated response' - }); - const r = operation.request; - if (!urlIsHttpHttpsScheme(r.url)) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'expected http or https scheme' - }); - if ('GET' !== r.method) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'not get method' - }); - if (null != operation.options) throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'options must not be defined' - }); - requestResponses = this.#queryCache(operation.request); - for (const requestResponse of requestResponses){ - const idx = cache.indexOf(requestResponse); - assert(-1 !== idx); - cache.splice(idx, 1); - } - cache.push([ - operation.request, - operation.response - ]); - addedItems.push([ - operation.request, - operation.response - ]); - } - resultList.push([ - operation.request, - operation.response - ]); - } - return resultList; - } catch (e) { - this.#relevantRequestResponseList.length = 0; - this.#relevantRequestResponseList = backupCache; - throw e; - } - } - #queryCache(requestQuery, options, targetStorage) { - const resultList = []; - const storage = targetStorage ?? this.#relevantRequestResponseList; - for (const requestResponse of storage){ - const [cachedRequest, cachedResponse] = requestResponse; - if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) resultList.push(requestResponse); - } - return resultList; - } - #requestMatchesCachedItem(requestQuery, request, response = null, options) { - const queryURL = new URL(requestQuery.url); - const cachedURL = new URL(request.url); - if (options?.ignoreSearch) { - cachedURL.search = ''; - queryURL.search = ''; - } - if (!urlEquals(queryURL, cachedURL, true)) return false; - if (null == response || options?.ignoreVary || !response.headersList.contains('vary')) return true; - const fieldValues = getFieldValues(response.headersList.get('vary')); - for (const fieldValue of fieldValues){ - if ('*' === fieldValue) return false; - const requestValue = request.headersList.get(fieldValue); - const queryValue = requestQuery.headersList.get(fieldValue); - if (requestValue !== queryValue) return false; - } - return true; - } - } - Object.defineProperties(Cache.prototype, { - [Symbol.toStringTag]: { - value: 'Cache', - configurable: true - }, - match: kEnumerableProperty, - matchAll: kEnumerableProperty, - add: kEnumerableProperty, - addAll: kEnumerableProperty, - put: kEnumerableProperty, - delete: kEnumerableProperty, - keys: kEnumerableProperty - }); - const cacheQueryOptionConverters = [ - { - key: 'ignoreSearch', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'ignoreMethod', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'ignoreVary', - converter: webidl.converters.boolean, - defaultValue: false - } - ]; - webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters); - webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ - ...cacheQueryOptionConverters, - { - key: 'cacheName', - converter: webidl.converters.DOMString - } - ]); - webidl.converters.Response = webidl.interfaceConverter(Response); - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.RequestInfo); - module.exports = { - Cache - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/cachestorage.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/symbols.js"); - const { Cache } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/cache.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - class CacheStorage { - #caches = new Map(); - constructor(){ - if (arguments[0] !== kConstruct) webidl.illegalConstructor(); - } - async match(request, options = {}) { - webidl.brandCheck(this, CacheStorage); - webidl.argumentLengthCheck(arguments, 1, { - header: 'CacheStorage.match' - }); - request = webidl.converters.RequestInfo(request); - options = webidl.converters.MultiCacheQueryOptions(options); - if (null != options.cacheName) { - if (this.#caches.has(options.cacheName)) { - const cacheList = this.#caches.get(options.cacheName); - const cache = new Cache(kConstruct, cacheList); - return await cache.match(request, options); - } - } else for (const cacheList of this.#caches.values()){ - const cache = new Cache(kConstruct, cacheList); - const response = await cache.match(request, options); - if (void 0 !== response) return response; - } - } - async has(cacheName) { - webidl.brandCheck(this, CacheStorage); - webidl.argumentLengthCheck(arguments, 1, { - header: 'CacheStorage.has' - }); - cacheName = webidl.converters.DOMString(cacheName); - return this.#caches.has(cacheName); - } - async open(cacheName) { - webidl.brandCheck(this, CacheStorage); - webidl.argumentLengthCheck(arguments, 1, { - header: 'CacheStorage.open' - }); - cacheName = webidl.converters.DOMString(cacheName); - if (this.#caches.has(cacheName)) { - const cache = this.#caches.get(cacheName); - return new Cache(kConstruct, cache); - } - const cache = []; - this.#caches.set(cacheName, cache); - return new Cache(kConstruct, cache); - } - async delete(cacheName) { - webidl.brandCheck(this, CacheStorage); - webidl.argumentLengthCheck(arguments, 1, { - header: 'CacheStorage.delete' - }); - cacheName = webidl.converters.DOMString(cacheName); - return this.#caches.delete(cacheName); - } - async keys() { - webidl.brandCheck(this, CacheStorage); - const keys = this.#caches.keys(); - return [ - ...keys - ]; - } - } - Object.defineProperties(CacheStorage.prototype, { - [Symbol.toStringTag]: { - value: 'CacheStorage', - configurable: true - }, - match: kEnumerableProperty, - has: kEnumerableProperty, - open: kEnumerableProperty, - delete: kEnumerableProperty, - keys: kEnumerableProperty - }); - module.exports = { - CacheStorage - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/symbols.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - module.exports = { - kConstruct: __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js").kConstruct - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cache/util.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const assert = __webpack_require__("assert"); - const { URLSerializer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { isValidHeaderName } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - function urlEquals(A, B, excludeFragment = false) { - const serializedA = URLSerializer(A, excludeFragment); - const serializedB = URLSerializer(B, excludeFragment); - return serializedA === serializedB; - } - function fieldValues(header) { - assert(null !== header); - const values = []; - for (let value of header.split(',')){ - value = value.trim(); - if (value.length) { - if (isValidHeaderName(value)) values.push(value); - } - } - return values; - } - module.exports = { - urlEquals, - fieldValues - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/client.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const assert = __webpack_require__("assert"); - const net = __webpack_require__("net"); - const http = __webpack_require__("http"); - const { pipeline } = __webpack_require__("stream"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const timers = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/timers.js"); - const Request = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/request.js"); - const DispatcherBase = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher-base.js"); - const { RequestContentLengthMismatchError, ResponseContentLengthMismatchError, InvalidArgumentError, RequestAbortedError, HeadersTimeoutError, HeadersOverflowError, SocketError, InformationalError, BodyTimeoutError, HTTPParserError, ResponseExceededMaxSizeError, ClientDestroyedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const buildConnector = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/connect.js"); - const { kUrl, kReset, kServerName, kClient, kBusy, kParser, kConnect, kBlocking, kResuming, kRunning, kPending, kSize, kWriting, kQueue, kConnected, kConnecting, kNeedDrain, kNoRef, kKeepAliveDefaultTimeout, kHostHeader, kPendingIdx, kRunningIdx, kError, kPipelining, kSocket, kKeepAliveTimeoutValue, kMaxHeadersSize, kKeepAliveMaxTimeout, kKeepAliveTimeoutThreshold, kHeadersTimeout, kBodyTimeout, kStrictContentLength, kConnector, kMaxRedirections, kMaxRequests, kCounter, kClose, kDestroy, kDispatch, kInterceptors, kLocalAddress, kMaxResponseSize, kHTTPConnVersion, kHost, kHTTP2Session, kHTTP2SessionState, kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - let http2; - try { - http2 = __webpack_require__("http2"); - } catch { - http2 = { - constants: {} - }; - } - const { constants: { HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_SCHEME, HTTP2_HEADER_CONTENT_LENGTH, HTTP2_HEADER_EXPECT, HTTP2_HEADER_STATUS } } = http2; - let h2ExperimentalWarned = false; - const FastBuffer = Buffer[Symbol.species]; - const kClosedResolve = Symbol('kClosedResolve'); - const channels = {}; - try { - const diagnosticsChannel = __webpack_require__("diagnostics_channel"); - channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders'); - channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect'); - channels.connectError = diagnosticsChannel.channel('undici:client:connectError'); - channels.connected = diagnosticsChannel.channel('undici:client:connected'); - } catch { - channels.sendHeaders = { - hasSubscribers: false - }; - channels.beforeConnect = { - hasSubscribers: false - }; - channels.connectError = { - hasSubscribers: false - }; - channels.connected = { - hasSubscribers: false - }; - } - class Client extends DispatcherBase { - constructor(url, { interceptors, maxHeaderSize, headersTimeout, socketTimeout, requestTimeout, connectTimeout, bodyTimeout, idleTimeout, keepAlive, keepAliveTimeout, maxKeepAliveTimeout, keepAliveMaxTimeout, keepAliveTimeoutThreshold, socketPath, pipelining, tls, strictContentLength, maxCachedSessions, maxRedirections, connect, maxRequestsPerClient, localAddress, maxResponseSize, autoSelectFamily, autoSelectFamilyAttemptTimeout, allowH2, maxConcurrentStreams } = {}){ - super(); - if (void 0 !== keepAlive) throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead'); - if (void 0 !== socketTimeout) throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead'); - if (void 0 !== requestTimeout) throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead'); - if (void 0 !== idleTimeout) throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead'); - if (void 0 !== maxKeepAliveTimeout) throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead'); - if (null != maxHeaderSize && !Number.isFinite(maxHeaderSize)) throw new InvalidArgumentError('invalid maxHeaderSize'); - if (null != socketPath && 'string' != typeof socketPath) throw new InvalidArgumentError('invalid socketPath'); - if (null != connectTimeout && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) throw new InvalidArgumentError('invalid connectTimeout'); - if (null != keepAliveTimeout && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) throw new InvalidArgumentError('invalid keepAliveTimeout'); - if (null != keepAliveMaxTimeout && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) throw new InvalidArgumentError('invalid keepAliveMaxTimeout'); - if (null != keepAliveTimeoutThreshold && !Number.isFinite(keepAliveTimeoutThreshold)) throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold'); - if (null != headersTimeout && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) throw new InvalidArgumentError('headersTimeout must be a positive integer or zero'); - if (null != bodyTimeout && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero'); - if (null != connect && 'function' != typeof connect && 'object' != typeof connect) throw new InvalidArgumentError('connect must be a function or an object'); - if (null != maxRedirections && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) throw new InvalidArgumentError('maxRedirections must be a positive number'); - if (null != maxRequestsPerClient && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) throw new InvalidArgumentError('maxRequestsPerClient must be a positive number'); - if (null != localAddress && ('string' != typeof localAddress || 0 === net.isIP(localAddress))) throw new InvalidArgumentError('localAddress must be valid string IP address'); - if (null != maxResponseSize && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) throw new InvalidArgumentError('maxResponseSize must be a positive number'); - if (null != autoSelectFamilyAttemptTimeout && (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)) throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number'); - if (null != allowH2 && 'boolean' != typeof allowH2) throw new InvalidArgumentError('allowH2 must be a valid boolean value'); - if (null != maxConcurrentStreams && ('number' != typeof maxConcurrentStreams || maxConcurrentStreams < 1)) throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0'); - if ('function' != typeof connect) connect = buildConnector({ - ...tls, - maxCachedSessions, - allowH2, - socketPath, - timeout: connectTimeout, - ...util.nodeHasAutoSelectFamily && autoSelectFamily ? { - autoSelectFamily, - autoSelectFamilyAttemptTimeout - } : void 0, - ...connect - }); - this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client) ? interceptors.Client : [ - createRedirectInterceptor({ - maxRedirections - }) - ]; - this[kUrl] = util.parseOrigin(url); - this[kConnector] = connect; - this[kSocket] = null; - this[kPipelining] = null != pipelining ? pipelining : 1; - this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize; - this[kKeepAliveDefaultTimeout] = null == keepAliveTimeout ? 4e3 : keepAliveTimeout; - this[kKeepAliveMaxTimeout] = null == keepAliveMaxTimeout ? 600e3 : keepAliveMaxTimeout; - this[kKeepAliveTimeoutThreshold] = null == keepAliveTimeoutThreshold ? 1e3 : keepAliveTimeoutThreshold; - this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]; - this[kServerName] = null; - this[kLocalAddress] = null != localAddress ? localAddress : null; - this[kResuming] = 0; - this[kNeedDrain] = 0; - this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\r\n`; - this[kBodyTimeout] = null != bodyTimeout ? bodyTimeout : 300e3; - this[kHeadersTimeout] = null != headersTimeout ? headersTimeout : 300e3; - this[kStrictContentLength] = null == strictContentLength ? true : strictContentLength; - this[kMaxRedirections] = maxRedirections; - this[kMaxRequests] = maxRequestsPerClient; - this[kClosedResolve] = null; - this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1; - this[kHTTPConnVersion] = 'h1'; - this[kHTTP2Session] = null; - this[kHTTP2SessionState] = allowH2 ? { - openStreams: 0, - maxConcurrentStreams: null != maxConcurrentStreams ? maxConcurrentStreams : 100 - } : null; - this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}`; - this[kQueue] = []; - this[kRunningIdx] = 0; - this[kPendingIdx] = 0; - } - get pipelining() { - return this[kPipelining]; - } - set pipelining(value) { - this[kPipelining] = value; - resume(this, true); - } - get [kPending]() { - return this[kQueue].length - this[kPendingIdx]; - } - get [kRunning]() { - return this[kPendingIdx] - this[kRunningIdx]; - } - get [kSize]() { - return this[kQueue].length - this[kRunningIdx]; - } - get [kConnected]() { - return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed; - } - get [kBusy]() { - const socket = this[kSocket]; - return socket && (socket[kReset] || socket[kWriting] || socket[kBlocking]) || this[kSize] >= (this[kPipelining] || 1) || this[kPending] > 0; - } - [kConnect](cb) { - connect(this); - this.once('connect', cb); - } - [kDispatch](opts, handler) { - const origin = opts.origin || this[kUrl].origin; - const request = 'h2' === this[kHTTPConnVersion] ? Request[kHTTP2BuildRequest](origin, opts, handler) : Request[kHTTP1BuildRequest](origin, opts, handler); - this[kQueue].push(request); - if (this[kResuming]) ; - else if (null == util.bodyLength(request.body) && util.isIterable(request.body)) { - this[kResuming] = 1; - process.nextTick(resume, this); - } else resume(this, true); - if (this[kResuming] && 2 !== this[kNeedDrain] && this[kBusy]) this[kNeedDrain] = 2; - return this[kNeedDrain] < 2; - } - async [kClose]() { - return new Promise((resolve)=>{ - if (this[kSize]) this[kClosedResolve] = resolve; - else resolve(null); - }); - } - async [kDestroy](err) { - return new Promise((resolve)=>{ - const requests = this[kQueue].splice(this[kPendingIdx]); - for(let i = 0; i < requests.length; i++){ - const request = requests[i]; - errorRequest(this, request, err); - } - const callback = ()=>{ - if (this[kClosedResolve]) { - this[kClosedResolve](); - this[kClosedResolve] = null; - } - resolve(); - }; - if (null != this[kHTTP2Session]) { - util.destroy(this[kHTTP2Session], err); - this[kHTTP2Session] = null; - this[kHTTP2SessionState] = null; - } - if (this[kSocket]) util.destroy(this[kSocket].on('close', callback), err); - else queueMicrotask(callback); - resume(this); - }); - } - } - function onHttp2SessionError(err) { - assert('ERR_TLS_CERT_ALTNAME_INVALID' !== err.code); - this[kSocket][kError] = err; - onError(this[kClient], err); - } - function onHttp2FrameError(type, code, id) { - const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); - if (0 === id) { - this[kSocket][kError] = err; - onError(this[kClient], err); - } - } - function onHttp2SessionEnd() { - util.destroy(this, new SocketError('other side closed')); - util.destroy(this[kSocket], new SocketError('other side closed')); - } - function onHTTP2GoAway(code) { - const client = this[kClient]; - const err = new InformationalError(`HTTP/2: "GOAWAY" frame received with code ${code}`); - client[kSocket] = null; - client[kHTTP2Session] = null; - if (client.destroyed) { - assert(0 === this[kPending]); - const requests = client[kQueue].splice(client[kRunningIdx]); - for(let i = 0; i < requests.length; i++){ - const request = requests[i]; - errorRequest(this, request, err); - } - } else if (client[kRunning] > 0) { - const request = client[kQueue][client[kRunningIdx]]; - client[kQueue][client[kRunningIdx]++] = null; - errorRequest(client, request, err); - } - client[kPendingIdx] = client[kRunningIdx]; - assert(0 === client[kRunning]); - client.emit('disconnect', client[kUrl], [ - client - ], err); - resume(client); - } - const constants = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/constants.js"); - const createRedirectInterceptor = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/interceptor/redirectInterceptor.js"); - const EMPTY_BUF = Buffer.alloc(0); - async function lazyllhttp() { - const llhttpWasmData = process.env.JEST_WORKER_ID ? __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/llhttp-wasm.js") : void 0; - let mod; - try { - mod = await WebAssembly.compile(Buffer.from(__webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"), 'base64')); - } catch (e) { - mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/llhttp-wasm.js"), 'base64')); - } - return await WebAssembly.instantiate(mod, { - env: { - wasm_on_url: (p, at, len)=>0, - wasm_on_status: (p, at, len)=>{ - assert.strictEqual(currentParser.ptr, p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_message_begin: (p)=>{ - assert.strictEqual(currentParser.ptr, p); - return currentParser.onMessageBegin() || 0; - }, - wasm_on_header_field: (p, at, len)=>{ - assert.strictEqual(currentParser.ptr, p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_header_value: (p, at, len)=>{ - assert.strictEqual(currentParser.ptr, p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive)=>{ - assert.strictEqual(currentParser.ptr, p); - return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0; - }, - wasm_on_body: (p, at, len)=>{ - assert.strictEqual(currentParser.ptr, p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_message_complete: (p)=>{ - assert.strictEqual(currentParser.ptr, p); - return currentParser.onMessageComplete() || 0; - } - } - }); - } - let llhttpInstance = null; - let llhttpPromise = lazyllhttp(); - llhttpPromise.catch(); - let currentParser = null; - let currentBufferRef = null; - let currentBufferSize = 0; - let currentBufferPtr = null; - const TIMEOUT_HEADERS = 1; - const TIMEOUT_BODY = 2; - const TIMEOUT_IDLE = 3; - class Parser { - constructor(client, socket, { exports: exports1 }){ - assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); - this.llhttp = exports1; - this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE); - this.client = client; - this.socket = socket; - this.timeout = null; - this.timeoutValue = null; - this.timeoutType = null; - this.statusCode = null; - this.statusText = ''; - this.upgrade = false; - this.headers = []; - this.headersSize = 0; - this.headersMaxSize = client[kMaxHeadersSize]; - this.shouldKeepAlive = false; - this.paused = false; - this.resume = this.resume.bind(this); - this.bytesRead = 0; - this.keepAlive = ''; - this.contentLength = ''; - this.connection = ''; - this.maxResponseSize = client[kMaxResponseSize]; - } - setTimeout(value, type) { - this.timeoutType = type; - if (value !== this.timeoutValue) { - timers.clearTimeout(this.timeout); - if (value) { - this.timeout = timers.setTimeout(onParserTimeout, value, this); - if (this.timeout.unref) this.timeout.unref(); - } else this.timeout = null; - this.timeoutValue = value; - } else if (this.timeout) { - if (this.timeout.refresh) this.timeout.refresh(); - } - } - resume() { - if (this.socket.destroyed || !this.paused) return; - assert(null != this.ptr); - assert(null == currentParser); - this.llhttp.llhttp_resume(this.ptr); - assert(this.timeoutType === TIMEOUT_BODY); - if (this.timeout) { - if (this.timeout.refresh) this.timeout.refresh(); - } - this.paused = false; - this.execute(this.socket.read() || EMPTY_BUF); - this.readMore(); - } - readMore() { - while(!this.paused && this.ptr){ - const chunk = this.socket.read(); - if (null === chunk) break; - this.execute(chunk); - } - } - execute(data) { - assert(null != this.ptr); - assert(null == currentParser); - assert(!this.paused); - const { socket, llhttp } = this; - if (data.length > currentBufferSize) { - if (currentBufferPtr) llhttp.free(currentBufferPtr); - currentBufferSize = 4096 * Math.ceil(data.length / 4096); - currentBufferPtr = llhttp.malloc(currentBufferSize); - } - new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data); - try { - let ret; - try { - currentBufferRef = data; - currentParser = this; - ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length); - } catch (err) { - throw err; - } finally{ - currentParser = null; - currentBufferRef = null; - } - const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr; - if (ret === constants.ERROR.PAUSED_UPGRADE) this.onUpgrade(data.slice(offset)); - else if (ret === constants.ERROR.PAUSED) { - this.paused = true; - socket.unshift(data.slice(offset)); - } else if (ret !== constants.ERROR.OK) { - const ptr = llhttp.llhttp_get_error_reason(this.ptr); - let message = ''; - if (ptr) { - const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0); - message = 'Response does not match the HTTP/1.1 protocol (' + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ')'; - } - throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset)); - } - } catch (err) { - util.destroy(socket, err); - } - } - destroy() { - assert(null != this.ptr); - assert(null == currentParser); - this.llhttp.llhttp_free(this.ptr); - this.ptr = null; - timers.clearTimeout(this.timeout); - this.timeout = null; - this.timeoutValue = null; - this.timeoutType = null; - this.paused = false; - } - onStatus(buf) { - this.statusText = buf.toString(); - } - onMessageBegin() { - const { socket, client } = this; - if (socket.destroyed) return -1; - const request = client[kQueue][client[kRunningIdx]]; - if (!request) return -1; - } - onHeaderField(buf) { - const len = this.headers.length; - if ((1 & len) === 0) this.headers.push(buf); - else this.headers[len - 1] = Buffer.concat([ - this.headers[len - 1], - buf - ]); - this.trackHeader(buf.length); - } - onHeaderValue(buf) { - let len = this.headers.length; - if ((1 & len) === 1) { - this.headers.push(buf); - len += 1; - } else this.headers[len - 1] = Buffer.concat([ - this.headers[len - 1], - buf - ]); - const key = this.headers[len - 2]; - if (10 === key.length && 'keep-alive' === key.toString().toLowerCase()) this.keepAlive += buf.toString(); - else if (10 === key.length && 'connection' === key.toString().toLowerCase()) this.connection += buf.toString(); - else if (14 === key.length && 'content-length' === key.toString().toLowerCase()) this.contentLength += buf.toString(); - this.trackHeader(buf.length); - } - trackHeader(len) { - this.headersSize += len; - if (this.headersSize >= this.headersMaxSize) util.destroy(this.socket, new HeadersOverflowError()); - } - onUpgrade(head) { - const { upgrade, client, socket, headers, statusCode } = this; - assert(upgrade); - const request = client[kQueue][client[kRunningIdx]]; - assert(request); - assert(!socket.destroyed); - assert(socket === client[kSocket]); - assert(!this.paused); - assert(request.upgrade || 'CONNECT' === request.method); - this.statusCode = null; - this.statusText = ''; - this.shouldKeepAlive = null; - assert(this.headers.length % 2 === 0); - this.headers = []; - this.headersSize = 0; - socket.unshift(head); - socket[kParser].destroy(); - socket[kParser] = null; - socket[kClient] = null; - socket[kError] = null; - socket.removeListener('error', onSocketError).removeListener('readable', onSocketReadable).removeListener('end', onSocketEnd).removeListener('close', onSocketClose); - client[kSocket] = null; - client[kQueue][client[kRunningIdx]++] = null; - client.emit('disconnect', client[kUrl], [ - client - ], new InformationalError('upgrade')); - try { - request.onUpgrade(statusCode, headers, socket); - } catch (err) { - util.destroy(socket, err); - } - resume(client); - } - onHeadersComplete(statusCode, upgrade, shouldKeepAlive) { - const { client, socket, headers, statusText } = this; - if (socket.destroyed) return -1; - const request = client[kQueue][client[kRunningIdx]]; - if (!request) return -1; - assert(!this.upgrade); - assert(this.statusCode < 200); - if (100 === statusCode) { - util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket))); - return -1; - } - if (upgrade && !request.upgrade) { - util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket))); - return -1; - } - assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS); - this.statusCode = statusCode; - this.shouldKeepAlive = shouldKeepAlive || 'HEAD' === request.method && !socket[kReset] && 'keep-alive' === this.connection.toLowerCase(); - if (this.statusCode >= 200) { - const bodyTimeout = null != request.bodyTimeout ? request.bodyTimeout : client[kBodyTimeout]; - this.setTimeout(bodyTimeout, TIMEOUT_BODY); - } else if (this.timeout) { - if (this.timeout.refresh) this.timeout.refresh(); - } - if ('CONNECT' === request.method) { - assert(1 === client[kRunning]); - this.upgrade = true; - return 2; - } - if (upgrade) { - assert(1 === client[kRunning]); - this.upgrade = true; - return 2; - } - assert(this.headers.length % 2 === 0); - this.headers = []; - this.headersSize = 0; - if (this.shouldKeepAlive && client[kPipelining]) { - const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null; - if (null != keepAliveTimeout) { - const timeout = Math.min(keepAliveTimeout - client[kKeepAliveTimeoutThreshold], client[kKeepAliveMaxTimeout]); - if (timeout <= 0) socket[kReset] = true; - else client[kKeepAliveTimeoutValue] = timeout; - } else client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]; - } else socket[kReset] = true; - const pause = false === request.onHeaders(statusCode, headers, this.resume, statusText); - if (request.aborted) return -1; - if ('HEAD' === request.method) return 1; - if (statusCode < 200) return 1; - if (socket[kBlocking]) { - socket[kBlocking] = false; - resume(client); - } - return pause ? constants.ERROR.PAUSED : 0; - } - onBody(buf) { - const { client, socket, statusCode, maxResponseSize } = this; - if (socket.destroyed) return -1; - const request = client[kQueue][client[kRunningIdx]]; - assert(request); - assert.strictEqual(this.timeoutType, TIMEOUT_BODY); - if (this.timeout) { - if (this.timeout.refresh) this.timeout.refresh(); - } - assert(statusCode >= 200); - if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { - util.destroy(socket, new ResponseExceededMaxSizeError()); - return -1; - } - this.bytesRead += buf.length; - if (false === request.onData(buf)) return constants.ERROR.PAUSED; - } - onMessageComplete() { - const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this; - if (socket.destroyed && (!statusCode || shouldKeepAlive)) return -1; - if (upgrade) return; - const request = client[kQueue][client[kRunningIdx]]; - assert(request); - assert(statusCode >= 100); - this.statusCode = null; - this.statusText = ''; - this.bytesRead = 0; - this.contentLength = ''; - this.keepAlive = ''; - this.connection = ''; - assert(this.headers.length % 2 === 0); - this.headers = []; - this.headersSize = 0; - if (statusCode < 200) return; - if ('HEAD' !== request.method && contentLength && bytesRead !== parseInt(contentLength, 10)) { - util.destroy(socket, new ResponseContentLengthMismatchError()); - return -1; - } - request.onComplete(headers); - client[kQueue][client[kRunningIdx]++] = null; - if (socket[kWriting]) { - assert.strictEqual(client[kRunning], 0); - util.destroy(socket, new InformationalError('reset')); - return constants.ERROR.PAUSED; - } - if (shouldKeepAlive) if (socket[kReset] && 0 === client[kRunning]) { - util.destroy(socket, new InformationalError('reset')); - return constants.ERROR.PAUSED; - } else if (1 === client[kPipelining]) setImmediate(resume, client); - else resume(client); - else { - util.destroy(socket, new InformationalError('reset')); - return constants.ERROR.PAUSED; - } - } - } - function onParserTimeout(parser) { - const { socket, timeoutType, client } = parser; - if (timeoutType === TIMEOUT_HEADERS) { - if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { - assert(!parser.paused, 'cannot be paused while waiting for headers'); - util.destroy(socket, new HeadersTimeoutError()); - } - } else if (timeoutType === TIMEOUT_BODY) { - if (!parser.paused) util.destroy(socket, new BodyTimeoutError()); - } else if (timeoutType === TIMEOUT_IDLE) { - assert(0 === client[kRunning] && client[kKeepAliveTimeoutValue]); - util.destroy(socket, new InformationalError('socket idle timeout')); - } - } - function onSocketReadable() { - const { [kParser]: parser } = this; - if (parser) parser.readMore(); - } - function onSocketError(err) { - const { [kClient]: client, [kParser]: parser } = this; - assert('ERR_TLS_CERT_ALTNAME_INVALID' !== err.code); - if ('h2' !== client[kHTTPConnVersion]) { - if ('ECONNRESET' === err.code && parser.statusCode && !parser.shouldKeepAlive) return void parser.onMessageComplete(); - } - this[kError] = err; - onError(this[kClient], err); - } - function onError(client, err) { - if (0 === client[kRunning] && 'UND_ERR_INFO' !== err.code && 'UND_ERR_SOCKET' !== err.code) { - assert(client[kPendingIdx] === client[kRunningIdx]); - const requests = client[kQueue].splice(client[kRunningIdx]); - for(let i = 0; i < requests.length; i++){ - const request = requests[i]; - errorRequest(client, request, err); - } - assert(0 === client[kSize]); - } - } - function onSocketEnd() { - const { [kParser]: parser, [kClient]: client } = this; - if ('h2' !== client[kHTTPConnVersion]) { - if (parser.statusCode && !parser.shouldKeepAlive) return void parser.onMessageComplete(); - } - util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this))); - } - function onSocketClose() { - const { [kClient]: client, [kParser]: parser } = this; - if ('h1' === client[kHTTPConnVersion] && parser) { - if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) parser.onMessageComplete(); - this[kParser].destroy(); - this[kParser] = null; - } - const err = this[kError] || new SocketError('closed', util.getSocketInfo(this)); - client[kSocket] = null; - if (client.destroyed) { - assert(0 === client[kPending]); - const requests = client[kQueue].splice(client[kRunningIdx]); - for(let i = 0; i < requests.length; i++){ - const request = requests[i]; - errorRequest(client, request, err); - } - } else if (client[kRunning] > 0 && 'UND_ERR_INFO' !== err.code) { - const request = client[kQueue][client[kRunningIdx]]; - client[kQueue][client[kRunningIdx]++] = null; - errorRequest(client, request, err); - } - client[kPendingIdx] = client[kRunningIdx]; - assert(0 === client[kRunning]); - client.emit('disconnect', client[kUrl], [ - client - ], err); - resume(client); - } - async function connect(client) { - assert(!client[kConnecting]); - assert(!client[kSocket]); - let { host, hostname, protocol, port } = client[kUrl]; - if ('[' === hostname[0]) { - const idx = hostname.indexOf(']'); - assert(-1 !== idx); - const ip = hostname.substring(1, idx); - assert(net.isIP(ip)); - hostname = ip; - } - client[kConnecting] = true; - if (channels.beforeConnect.hasSubscribers) channels.beforeConnect.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector] - }); - try { - const socket = await new Promise((resolve, reject)=>{ - client[kConnector]({ - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, (err, socket)=>{ - if (err) reject(err); - else resolve(socket); - }); - }); - if (client.destroyed) return void util.destroy(socket.on('error', ()=>{}), new ClientDestroyedError()); - client[kConnecting] = false; - assert(socket); - const isH2 = 'h2' === socket.alpnProtocol; - if (isH2) { - if (!h2ExperimentalWarned) { - h2ExperimentalWarned = true; - process.emitWarning('H2 support is experimental, expect them to change at any time.', { - code: 'UNDICI-H2' - }); - } - const session = http2.connect(client[kUrl], { - createConnection: ()=>socket, - peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams - }); - client[kHTTPConnVersion] = 'h2'; - session[kClient] = client; - session[kSocket] = socket; - session.on('error', onHttp2SessionError); - session.on('frameError', onHttp2FrameError); - session.on('end', onHttp2SessionEnd); - session.on('goaway', onHTTP2GoAway); - session.on('close', onSocketClose); - session.unref(); - client[kHTTP2Session] = session; - socket[kHTTP2Session] = session; - } else { - if (!llhttpInstance) { - llhttpInstance = await llhttpPromise; - llhttpPromise = null; - } - socket[kNoRef] = false; - socket[kWriting] = false; - socket[kReset] = false; - socket[kBlocking] = false; - socket[kParser] = new Parser(client, socket, llhttpInstance); - } - socket[kCounter] = 0; - socket[kMaxRequests] = client[kMaxRequests]; - socket[kClient] = client; - socket[kError] = null; - socket.on('error', onSocketError).on('readable', onSocketReadable).on('end', onSocketEnd).on('close', onSocketClose); - client[kSocket] = socket; - if (channels.connected.hasSubscribers) channels.connected.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector], - socket - }); - client.emit('connect', client[kUrl], [ - client - ]); - } catch (err) { - if (client.destroyed) return; - client[kConnecting] = false; - if (channels.connectError.hasSubscribers) channels.connectError.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector], - error: err - }); - if ('ERR_TLS_CERT_ALTNAME_INVALID' === err.code) { - assert(0 === client[kRunning]); - while(client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]){ - const request = client[kQueue][client[kPendingIdx]++]; - errorRequest(client, request, err); - } - } else onError(client, err); - client.emit('connectionError', client[kUrl], [ - client - ], err); - } - resume(client); - } - function emitDrain(client) { - client[kNeedDrain] = 0; - client.emit('drain', client[kUrl], [ - client - ]); - } - function resume(client, sync) { - if (2 === client[kResuming]) return; - client[kResuming] = 2; - _resume(client, sync); - client[kResuming] = 0; - if (client[kRunningIdx] > 256) { - client[kQueue].splice(0, client[kRunningIdx]); - client[kPendingIdx] -= client[kRunningIdx]; - client[kRunningIdx] = 0; - } - } - function _resume(client, sync) { - while(true){ - if (client.destroyed) return void assert(0 === client[kPending]); - if (client[kClosedResolve] && !client[kSize]) { - client[kClosedResolve](); - client[kClosedResolve] = null; - return; - } - const socket = client[kSocket]; - if (socket && !socket.destroyed && 'h2' !== socket.alpnProtocol) { - if (0 === client[kSize]) { - if (!socket[kNoRef] && socket.unref) { - socket.unref(); - socket[kNoRef] = true; - } - } else if (socket[kNoRef] && socket.ref) { - socket.ref(); - socket[kNoRef] = false; - } - if (0 === client[kSize]) { - if (socket[kParser].timeoutType !== TIMEOUT_IDLE) socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE); - } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { - if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { - const request = client[kQueue][client[kRunningIdx]]; - const headersTimeout = null != request.headersTimeout ? request.headersTimeout : client[kHeadersTimeout]; - socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS); - } - } - } - if (client[kBusy]) client[kNeedDrain] = 2; - else if (2 === client[kNeedDrain]) { - if (sync) { - client[kNeedDrain] = 1; - process.nextTick(emitDrain, client); - } else emitDrain(client); - continue; - } - if (0 === client[kPending]) return; - if (client[kRunning] >= (client[kPipelining] || 1)) return; - const request = client[kQueue][client[kPendingIdx]]; - if ('https:' === client[kUrl].protocol && client[kServerName] !== request.servername) { - if (client[kRunning] > 0) return; - client[kServerName] = request.servername; - if (socket && socket.servername !== request.servername) return void util.destroy(socket, new InformationalError('servername changed')); - } - if (client[kConnecting]) return; - if (!socket && !client[kHTTP2Session]) return void connect(client); - if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) return; - if (client[kRunning] > 0 && !request.idempotent) return; - if (client[kRunning] > 0 && (request.upgrade || 'CONNECT' === request.method)) return; - if (client[kRunning] > 0 && 0 !== util.bodyLength(request.body) && (util.isStream(request.body) || util.isAsyncIterable(request.body))) return; - if (!request.aborted && write(client, request)) client[kPendingIdx]++; - else client[kQueue].splice(client[kPendingIdx], 1); - } - } - function shouldSendContentLength(method) { - return 'GET' !== method && 'HEAD' !== method && 'OPTIONS' !== method && 'TRACE' !== method && 'CONNECT' !== method; - } - function write(client, request) { - if ('h2' === client[kHTTPConnVersion]) return void writeH2(client, client[kHTTP2Session], request); - const { body, method, path, host, upgrade, headers, blocking, reset } = request; - const expectsPayload = 'PUT' === method || 'POST' === method || 'PATCH' === method; - if (body && 'function' == typeof body.read) body.read(0); - const bodyLength = util.bodyLength(body); - let contentLength = bodyLength; - if (null === contentLength) contentLength = request.contentLength; - if (0 === contentLength && !expectsPayload) contentLength = null; - if (shouldSendContentLength(method) && contentLength > 0 && null !== request.contentLength && request.contentLength !== contentLength) { - if (client[kStrictContentLength]) { - errorRequest(client, request, new RequestContentLengthMismatchError()); - return false; - } - process.emitWarning(new RequestContentLengthMismatchError()); - } - const socket = client[kSocket]; - try { - request.onConnect((err)=>{ - if (request.aborted || request.completed) return; - errorRequest(client, request, err || new RequestAbortedError()); - util.destroy(socket, new InformationalError('aborted')); - }); - } catch (err) { - errorRequest(client, request, err); - } - if (request.aborted) return false; - if ('HEAD' === method) socket[kReset] = true; - if (upgrade || 'CONNECT' === method) socket[kReset] = true; - if (null != reset) socket[kReset] = reset; - if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) socket[kReset] = true; - if (blocking) socket[kBlocking] = true; - let header = `${method} ${path} HTTP/1.1\r\n`; - if ('string' == typeof host) header += `host: ${host}\r\n`; - else header += client[kHostHeader]; - if (upgrade) header += `connection: upgrade\r\nupgrade: ${upgrade}\r\n`; - else if (client[kPipelining] && !socket[kReset]) header += 'connection: keep-alive\r\n'; - else header += 'connection: close\r\n'; - if (headers) header += headers; - if (channels.sendHeaders.hasSubscribers) channels.sendHeaders.publish({ - request, - headers: header, - socket - }); - if (body && 0 !== bodyLength) if (util.isBuffer(body)) { - assert(contentLength === body.byteLength, 'buffer body must have content length'); - socket.cork(); - socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1'); - socket.write(body); - socket.uncork(); - request.onBodySent(body); - request.onRequestSent(); - if (!expectsPayload) socket[kReset] = true; - } else if (util.isBlobLike(body)) if ('function' == typeof body.stream) writeIterable({ - body: body.stream(), - client, - request, - socket, - contentLength, - header, - expectsPayload - }); - else writeBlob({ - body, - client, - request, - socket, - contentLength, - header, - expectsPayload - }); - else if (util.isStream(body)) writeStream({ - body, - client, - request, - socket, - contentLength, - header, - expectsPayload - }); - else if (util.isIterable(body)) writeIterable({ - body, - client, - request, - socket, - contentLength, - header, - expectsPayload - }); - else assert(false); - else { - if (0 === contentLength) socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1'); - else { - assert(null === contentLength, 'no body must not have content length'); - socket.write(`${header}\r\n`, 'latin1'); - } - request.onRequestSent(); - } - return true; - } - function writeH2(client, session, request) { - const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request; - let headers; - headers = 'string' == typeof reqHeaders ? Request[kHTTP2CopyHeaders](reqHeaders.trim()) : reqHeaders; - if (upgrade) { - errorRequest(client, request, new Error('Upgrade not supported for H2')); - return false; - } - try { - request.onConnect((err)=>{ - if (request.aborted || request.completed) return; - errorRequest(client, request, err || new RequestAbortedError()); - }); - } catch (err) { - errorRequest(client, request, err); - } - if (request.aborted) return false; - let stream; - const h2State = client[kHTTP2SessionState]; - headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost]; - headers[HTTP2_HEADER_METHOD] = method; - if ('CONNECT' === method) { - session.ref(); - stream = session.request(headers, { - endStream: false, - signal - }); - if (stream.id && !stream.pending) { - request.onUpgrade(null, null, stream); - ++h2State.openStreams; - } else stream.once('ready', ()=>{ - request.onUpgrade(null, null, stream); - ++h2State.openStreams; - }); - stream.once('close', ()=>{ - h2State.openStreams -= 1; - if (0 === h2State.openStreams) session.unref(); - }); - return true; - } - headers[HTTP2_HEADER_PATH] = path; - headers[HTTP2_HEADER_SCHEME] = 'https'; - const expectsPayload = 'PUT' === method || 'POST' === method || 'PATCH' === method; - if (body && 'function' == typeof body.read) body.read(0); - let contentLength = util.bodyLength(body); - if (null == contentLength) contentLength = request.contentLength; - if (0 === contentLength || !expectsPayload) contentLength = null; - if (shouldSendContentLength(method) && contentLength > 0 && null != request.contentLength && request.contentLength !== contentLength) { - if (client[kStrictContentLength]) { - errorRequest(client, request, new RequestContentLengthMismatchError()); - return false; - } - process.emitWarning(new RequestContentLengthMismatchError()); - } - if (null != contentLength) { - assert(body, 'no body must not have content length'); - headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`; - } - session.ref(); - const shouldEndStream = 'GET' === method || 'HEAD' === method; - if (expectContinue) { - headers[HTTP2_HEADER_EXPECT] = '100-continue'; - stream = session.request(headers, { - endStream: shouldEndStream, - signal - }); - stream.once('continue', writeBodyH2); - } else { - stream = session.request(headers, { - endStream: shouldEndStream, - signal - }); - writeBodyH2(); - } - ++h2State.openStreams; - stream.once('response', (headers)=>{ - const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers; - if (false === request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '')) stream.pause(); - }); - stream.once('end', ()=>{ - request.onComplete([]); - }); - stream.on('data', (chunk)=>{ - if (false === request.onData(chunk)) stream.pause(); - }); - stream.once('close', ()=>{ - h2State.openStreams -= 1; - if (0 === h2State.openStreams) session.unref(); - }); - stream.once('error', function(err) { - if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { - h2State.streams -= 1; - util.destroy(stream, err); - } - }); - stream.once('frameError', (type, code)=>{ - const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); - errorRequest(client, request, err); - if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { - h2State.streams -= 1; - util.destroy(stream, err); - } - }); - return true; - function writeBodyH2() { - if (body) if (util.isBuffer(body)) { - assert(contentLength === body.byteLength, 'buffer body must have content length'); - stream.cork(); - stream.write(body); - stream.uncork(); - stream.end(); - request.onBodySent(body); - request.onRequestSent(); - } else if (util.isBlobLike(body)) if ('function' == typeof body.stream) writeIterable({ - client, - request, - contentLength, - h2stream: stream, - expectsPayload, - body: body.stream(), - socket: client[kSocket], - header: '' - }); - else writeBlob({ - body, - client, - request, - contentLength, - expectsPayload, - h2stream: stream, - header: '', - socket: client[kSocket] - }); - else if (util.isStream(body)) writeStream({ - body, - client, - request, - contentLength, - expectsPayload, - socket: client[kSocket], - h2stream: stream, - header: '' - }); - else if (util.isIterable(body)) writeIterable({ - body, - client, - request, - contentLength, - expectsPayload, - header: '', - h2stream: stream, - socket: client[kSocket] - }); - else assert(false); - else request.onRequestSent(); - } - } - function writeStream({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(0 !== contentLength || 0 === client[kRunning], 'stream body cannot be pipelined'); - if ('h2' === client[kHTTPConnVersion]) { - const pipe = pipeline(body, h2stream, (err)=>{ - if (err) { - util.destroy(body, err); - util.destroy(h2stream, err); - } else request.onRequestSent(); - }); - pipe.on('data', onPipeData); - pipe.once('end', ()=>{ - pipe.removeListener('data', onPipeData); - util.destroy(pipe); - }); - function onPipeData(chunk) { - request.onBodySent(chunk); - } - return; - } - let finished = false; - const writer = new AsyncWriter({ - socket, - request, - contentLength, - client, - expectsPayload, - header - }); - const onData = function(chunk) { - if (finished) return; - try { - if (!writer.write(chunk) && this.pause) this.pause(); - } catch (err) { - util.destroy(this, err); - } - }; - const onDrain = function() { - if (finished) return; - if (body.resume) body.resume(); - }; - const onAbort = function() { - if (finished) return; - const err = new RequestAbortedError(); - queueMicrotask(()=>onFinished(err)); - }; - const onFinished = function(err) { - if (finished) return; - finished = true; - assert(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); - socket.off('drain', onDrain).off('error', onFinished); - body.removeListener('data', onData).removeListener('end', onFinished).removeListener('error', onFinished).removeListener('close', onAbort); - if (!err) try { - writer.end(); - } catch (er) { - err = er; - } - writer.destroy(err); - if (err && ('UND_ERR_INFO' !== err.code || 'reset' !== err.message)) util.destroy(body, err); - else util.destroy(body); - }; - body.on('data', onData).on('end', onFinished).on('error', onFinished).on('close', onAbort); - if (body.resume) body.resume(); - socket.on('drain', onDrain).on('error', onFinished); - } - async function writeBlob({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(contentLength === body.size, 'blob body must have content length'); - const isH2 = 'h2' === client[kHTTPConnVersion]; - try { - if (null != contentLength && contentLength !== body.size) throw new RequestContentLengthMismatchError(); - const buffer = Buffer.from(await body.arrayBuffer()); - if (isH2) { - h2stream.cork(); - h2stream.write(buffer); - h2stream.uncork(); - } else { - socket.cork(); - socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1'); - socket.write(buffer); - socket.uncork(); - } - request.onBodySent(buffer); - request.onRequestSent(); - if (!expectsPayload) socket[kReset] = true; - resume(client); - } catch (err) { - util.destroy(isH2 ? h2stream : socket, err); - } - } - async function writeIterable({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(0 !== contentLength || 0 === client[kRunning], 'iterator body cannot be pipelined'); - let callback = null; - function onDrain() { - if (callback) { - const cb = callback; - callback = null; - cb(); - } - } - const waitForDrain = ()=>new Promise((resolve, reject)=>{ - assert(null === callback); - if (socket[kError]) reject(socket[kError]); - else callback = resolve; - }); - if ('h2' === client[kHTTPConnVersion]) { - h2stream.on('close', onDrain).on('drain', onDrain); - try { - for await (const chunk of body){ - if (socket[kError]) throw socket[kError]; - const res = h2stream.write(chunk); - request.onBodySent(chunk); - if (!res) await waitForDrain(); - } - } catch (err) { - h2stream.destroy(err); - } finally{ - request.onRequestSent(); - h2stream.end(); - h2stream.off('close', onDrain).off('drain', onDrain); - } - return; - } - socket.on('close', onDrain).on('drain', onDrain); - const writer = new AsyncWriter({ - socket, - request, - contentLength, - client, - expectsPayload, - header - }); - try { - for await (const chunk of body){ - if (socket[kError]) throw socket[kError]; - if (!writer.write(chunk)) await waitForDrain(); - } - writer.end(); - } catch (err) { - writer.destroy(err); - } finally{ - socket.off('close', onDrain).off('drain', onDrain); - } - } - class AsyncWriter { - constructor({ socket, request, contentLength, client, expectsPayload, header }){ - this.socket = socket; - this.request = request; - this.contentLength = contentLength; - this.client = client; - this.bytesWritten = 0; - this.expectsPayload = expectsPayload; - this.header = header; - socket[kWriting] = true; - } - write(chunk) { - const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this; - if (socket[kError]) throw socket[kError]; - if (socket.destroyed) return false; - const len = Buffer.byteLength(chunk); - if (!len) return true; - if (null !== contentLength && bytesWritten + len > contentLength) { - if (client[kStrictContentLength]) throw new RequestContentLengthMismatchError(); - process.emitWarning(new RequestContentLengthMismatchError()); - } - socket.cork(); - if (0 === bytesWritten) { - if (!expectsPayload) socket[kReset] = true; - if (null === contentLength) socket.write(`${header}transfer-encoding: chunked\r\n`, 'latin1'); - else socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1'); - } - if (null === contentLength) socket.write(`\r\n${len.toString(16)}\r\n`, 'latin1'); - this.bytesWritten += len; - const ret = socket.write(chunk); - socket.uncork(); - request.onBodySent(chunk); - if (!ret) { - if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { - if (socket[kParser].timeout.refresh) socket[kParser].timeout.refresh(); - } - } - return ret; - } - end() { - const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this; - request.onRequestSent(); - socket[kWriting] = false; - if (socket[kError]) throw socket[kError]; - if (socket.destroyed) return; - if (0 === bytesWritten) if (expectsPayload) socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1'); - else socket.write(`${header}\r\n`, 'latin1'); - else if (null === contentLength) socket.write('\r\n0\r\n\r\n', 'latin1'); - if (null !== contentLength && bytesWritten !== contentLength) if (client[kStrictContentLength]) throw new RequestContentLengthMismatchError(); - else process.emitWarning(new RequestContentLengthMismatchError()); - if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { - if (socket[kParser].timeout.refresh) socket[kParser].timeout.refresh(); - } - resume(client); - } - destroy(err) { - const { socket, client } = this; - socket[kWriting] = false; - if (err) { - assert(client[kRunning] <= 1, 'pipeline should only contain this request'); - util.destroy(socket, err); - } - } - } - function errorRequest(client, request, err) { - try { - request.onError(err); - assert(request.aborted); - } catch (err) { - client.emit('error', err); - } - } - module.exports = Client; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/compat/dispatcher-weakref.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kConnected, kSize } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - class CompatWeakRef { - constructor(value){ - this.value = value; - } - deref() { - return 0 === this.value[kConnected] && 0 === this.value[kSize] ? void 0 : this.value; - } - } - class CompatFinalizer { - constructor(finalizer){ - this.finalizer = finalizer; - } - register(dispatcher, key) { - if (dispatcher.on) dispatcher.on('disconnect', ()=>{ - if (0 === dispatcher[kConnected] && 0 === dispatcher[kSize]) this.finalizer(key); - }); - } - } - module.exports = function() { - if (process.env.NODE_V8_COVERAGE) return { - WeakRef: CompatWeakRef, - FinalizationRegistry: CompatFinalizer - }; - return { - WeakRef: global.WeakRef || CompatWeakRef, - FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer - }; - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/constants.js" (module) { - "use strict"; - const maxAttributeValueSize = 1024; - const maxNameValuePairSize = 4096; - module.exports = { - maxAttributeValueSize, - maxNameValuePairSize - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { parseSetCookie } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/parse.js"); - const { stringify } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/util.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { Headers } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js"); - function getCookies(headers) { - webidl.argumentLengthCheck(arguments, 1, { - header: 'getCookies' - }); - webidl.brandCheck(headers, Headers, { - strict: false - }); - const cookie = headers.get('cookie'); - const out = {}; - if (!cookie) return out; - for (const piece of cookie.split(';')){ - const [name, ...value] = piece.split('='); - out[name.trim()] = value.join('='); - } - return out; - } - function deleteCookie(headers, name, attributes) { - webidl.argumentLengthCheck(arguments, 2, { - header: 'deleteCookie' - }); - webidl.brandCheck(headers, Headers, { - strict: false - }); - name = webidl.converters.DOMString(name); - attributes = webidl.converters.DeleteCookieAttributes(attributes); - setCookie(headers, { - name, - value: '', - expires: new Date(0), - ...attributes - }); - } - function getSetCookies(headers) { - webidl.argumentLengthCheck(arguments, 1, { - header: 'getSetCookies' - }); - webidl.brandCheck(headers, Headers, { - strict: false - }); - const cookies = headers.getSetCookie(); - if (!cookies) return []; - return cookies.map((pair)=>parseSetCookie(pair)); - } - function setCookie(headers, cookie) { - webidl.argumentLengthCheck(arguments, 2, { - header: 'setCookie' - }); - webidl.brandCheck(headers, Headers, { - strict: false - }); - cookie = webidl.converters.Cookie(cookie); - const str = stringify(cookie); - if (str) headers.append('Set-Cookie', stringify(cookie)); - } - webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'path', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'domain', - defaultValue: null - } - ]); - webidl.converters.Cookie = webidl.dictionaryConverter([ - { - converter: webidl.converters.DOMString, - key: 'name' - }, - { - converter: webidl.converters.DOMString, - key: 'value' - }, - { - converter: webidl.nullableConverter((value)=>{ - if ('number' == typeof value) return webidl.converters['unsigned long long'](value); - return new Date(value); - }), - key: 'expires', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters['long long']), - key: 'maxAge', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'domain', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'path', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.boolean), - key: 'secure', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.boolean), - key: 'httpOnly', - defaultValue: null - }, - { - converter: webidl.converters.USVString, - key: 'sameSite', - allowedValues: [ - 'Strict', - 'Lax', - 'None' - ] - }, - { - converter: webidl.sequenceConverter(webidl.converters.DOMString), - key: 'unparsed', - defaultValue: [] - } - ]); - module.exports = { - getCookies, - deleteCookie, - getSetCookies, - setCookie - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/parse.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { maxNameValuePairSize, maxAttributeValueSize } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/constants.js"); - const { isCTLExcludingHtab } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/util.js"); - const { collectASequenceOfCodePointsFast } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const assert = __webpack_require__("assert"); - function parseSetCookie(header) { - if (isCTLExcludingHtab(header)) return null; - let nameValuePair = ''; - let unparsedAttributes = ''; - let name = ''; - let value = ''; - if (header.includes(';')) { - const position = { - position: 0 - }; - nameValuePair = collectASequenceOfCodePointsFast(';', header, position); - unparsedAttributes = header.slice(position.position); - } else nameValuePair = header; - if (nameValuePair.includes('=')) { - const position = { - position: 0 - }; - name = collectASequenceOfCodePointsFast('=', nameValuePair, position); - value = nameValuePair.slice(position.position + 1); - } else value = nameValuePair; - name = name.trim(); - value = value.trim(); - if (name.length + value.length > maxNameValuePairSize) return null; - return { - name, - value, - ...parseUnparsedAttributes(unparsedAttributes) - }; - } - function parseUnparsedAttributes(unparsedAttributes, cookieAttributeList = {}) { - if (0 === unparsedAttributes.length) return cookieAttributeList; - assert(';' === unparsedAttributes[0]); - unparsedAttributes = unparsedAttributes.slice(1); - let cookieAv = ''; - if (unparsedAttributes.includes(';')) { - cookieAv = collectASequenceOfCodePointsFast(';', unparsedAttributes, { - position: 0 - }); - unparsedAttributes = unparsedAttributes.slice(cookieAv.length); - } else { - cookieAv = unparsedAttributes; - unparsedAttributes = ''; - } - let attributeName = ''; - let attributeValue = ''; - if (cookieAv.includes('=')) { - const position = { - position: 0 - }; - attributeName = collectASequenceOfCodePointsFast('=', cookieAv, position); - attributeValue = cookieAv.slice(position.position + 1); - } else attributeName = cookieAv; - attributeName = attributeName.trim(); - attributeValue = attributeValue.trim(); - if (attributeValue.length > maxAttributeValueSize) return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - const attributeNameLowercase = attributeName.toLowerCase(); - if ('expires' === attributeNameLowercase) { - const expiryTime = new Date(attributeValue); - cookieAttributeList.expires = expiryTime; - } else if ('max-age' === attributeNameLowercase) { - const charCode = attributeValue.charCodeAt(0); - if ((charCode < 48 || charCode > 57) && '-' !== attributeValue[0]) return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - if (!/^\d+$/.test(attributeValue)) return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - const deltaSeconds = Number(attributeValue); - cookieAttributeList.maxAge = deltaSeconds; - } else if ('domain' === attributeNameLowercase) { - let cookieDomain = attributeValue; - if ('.' === cookieDomain[0]) cookieDomain = cookieDomain.slice(1); - cookieDomain = cookieDomain.toLowerCase(); - cookieAttributeList.domain = cookieDomain; - } else if ('path' === attributeNameLowercase) { - let cookiePath = ''; - cookiePath = 0 === attributeValue.length || '/' !== attributeValue[0] ? '/' : attributeValue; - cookieAttributeList.path = cookiePath; - } else if ('secure' === attributeNameLowercase) cookieAttributeList.secure = true; - else if ('httponly' === attributeNameLowercase) cookieAttributeList.httpOnly = true; - else if ('samesite' === attributeNameLowercase) { - let enforcement = 'Default'; - const attributeValueLowercase = attributeValue.toLowerCase(); - if (attributeValueLowercase.includes('none')) enforcement = 'None'; - if (attributeValueLowercase.includes('strict')) enforcement = 'Strict'; - if (attributeValueLowercase.includes('lax')) enforcement = 'Lax'; - cookieAttributeList.sameSite = enforcement; - } else { - cookieAttributeList.unparsed ??= []; - cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`); - } - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - } - module.exports = { - parseSetCookie, - parseUnparsedAttributes - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/cookies/util.js" (module) { - "use strict"; - function isCTLExcludingHtab(value) { - if (0 === value.length) return false; - for (const char of value){ - const code = char.charCodeAt(0); - if (code >= 0x00 || code <= 0x08 || code >= 0x0A || code <= 0x1F || 0x7F === code) return false; - } - } - function validateCookieName(name) { - for (const char of name){ - const code = char.charCodeAt(0); - if (code <= 0x20 || code > 0x7F || '(' === char || ')' === char || '>' === char || '<' === char || '@' === char || ',' === char || ';' === char || ':' === char || '\\' === char || '"' === char || '/' === char || '[' === char || ']' === char || '?' === char || '=' === char || '{' === char || '}' === char) throw new Error('Invalid cookie name'); - } - } - function validateCookieValue(value) { - for (const char of value){ - const code = char.charCodeAt(0); - if (code < 0x21 || 0x22 === code || 0x2C === code || 0x3B === code || 0x5C === code || code > 0x7E) throw new Error('Invalid header value'); - } - } - function validateCookiePath(path) { - for (const char of path){ - const code = char.charCodeAt(0); - if (code < 0x21 || ';' === char) throw new Error('Invalid cookie path'); - } - } - function validateCookieDomain(domain) { - if (domain.startsWith('-') || domain.endsWith('.') || domain.endsWith('-')) throw new Error('Invalid cookie domain'); - } - function toIMFDate(date) { - if ('number' == typeof date) date = new Date(date); - const days = [ - 'Sun', - 'Mon', - 'Tue', - 'Wed', - 'Thu', - 'Fri', - 'Sat' - ]; - const months = [ - 'Jan', - 'Feb', - 'Mar', - 'Apr', - 'May', - 'Jun', - 'Jul', - 'Aug', - 'Sep', - 'Oct', - 'Nov', - 'Dec' - ]; - const dayName = days[date.getUTCDay()]; - const day = date.getUTCDate().toString().padStart(2, '0'); - const month = months[date.getUTCMonth()]; - const year = date.getUTCFullYear(); - const hour = date.getUTCHours().toString().padStart(2, '0'); - const minute = date.getUTCMinutes().toString().padStart(2, '0'); - const second = date.getUTCSeconds().toString().padStart(2, '0'); - return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`; - } - function validateCookieMaxAge(maxAge) { - if (maxAge < 0) throw new Error('Invalid cookie max-age'); - } - function stringify(cookie) { - if (0 === cookie.name.length) return null; - validateCookieName(cookie.name); - validateCookieValue(cookie.value); - const out = [ - `${cookie.name}=${cookie.value}` - ]; - if (cookie.name.startsWith('__Secure-')) cookie.secure = true; - if (cookie.name.startsWith('__Host-')) { - cookie.secure = true; - cookie.domain = null; - cookie.path = '/'; - } - if (cookie.secure) out.push('Secure'); - if (cookie.httpOnly) out.push('HttpOnly'); - if ('number' == typeof cookie.maxAge) { - validateCookieMaxAge(cookie.maxAge); - out.push(`Max-Age=${cookie.maxAge}`); - } - if (cookie.domain) { - validateCookieDomain(cookie.domain); - out.push(`Domain=${cookie.domain}`); - } - if (cookie.path) { - validateCookiePath(cookie.path); - out.push(`Path=${cookie.path}`); - } - if (cookie.expires && 'Invalid Date' !== cookie.expires.toString()) out.push(`Expires=${toIMFDate(cookie.expires)}`); - if (cookie.sameSite) out.push(`SameSite=${cookie.sameSite}`); - for (const part of cookie.unparsed){ - if (!part.includes('=')) throw new Error('Invalid unparsed'); - const [key, ...value] = part.split('='); - out.push(`${key.trim()}=${value.join('=')}`); - } - return out.join('; '); - } - module.exports = { - isCTLExcludingHtab, - validateCookieName, - validateCookiePath, - validateCookieValue, - toIMFDate, - stringify - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/connect.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const net = __webpack_require__("net"); - const assert = __webpack_require__("assert"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { InvalidArgumentError, ConnectTimeoutError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - let tls; - let SessionCache; - SessionCache = global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE ? class { - constructor(maxCachedSessions){ - this._maxCachedSessions = maxCachedSessions; - this._sessionCache = new Map(); - this._sessionRegistry = new global.FinalizationRegistry((key)=>{ - if (this._sessionCache.size < this._maxCachedSessions) return; - const ref = this._sessionCache.get(key); - if (void 0 !== ref && void 0 === ref.deref()) this._sessionCache.delete(key); - }); - } - get(sessionKey) { - const ref = this._sessionCache.get(sessionKey); - return ref ? ref.deref() : null; - } - set(sessionKey, session) { - if (0 === this._maxCachedSessions) return; - this._sessionCache.set(sessionKey, new WeakRef(session)); - this._sessionRegistry.register(session, sessionKey); - } - } : class { - constructor(maxCachedSessions){ - this._maxCachedSessions = maxCachedSessions; - this._sessionCache = new Map(); - } - get(sessionKey) { - return this._sessionCache.get(sessionKey); - } - set(sessionKey, session) { - if (0 === this._maxCachedSessions) return; - if (this._sessionCache.size >= this._maxCachedSessions) { - const { value: oldestKey } = this._sessionCache.keys().next(); - this._sessionCache.delete(oldestKey); - } - this._sessionCache.set(sessionKey, session); - } - }; - function buildConnector({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) { - if (null != maxCachedSessions && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero'); - const options = { - path: socketPath, - ...opts - }; - const sessionCache = new SessionCache(null == maxCachedSessions ? 100 : maxCachedSessions); - timeout = null == timeout ? 10e3 : timeout; - allowH2 = null != allowH2 ? allowH2 : false; - return function({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { - let socket; - if ('https:' === protocol) { - if (!tls) tls = __webpack_require__("tls"); - servername = servername || options.servername || util.getServerName(host) || null; - const sessionKey = servername || hostname; - const session = sessionCache.get(sessionKey) || null; - assert(sessionKey); - socket = tls.connect({ - highWaterMark: 16384, - ...options, - servername, - session, - localAddress, - ALPNProtocols: allowH2 ? [ - 'http/1.1', - 'h2' - ] : [ - 'http/1.1' - ], - socket: httpSocket, - port: port || 443, - host: hostname - }); - socket.on('session', function(session) { - sessionCache.set(sessionKey, session); - }); - } else { - assert(!httpSocket, 'httpSocket can only be sent on TLS update'); - socket = net.connect({ - highWaterMark: 65536, - ...options, - localAddress, - port: port || 80, - host: hostname - }); - } - if (null == options.keepAlive || options.keepAlive) { - const keepAliveInitialDelay = void 0 === options.keepAliveInitialDelay ? 60e3 : options.keepAliveInitialDelay; - socket.setKeepAlive(true, keepAliveInitialDelay); - } - const cancelTimeout = setupTimeout(()=>onConnectTimeout(socket), timeout); - socket.setNoDelay(true).once('https:' === protocol ? 'secureConnect' : 'connect', function() { - cancelTimeout(); - if (callback) { - const cb = callback; - callback = null; - cb(null, this); - } - }).on('error', function(err) { - cancelTimeout(); - if (callback) { - const cb = callback; - callback = null; - cb(err); - } - }); - return socket; - }; - } - function setupTimeout(onConnectTimeout, timeout) { - if (!timeout) return ()=>{}; - let s1 = null; - let s2 = null; - const timeoutId = setTimeout(()=>{ - s1 = setImmediate(()=>{ - if ('win32' === process.platform) s2 = setImmediate(()=>onConnectTimeout()); - else onConnectTimeout(); - }); - }, timeout); - return ()=>{ - clearTimeout(timeoutId); - clearImmediate(s1); - clearImmediate(s2); - }; - } - function onConnectTimeout(socket) { - util.destroy(socket, new ConnectTimeoutError()); - } - module.exports = buildConnector; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/constants.js" (module) { - "use strict"; - const headerNameLowerCasedRecord = {}; - const wellknownHeaderNames = [ - 'Accept', - 'Accept-Encoding', - 'Accept-Language', - 'Accept-Ranges', - 'Access-Control-Allow-Credentials', - 'Access-Control-Allow-Headers', - 'Access-Control-Allow-Methods', - 'Access-Control-Allow-Origin', - 'Access-Control-Expose-Headers', - 'Access-Control-Max-Age', - 'Access-Control-Request-Headers', - 'Access-Control-Request-Method', - 'Age', - 'Allow', - 'Alt-Svc', - 'Alt-Used', - 'Authorization', - 'Cache-Control', - 'Clear-Site-Data', - 'Connection', - 'Content-Disposition', - 'Content-Encoding', - 'Content-Language', - 'Content-Length', - 'Content-Location', - 'Content-Range', - 'Content-Security-Policy', - 'Content-Security-Policy-Report-Only', - 'Content-Type', - 'Cookie', - 'Cross-Origin-Embedder-Policy', - 'Cross-Origin-Opener-Policy', - 'Cross-Origin-Resource-Policy', - 'Date', - 'Device-Memory', - 'Downlink', - 'ECT', - 'ETag', - 'Expect', - 'Expect-CT', - 'Expires', - 'Forwarded', - 'From', - 'Host', - 'If-Match', - 'If-Modified-Since', - 'If-None-Match', - 'If-Range', - 'If-Unmodified-Since', - 'Keep-Alive', - 'Last-Modified', - 'Link', - 'Location', - 'Max-Forwards', - 'Origin', - 'Permissions-Policy', - 'Pragma', - 'Proxy-Authenticate', - 'Proxy-Authorization', - 'RTT', - 'Range', - 'Referer', - 'Referrer-Policy', - 'Refresh', - 'Retry-After', - 'Sec-WebSocket-Accept', - 'Sec-WebSocket-Extensions', - 'Sec-WebSocket-Key', - 'Sec-WebSocket-Protocol', - 'Sec-WebSocket-Version', - 'Server', - 'Server-Timing', - 'Service-Worker-Allowed', - 'Service-Worker-Navigation-Preload', - 'Set-Cookie', - 'SourceMap', - 'Strict-Transport-Security', - 'Supports-Loading-Mode', - 'TE', - 'Timing-Allow-Origin', - 'Trailer', - 'Transfer-Encoding', - 'Upgrade', - 'Upgrade-Insecure-Requests', - 'User-Agent', - 'Vary', - 'Via', - 'WWW-Authenticate', - 'X-Content-Type-Options', - 'X-DNS-Prefetch-Control', - 'X-Frame-Options', - 'X-Permitted-Cross-Domain-Policies', - 'X-Powered-By', - 'X-Requested-With', - 'X-XSS-Protection' - ]; - for(let i = 0; i < wellknownHeaderNames.length; ++i){ - const key = wellknownHeaderNames[i]; - const lowerCasedKey = key.toLowerCase(); - headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = lowerCasedKey; - } - Object.setPrototypeOf(headerNameLowerCasedRecord, null); - module.exports = { - wellknownHeaderNames, - headerNameLowerCasedRecord - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js" (module) { - "use strict"; - class UndiciError extends Error { - constructor(message){ - super(message); - this.name = 'UndiciError'; - this.code = 'UND_ERR'; - } - } - class ConnectTimeoutError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, ConnectTimeoutError); - this.name = 'ConnectTimeoutError'; - this.message = message || 'Connect Timeout Error'; - this.code = 'UND_ERR_CONNECT_TIMEOUT'; - } - } - class HeadersTimeoutError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, HeadersTimeoutError); - this.name = 'HeadersTimeoutError'; - this.message = message || 'Headers Timeout Error'; - this.code = 'UND_ERR_HEADERS_TIMEOUT'; - } - } - class HeadersOverflowError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, HeadersOverflowError); - this.name = 'HeadersOverflowError'; - this.message = message || 'Headers Overflow Error'; - this.code = 'UND_ERR_HEADERS_OVERFLOW'; - } - } - class BodyTimeoutError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, BodyTimeoutError); - this.name = 'BodyTimeoutError'; - this.message = message || 'Body Timeout Error'; - this.code = 'UND_ERR_BODY_TIMEOUT'; - } - } - class ResponseStatusCodeError extends UndiciError { - constructor(message, statusCode, headers, body){ - super(message); - Error.captureStackTrace(this, ResponseStatusCodeError); - this.name = 'ResponseStatusCodeError'; - this.message = message || 'Response Status Code Error'; - this.code = 'UND_ERR_RESPONSE_STATUS_CODE'; - this.body = body; - this.status = statusCode; - this.statusCode = statusCode; - this.headers = headers; - } - } - class InvalidArgumentError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, InvalidArgumentError); - this.name = 'InvalidArgumentError'; - this.message = message || 'Invalid Argument Error'; - this.code = 'UND_ERR_INVALID_ARG'; - } - } - class InvalidReturnValueError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, InvalidReturnValueError); - this.name = 'InvalidReturnValueError'; - this.message = message || 'Invalid Return Value Error'; - this.code = 'UND_ERR_INVALID_RETURN_VALUE'; - } - } - class RequestAbortedError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, RequestAbortedError); - this.name = 'AbortError'; - this.message = message || 'Request aborted'; - this.code = 'UND_ERR_ABORTED'; - } - } - class InformationalError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, InformationalError); - this.name = 'InformationalError'; - this.message = message || 'Request information'; - this.code = 'UND_ERR_INFO'; - } - } - class RequestContentLengthMismatchError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, RequestContentLengthMismatchError); - this.name = 'RequestContentLengthMismatchError'; - this.message = message || 'Request body length does not match content-length header'; - this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'; - } - } - class ResponseContentLengthMismatchError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, ResponseContentLengthMismatchError); - this.name = 'ResponseContentLengthMismatchError'; - this.message = message || 'Response body length does not match content-length header'; - this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'; - } - } - class ClientDestroyedError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, ClientDestroyedError); - this.name = 'ClientDestroyedError'; - this.message = message || 'The client is destroyed'; - this.code = 'UND_ERR_DESTROYED'; - } - } - class ClientClosedError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, ClientClosedError); - this.name = 'ClientClosedError'; - this.message = message || 'The client is closed'; - this.code = 'UND_ERR_CLOSED'; - } - } - class SocketError extends UndiciError { - constructor(message, socket){ - super(message); - Error.captureStackTrace(this, SocketError); - this.name = 'SocketError'; - this.message = message || 'Socket error'; - this.code = 'UND_ERR_SOCKET'; - this.socket = socket; - } - } - class NotSupportedError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, NotSupportedError); - this.name = 'NotSupportedError'; - this.message = message || 'Not supported error'; - this.code = 'UND_ERR_NOT_SUPPORTED'; - } - } - class BalancedPoolMissingUpstreamError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, NotSupportedError); - this.name = 'MissingUpstreamError'; - this.message = message || 'No upstream has been added to the BalancedPool'; - this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'; - } - } - class HTTPParserError extends Error { - constructor(message, code, data){ - super(message); - Error.captureStackTrace(this, HTTPParserError); - this.name = 'HTTPParserError'; - this.code = code ? `HPE_${code}` : void 0; - this.data = data ? data.toString() : void 0; - } - } - class ResponseExceededMaxSizeError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, ResponseExceededMaxSizeError); - this.name = 'ResponseExceededMaxSizeError'; - this.message = message || 'Response content exceeded max size'; - this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'; - } - } - class RequestRetryError extends UndiciError { - constructor(message, code, { headers, data }){ - super(message); - Error.captureStackTrace(this, RequestRetryError); - this.name = 'RequestRetryError'; - this.message = message || 'Request retry error'; - this.code = 'UND_ERR_REQ_RETRY'; - this.statusCode = code; - this.data = data; - this.headers = headers; - } - } - module.exports = { - HTTPParserError, - UndiciError, - HeadersTimeoutError, - HeadersOverflowError, - BodyTimeoutError, - RequestContentLengthMismatchError, - ConnectTimeoutError, - ResponseStatusCodeError, - InvalidArgumentError, - InvalidReturnValueError, - RequestAbortedError, - ClientDestroyedError, - ClientClosedError, - InformationalError, - SocketError, - NotSupportedError, - ResponseContentLengthMismatchError, - BalancedPoolMissingUpstreamError, - ResponseExceededMaxSizeError, - RequestRetryError - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/request.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { InvalidArgumentError, NotSupportedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const assert = __webpack_require__("assert"); - const { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/; - const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; - const invalidPathRegex = /[^\u0021-\u00ff]/; - const kHandler = Symbol('handler'); - const channels = {}; - let extractBody; - try { - const diagnosticsChannel = __webpack_require__("diagnostics_channel"); - channels.create = diagnosticsChannel.channel('undici:request:create'); - channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent'); - channels.headers = diagnosticsChannel.channel('undici:request:headers'); - channels.trailers = diagnosticsChannel.channel('undici:request:trailers'); - channels.error = diagnosticsChannel.channel('undici:request:error'); - } catch { - channels.create = { - hasSubscribers: false - }; - channels.bodySent = { - hasSubscribers: false - }; - channels.headers = { - hasSubscribers: false - }; - channels.trailers = { - hasSubscribers: false - }; - channels.error = { - hasSubscribers: false - }; - } - class Request { - constructor(origin, { path, method, body, headers, query, idempotent, blocking, upgrade, headersTimeout, bodyTimeout, reset, throwOnError, expectContinue }, handler){ - if ('string' != typeof path) throw new InvalidArgumentError('path must be a string'); - if ('/' === path[0] || path.startsWith('http://') || path.startsWith('https://') || 'CONNECT' === method) { - if (null !== invalidPathRegex.exec(path)) throw new InvalidArgumentError('invalid request path'); - } else throw new InvalidArgumentError('path must be an absolute URL or start with a slash'); - if ('string' != typeof method) throw new InvalidArgumentError('method must be a string'); - if (null === tokenRegExp.exec(method)) throw new InvalidArgumentError('invalid request method'); - if (upgrade && 'string' != typeof upgrade) throw new InvalidArgumentError('upgrade must be a string'); - if (null != headersTimeout && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) throw new InvalidArgumentError('invalid headersTimeout'); - if (null != bodyTimeout && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) throw new InvalidArgumentError('invalid bodyTimeout'); - if (null != reset && 'boolean' != typeof reset) throw new InvalidArgumentError('invalid reset'); - if (null != expectContinue && 'boolean' != typeof expectContinue) throw new InvalidArgumentError('invalid expectContinue'); - this.headersTimeout = headersTimeout; - this.bodyTimeout = bodyTimeout; - this.throwOnError = true === throwOnError; - this.method = method; - this.abort = null; - if (null == body) this.body = null; - else if (util.isStream(body)) { - this.body = body; - const rState = this.body._readableState; - if (!rState || !rState.autoDestroy) { - this.endHandler = function() { - util.destroy(this); - }; - this.body.on('end', this.endHandler); - } - this.errorHandler = (err)=>{ - if (this.abort) this.abort(err); - else this.error = err; - }; - this.body.on('error', this.errorHandler); - } else if (util.isBuffer(body)) this.body = body.byteLength ? body : null; - else if (ArrayBuffer.isView(body)) this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null; - else if (body instanceof ArrayBuffer) this.body = body.byteLength ? Buffer.from(body) : null; - else if ('string' == typeof body) this.body = body.length ? Buffer.from(body) : null; - else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) this.body = body; - else throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable'); - this.completed = false; - this.aborted = false; - this.upgrade = upgrade || null; - this.path = query ? util.buildURL(path, query) : path; - this.origin = origin; - this.idempotent = null == idempotent ? 'HEAD' === method || 'GET' === method : idempotent; - this.blocking = null == blocking ? false : blocking; - this.reset = null == reset ? null : reset; - this.host = null; - this.contentLength = null; - this.contentType = null; - this.headers = ''; - this.expectContinue = null != expectContinue ? expectContinue : false; - if (Array.isArray(headers)) { - if (headers.length % 2 !== 0) throw new InvalidArgumentError('headers array must be even'); - for(let i = 0; i < headers.length; i += 2)processHeader(this, headers[i], headers[i + 1]); - } else if (headers && 'object' == typeof headers) { - const keys = Object.keys(headers); - for(let i = 0; i < keys.length; i++){ - const key = keys[i]; - processHeader(this, key, headers[key]); - } - } else if (null != headers) throw new InvalidArgumentError('headers must be an object or an array'); - if (util.isFormDataLike(this.body)) { - if (util.nodeMajor < 16 || 16 === util.nodeMajor && util.nodeMinor < 8) throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.'); - if (!extractBody) extractBody = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/body.js").extractBody; - const [bodyStream, contentType] = extractBody(body); - if (null == this.contentType) { - this.contentType = contentType; - this.headers += `content-type: ${contentType}\r\n`; - } - this.body = bodyStream.stream; - this.contentLength = bodyStream.length; - } else if (util.isBlobLike(body) && null == this.contentType && body.type) { - this.contentType = body.type; - this.headers += `content-type: ${body.type}\r\n`; - } - util.validateHandler(handler, method, upgrade); - this.servername = util.getServerName(this.host); - this[kHandler] = handler; - if (channels.create.hasSubscribers) channels.create.publish({ - request: this - }); - } - onBodySent(chunk) { - if (this[kHandler].onBodySent) try { - return this[kHandler].onBodySent(chunk); - } catch (err) { - this.abort(err); - } - } - onRequestSent() { - if (channels.bodySent.hasSubscribers) channels.bodySent.publish({ - request: this - }); - if (this[kHandler].onRequestSent) try { - return this[kHandler].onRequestSent(); - } catch (err) { - this.abort(err); - } - } - onConnect(abort) { - assert(!this.aborted); - assert(!this.completed); - if (this.error) abort(this.error); - else { - this.abort = abort; - return this[kHandler].onConnect(abort); - } - } - onHeaders(statusCode, headers, resume, statusText) { - assert(!this.aborted); - assert(!this.completed); - if (channels.headers.hasSubscribers) channels.headers.publish({ - request: this, - response: { - statusCode, - headers, - statusText - } - }); - try { - return this[kHandler].onHeaders(statusCode, headers, resume, statusText); - } catch (err) { - this.abort(err); - } - } - onData(chunk) { - assert(!this.aborted); - assert(!this.completed); - try { - return this[kHandler].onData(chunk); - } catch (err) { - this.abort(err); - return false; - } - } - onUpgrade(statusCode, headers, socket) { - assert(!this.aborted); - assert(!this.completed); - return this[kHandler].onUpgrade(statusCode, headers, socket); - } - onComplete(trailers) { - this.onFinally(); - assert(!this.aborted); - this.completed = true; - if (channels.trailers.hasSubscribers) channels.trailers.publish({ - request: this, - trailers - }); - try { - return this[kHandler].onComplete(trailers); - } catch (err) { - this.onError(err); - } - } - onError(error) { - this.onFinally(); - if (channels.error.hasSubscribers) channels.error.publish({ - request: this, - error - }); - if (this.aborted) return; - this.aborted = true; - return this[kHandler].onError(error); - } - onFinally() { - if (this.errorHandler) { - this.body.off('error', this.errorHandler); - this.errorHandler = null; - } - if (this.endHandler) { - this.body.off('end', this.endHandler); - this.endHandler = null; - } - } - addHeader(key, value) { - processHeader(this, key, value); - return this; - } - static [kHTTP1BuildRequest](origin, opts, handler) { - return new Request(origin, opts, handler); - } - static [kHTTP2BuildRequest](origin, opts, handler) { - const headers = opts.headers; - opts = { - ...opts, - headers: null - }; - const request = new Request(origin, opts, handler); - request.headers = {}; - if (Array.isArray(headers)) { - if (headers.length % 2 !== 0) throw new InvalidArgumentError('headers array must be even'); - for(let i = 0; i < headers.length; i += 2)processHeader(request, headers[i], headers[i + 1], true); - } else if (headers && 'object' == typeof headers) { - const keys = Object.keys(headers); - for(let i = 0; i < keys.length; i++){ - const key = keys[i]; - processHeader(request, key, headers[key], true); - } - } else if (null != headers) throw new InvalidArgumentError('headers must be an object or an array'); - return request; - } - static [kHTTP2CopyHeaders](raw) { - const rawHeaders = raw.split('\r\n'); - const headers = {}; - for (const header of rawHeaders){ - const [key, value] = header.split(': '); - if (null != value && 0 !== value.length) if (headers[key]) headers[key] += `,${value}`; - else headers[key] = value; - } - return headers; - } - } - function processHeaderValue(key, val, skipAppend) { - if (val && 'object' == typeof val) throw new InvalidArgumentError(`invalid ${key} header`); - val = null != val ? `${val}` : ''; - if (null !== headerCharRegex.exec(val)) throw new InvalidArgumentError(`invalid ${key} header`); - return skipAppend ? val : `${key}: ${val}\r\n`; - } - function processHeader(request, key, val, skipAppend = false) { - if (val && 'object' == typeof val && !Array.isArray(val)) throw new InvalidArgumentError(`invalid ${key} header`); - if (void 0 === val) return; - if (null === request.host && 4 === key.length && 'host' === key.toLowerCase()) { - if (null !== headerCharRegex.exec(val)) throw new InvalidArgumentError(`invalid ${key} header`); - request.host = val; - } else if (null === request.contentLength && 14 === key.length && 'content-length' === key.toLowerCase()) { - request.contentLength = parseInt(val, 10); - if (!Number.isFinite(request.contentLength)) throw new InvalidArgumentError('invalid content-length header'); - } else if (null === request.contentType && 12 === key.length && 'content-type' === key.toLowerCase()) { - request.contentType = val; - if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend); - else request.headers += processHeaderValue(key, val); - } else if (17 === key.length && 'transfer-encoding' === key.toLowerCase()) throw new InvalidArgumentError('invalid transfer-encoding header'); - else if (10 === key.length && 'connection' === key.toLowerCase()) { - const value = 'string' == typeof val ? val.toLowerCase() : null; - if ('close' !== value && 'keep-alive' !== value) throw new InvalidArgumentError('invalid connection header'); - if ('close' === value) request.reset = true; - } else if (10 === key.length && 'keep-alive' === key.toLowerCase()) throw new InvalidArgumentError('invalid keep-alive header'); - else if (7 === key.length && 'upgrade' === key.toLowerCase()) throw new InvalidArgumentError('invalid upgrade header'); - else if (6 === key.length && 'expect' === key.toLowerCase()) throw new NotSupportedError('expect header not supported'); - else if (null === tokenRegExp.exec(key)) throw new InvalidArgumentError('invalid header key'); - else if (Array.isArray(val)) for(let i = 0; i < val.length; i++)if (skipAppend) if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}`; - else request.headers[key] = processHeaderValue(key, val[i], skipAppend); - else request.headers += processHeaderValue(key, val[i]); - else if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend); - else request.headers += processHeaderValue(key, val); - } - module.exports = Request; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js" (module) { - module.exports = { - kClose: Symbol('close'), - kDestroy: Symbol('destroy'), - kDispatch: Symbol('dispatch'), - kUrl: Symbol('url'), - kWriting: Symbol('writing'), - kResuming: Symbol('resuming'), - kQueue: Symbol('queue'), - kConnect: Symbol('connect'), - kConnecting: Symbol('connecting'), - kHeadersList: Symbol('headers list'), - kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'), - kKeepAliveMaxTimeout: Symbol('max keep alive timeout'), - kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'), - kKeepAliveTimeoutValue: Symbol('keep alive timeout'), - kKeepAlive: Symbol('keep alive'), - kHeadersTimeout: Symbol('headers timeout'), - kBodyTimeout: Symbol('body timeout'), - kServerName: Symbol('server name'), - kLocalAddress: Symbol('local address'), - kHost: Symbol('host'), - kNoRef: Symbol('no ref'), - kBodyUsed: Symbol('used'), - kRunning: Symbol('running'), - kBlocking: Symbol('blocking'), - kPending: Symbol('pending'), - kSize: Symbol('size'), - kBusy: Symbol('busy'), - kQueued: Symbol('queued'), - kFree: Symbol('free'), - kConnected: Symbol('connected'), - kClosed: Symbol('closed'), - kNeedDrain: Symbol('need drain'), - kReset: Symbol('reset'), - kDestroyed: Symbol.for('nodejs.stream.destroyed'), - kMaxHeadersSize: Symbol('max headers size'), - kRunningIdx: Symbol('running index'), - kPendingIdx: Symbol('pending index'), - kError: Symbol('error'), - kClients: Symbol('clients'), - kClient: Symbol('client'), - kParser: Symbol('parser'), - kOnDestroyed: Symbol('destroy callbacks'), - kPipelining: Symbol('pipelining'), - kSocket: Symbol('socket'), - kHostHeader: Symbol('host header'), - kConnector: Symbol('connector'), - kStrictContentLength: Symbol('strict content length'), - kMaxRedirections: Symbol('maxRedirections'), - kMaxRequests: Symbol('maxRequestsPerClient'), - kProxy: Symbol('proxy agent options'), - kCounter: Symbol('socket request counter'), - kInterceptors: Symbol('dispatch interceptors'), - kMaxResponseSize: Symbol('max response size'), - kHTTP2Session: Symbol('http2Session'), - kHTTP2SessionState: Symbol('http2Session state'), - kHTTP2BuildRequest: Symbol('http2 build request'), - kHTTP1BuildRequest: Symbol('http1 build request'), - kHTTP2CopyHeaders: Symbol('http2 copy headers'), - kHTTPConnVersion: Symbol('http connection version'), - kRetryHandlerDefaultRetry: Symbol('retry agent default retry'), - kConstruct: Symbol('constructable') - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const assert = __webpack_require__("assert"); - const { kDestroyed, kBodyUsed } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { IncomingMessage } = __webpack_require__("http"); - const stream = __webpack_require__("stream"); - const net = __webpack_require__("net"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { Blob: Blob1 } = __webpack_require__("buffer"); - const nodeUtil = __webpack_require__("util"); - const { stringify } = __webpack_require__("querystring"); - const { headerNameLowerCasedRecord } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/constants.js"); - const [nodeMajor, nodeMinor] = process.versions.node.split('.').map((v)=>Number(v)); - function nop() {} - function isStream(obj) { - return obj && 'object' == typeof obj && 'function' == typeof obj.pipe && 'function' == typeof obj.on; - } - function isBlobLike(object) { - return Blob1 && object instanceof Blob1 || object && 'object' == typeof object && ('function' == typeof object.stream || 'function' == typeof object.arrayBuffer) && /^(Blob|File)$/.test(object[Symbol.toStringTag]); - } - function buildURL(url, queryParams) { - if (url.includes('?') || url.includes('#')) throw new Error('Query params cannot be passed when url already contains "?" or "#".'); - const stringified = stringify(queryParams); - if (stringified) url += '?' + stringified; - return url; - } - function parseURL(url) { - if ('string' == typeof url) { - url = new URL(url); - if (!/^https?:/.test(url.origin || url.protocol)) throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.'); - return url; - } - if (!url || 'object' != typeof url) throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.'); - if (!/^https?:/.test(url.origin || url.protocol)) throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.'); - if (!(url instanceof URL)) { - if (null != url.port && '' !== url.port && !Number.isFinite(parseInt(url.port))) throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.'); - if (null != url.path && 'string' != typeof url.path) throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.'); - if (null != url.pathname && 'string' != typeof url.pathname) throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.'); - if (null != url.hostname && 'string' != typeof url.hostname) throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.'); - if (null != url.origin && 'string' != typeof url.origin) throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.'); - const port = null != url.port ? url.port : 'https:' === url.protocol ? 443 : 80; - let origin = null != url.origin ? url.origin : `${url.protocol}//${url.hostname}:${port}`; - let path = null != url.path ? url.path : `${url.pathname || ''}${url.search || ''}`; - if (origin.endsWith('/')) origin = origin.substring(0, origin.length - 1); - if (path && !path.startsWith('/')) path = `/${path}`; - url = new URL(origin + path); - } - return url; - } - function parseOrigin(url) { - url = parseURL(url); - if ('/' !== url.pathname || url.search || url.hash) throw new InvalidArgumentError('invalid url'); - return url; - } - function getHostname(host) { - if ('[' === host[0]) { - const idx = host.indexOf(']'); - assert(-1 !== idx); - return host.substring(1, idx); - } - const idx = host.indexOf(':'); - if (-1 === idx) return host; - return host.substring(0, idx); - } - function getServerName(host) { - if (!host) return null; - assert.strictEqual(typeof host, 'string'); - const servername = getHostname(host); - if (net.isIP(servername)) return ''; - return servername; - } - function deepClone(obj) { - return JSON.parse(JSON.stringify(obj)); - } - function isAsyncIterable(obj) { - return !!(null != obj && 'function' == typeof obj[Symbol.asyncIterator]); - } - function isIterable(obj) { - return !!(null != obj && ('function' == typeof obj[Symbol.iterator] || 'function' == typeof obj[Symbol.asyncIterator])); - } - function bodyLength(body) { - if (null == body) return 0; - if (isStream(body)) { - const state = body._readableState; - return state && false === state.objectMode && true === state.ended && Number.isFinite(state.length) ? state.length : null; - } - if (isBlobLike(body)) return null != body.size ? body.size : null; - if (isBuffer(body)) return body.byteLength; - return null; - } - function isDestroyed(stream) { - return !stream || !!(stream.destroyed || stream[kDestroyed]); - } - function isReadableAborted(stream) { - const state = stream && stream._readableState; - return isDestroyed(stream) && state && !state.endEmitted; - } - function destroy(stream, err) { - if (null == stream || !isStream(stream) || isDestroyed(stream)) return; - if ('function' == typeof stream.destroy) { - if (Object.getPrototypeOf(stream).constructor === IncomingMessage) stream.socket = null; - stream.destroy(err); - } else if (err) process.nextTick((stream, err)=>{ - stream.emit('error', err); - }, stream, err); - if (true !== stream.destroyed) stream[kDestroyed] = true; - } - const KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/; - function parseKeepAliveTimeout(val) { - const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR); - return m ? 1000 * parseInt(m[1], 10) : null; - } - function headerNameToString(value) { - return headerNameLowerCasedRecord[value] || value.toLowerCase(); - } - function parseHeaders(headers, obj = {}) { - if (!Array.isArray(headers)) return headers; - for(let i = 0; i < headers.length; i += 2){ - const key = headers[i].toString().toLowerCase(); - let val = obj[key]; - if (val) { - if (!Array.isArray(val)) { - val = [ - val - ]; - obj[key] = val; - } - val.push(headers[i + 1].toString('utf8')); - } else if (Array.isArray(headers[i + 1])) obj[key] = headers[i + 1].map((x)=>x.toString('utf8')); - else obj[key] = headers[i + 1].toString('utf8'); - } - if ('content-length' in obj && 'content-disposition' in obj) obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1'); - return obj; - } - function parseRawHeaders(headers) { - const ret = []; - let hasContentLength = false; - let contentDispositionIdx = -1; - for(let n = 0; n < headers.length; n += 2){ - const key = headers[n + 0].toString(); - const val = headers[n + 1].toString('utf8'); - if (14 === key.length && ('content-length' === key || 'content-length' === key.toLowerCase())) { - ret.push(key, val); - hasContentLength = true; - } else if (19 === key.length && ('content-disposition' === key || 'content-disposition' === key.toLowerCase())) contentDispositionIdx = ret.push(key, val) - 1; - else ret.push(key, val); - } - if (hasContentLength && -1 !== contentDispositionIdx) ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1'); - return ret; - } - function isBuffer(buffer) { - return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); - } - function validateHandler(handler, method, upgrade) { - if (!handler || 'object' != typeof handler) throw new InvalidArgumentError('handler must be an object'); - if ('function' != typeof handler.onConnect) throw new InvalidArgumentError('invalid onConnect method'); - if ('function' != typeof handler.onError) throw new InvalidArgumentError('invalid onError method'); - if ('function' != typeof handler.onBodySent && void 0 !== handler.onBodySent) throw new InvalidArgumentError('invalid onBodySent method'); - if (upgrade || 'CONNECT' === method) { - if ('function' != typeof handler.onUpgrade) throw new InvalidArgumentError('invalid onUpgrade method'); - } else { - if ('function' != typeof handler.onHeaders) throw new InvalidArgumentError('invalid onHeaders method'); - if ('function' != typeof handler.onData) throw new InvalidArgumentError('invalid onData method'); - if ('function' != typeof handler.onComplete) throw new InvalidArgumentError('invalid onComplete method'); - } - } - function isDisturbed(body) { - return !!(body && (stream.isDisturbed ? stream.isDisturbed(body) || body[kBodyUsed] : body[kBodyUsed] || body.readableDidRead || body._readableState && body._readableState.dataEmitted || isReadableAborted(body))); - } - function isErrored(body) { - return !!(body && (stream.isErrored ? stream.isErrored(body) : /state: 'errored'/.test(nodeUtil.inspect(body)))); - } - function isReadable(body) { - return !!(body && (stream.isReadable ? stream.isReadable(body) : /state: 'readable'/.test(nodeUtil.inspect(body)))); - } - function getSocketInfo(socket) { - return { - localAddress: socket.localAddress, - localPort: socket.localPort, - remoteAddress: socket.remoteAddress, - remotePort: socket.remotePort, - remoteFamily: socket.remoteFamily, - timeout: socket.timeout, - bytesWritten: socket.bytesWritten, - bytesRead: socket.bytesRead - }; - } - async function* convertIterableToBuffer(iterable) { - for await (const chunk of iterable)yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk); - } - let ReadableStream1; - function ReadableStreamFrom(iterable) { - if (!ReadableStream1) ReadableStream1 = __webpack_require__("stream/web").ReadableStream; - if (ReadableStream1.from) return ReadableStream1.from(convertIterableToBuffer(iterable)); - let iterator; - return new ReadableStream1({ - async start () { - iterator = iterable[Symbol.asyncIterator](); - }, - async pull (controller) { - const { done, value } = await iterator.next(); - if (done) queueMicrotask(()=>{ - controller.close(); - }); - else { - const buf = Buffer.isBuffer(value) ? value : Buffer.from(value); - controller.enqueue(new Uint8Array(buf)); - } - return controller.desiredSize > 0; - }, - async cancel (reason) { - await iterator.return(); - } - }, 0); - } - function isFormDataLike(object) { - return object && 'object' == typeof object && 'function' == typeof object.append && 'function' == typeof object.delete && 'function' == typeof object.get && 'function' == typeof object.getAll && 'function' == typeof object.has && 'function' == typeof object.set && 'FormData' === object[Symbol.toStringTag]; - } - function throwIfAborted(signal) { - if (!signal) return; - if ('function' == typeof signal.throwIfAborted) signal.throwIfAborted(); - else if (signal.aborted) { - const err = new Error('The operation was aborted'); - err.name = 'AbortError'; - throw err; - } - } - function addAbortListener(signal, listener) { - if ('addEventListener' in signal) { - signal.addEventListener('abort', listener, { - once: true - }); - return ()=>signal.removeEventListener('abort', listener); - } - signal.addListener('abort', listener); - return ()=>signal.removeListener('abort', listener); - } - const hasToWellFormed = !!String.prototype.toWellFormed; - function toUSVString(val) { - if (hasToWellFormed) return `${val}`.toWellFormed(); - if (nodeUtil.toUSVString) return nodeUtil.toUSVString(val); - return `${val}`; - } - function parseRangeHeader(range) { - if (null == range || '' === range) return { - start: 0, - end: null, - size: null - }; - const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null; - return m ? { - start: parseInt(m[1]), - end: m[2] ? parseInt(m[2]) : null, - size: m[3] ? parseInt(m[3]) : null - } : null; - } - const kEnumerableProperty = Object.create(null); - kEnumerableProperty.enumerable = true; - module.exports = { - kEnumerableProperty, - nop, - isDisturbed, - isErrored, - isReadable, - toUSVString, - isReadableAborted, - isBlobLike, - parseOrigin, - parseURL, - getServerName, - isStream, - isIterable, - isAsyncIterable, - isDestroyed, - headerNameToString, - parseRawHeaders, - parseHeaders, - parseKeepAliveTimeout, - destroy, - bodyLength, - deepClone, - ReadableStreamFrom, - isBuffer, - validateHandler, - getSocketInfo, - isFormDataLike, - buildURL, - throwIfAborted, - addAbortListener, - parseRangeHeader, - nodeMajor, - nodeMinor, - nodeHasAutoSelectFamily: nodeMajor > 18 || 18 === nodeMajor && nodeMinor >= 13, - safeHTTPMethods: [ - 'GET', - 'HEAD', - 'OPTIONS', - 'TRACE' - ] - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher-base.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const Dispatcher = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher.js"); - const { ClientDestroyedError, ClientClosedError, InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { kDestroy, kClose, kDispatch, kInterceptors } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const kDestroyed = Symbol('destroyed'); - const kClosed = Symbol('closed'); - const kOnDestroyed = Symbol('onDestroyed'); - const kOnClosed = Symbol('onClosed'); - const kInterceptedDispatch = Symbol('Intercepted Dispatch'); - class DispatcherBase extends Dispatcher { - constructor(){ - super(); - this[kDestroyed] = false; - this[kOnDestroyed] = null; - this[kClosed] = false; - this[kOnClosed] = []; - } - get destroyed() { - return this[kDestroyed]; - } - get closed() { - return this[kClosed]; - } - get interceptors() { - return this[kInterceptors]; - } - set interceptors(newInterceptors) { - if (newInterceptors) for(let i = newInterceptors.length - 1; i >= 0; i--){ - const interceptor = this[kInterceptors][i]; - if ('function' != typeof interceptor) throw new InvalidArgumentError('interceptor must be an function'); - } - this[kInterceptors] = newInterceptors; - } - close(callback) { - if (void 0 === callback) return new Promise((resolve, reject)=>{ - this.close((err, data)=>err ? reject(err) : resolve(data)); - }); - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - if (this[kDestroyed]) return void queueMicrotask(()=>callback(new ClientDestroyedError(), null)); - if (this[kClosed]) { - if (this[kOnClosed]) this[kOnClosed].push(callback); - else queueMicrotask(()=>callback(null, null)); - return; - } - this[kClosed] = true; - this[kOnClosed].push(callback); - const onClosed = ()=>{ - const callbacks = this[kOnClosed]; - this[kOnClosed] = null; - for(let i = 0; i < callbacks.length; i++)callbacks[i](null, null); - }; - this[kClose]().then(()=>this.destroy()).then(()=>{ - queueMicrotask(onClosed); - }); - } - destroy(err, callback) { - if ('function' == typeof err) { - callback = err; - err = null; - } - if (void 0 === callback) return new Promise((resolve, reject)=>{ - this.destroy(err, (err, data)=>err ? reject(err) : resolve(data)); - }); - if ('function' != typeof callback) throw new InvalidArgumentError('invalid callback'); - if (this[kDestroyed]) { - if (this[kOnDestroyed]) this[kOnDestroyed].push(callback); - else queueMicrotask(()=>callback(null, null)); - return; - } - if (!err) err = new ClientDestroyedError(); - this[kDestroyed] = true; - this[kOnDestroyed] = this[kOnDestroyed] || []; - this[kOnDestroyed].push(callback); - const onDestroyed = ()=>{ - const callbacks = this[kOnDestroyed]; - this[kOnDestroyed] = null; - for(let i = 0; i < callbacks.length; i++)callbacks[i](null, null); - }; - this[kDestroy](err).then(()=>{ - queueMicrotask(onDestroyed); - }); - } - [kInterceptedDispatch](opts, handler) { - if (!this[kInterceptors] || 0 === this[kInterceptors].length) { - this[kInterceptedDispatch] = this[kDispatch]; - return this[kDispatch](opts, handler); - } - let dispatch = this[kDispatch].bind(this); - for(let i = this[kInterceptors].length - 1; i >= 0; i--)dispatch = this[kInterceptors][i](dispatch); - this[kInterceptedDispatch] = dispatch; - return dispatch(opts, handler); - } - dispatch(opts, handler) { - if (!handler || 'object' != typeof handler) throw new InvalidArgumentError('handler must be an object'); - try { - if (!opts || 'object' != typeof opts) throw new InvalidArgumentError('opts must be an object.'); - if (this[kDestroyed] || this[kOnDestroyed]) throw new ClientDestroyedError(); - if (this[kClosed]) throw new ClientClosedError(); - return this[kInterceptedDispatch](opts, handler); - } catch (err) { - if ('function' != typeof handler.onError) throw new InvalidArgumentError('invalid onError method'); - handler.onError(err); - return false; - } - } - } - module.exports = DispatcherBase; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const EventEmitter = __webpack_require__("events"); - class Dispatcher extends EventEmitter { - dispatch() { - throw new Error('not implemented'); - } - close() { - throw new Error('not implemented'); - } - destroy() { - throw new Error('not implemented'); - } - } - module.exports = Dispatcher; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/body.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const Busboy = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/main.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { ReadableStreamFrom, isBlobLike, isReadableStreamLike, readableStreamClose, createDeferredPromise, fullyReadBody } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { FormData } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/formdata.js"); - const { kState } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { DOMException: DOMException1, structuredClone } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { Blob: Blob1, File: NativeFile } = __webpack_require__("buffer"); - const { kBodyUsed } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const assert = __webpack_require__("assert"); - const { isErrored } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { isUint8Array, isArrayBuffer } = __webpack_require__("util/types"); - const { File: UndiciFile } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/file.js"); - const { parseMIMEType, serializeAMimeType } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - let random; - try { - const crypto = __webpack_require__("node:crypto"); - random = (max)=>crypto.randomInt(0, max); - } catch { - random = (max)=>Math.floor(Math.random(max)); - } - let ReadableStream1 = globalThis.ReadableStream; - const File = NativeFile ?? UndiciFile; - const textEncoder = new TextEncoder(); - const textDecoder = new TextDecoder(); - function extractBody(object, keepalive = false) { - if (!ReadableStream1) ReadableStream1 = __webpack_require__("stream/web").ReadableStream; - let stream = null; - stream = object instanceof ReadableStream1 ? object : isBlobLike(object) ? object.stream() : new ReadableStream1({ - async pull (controller) { - controller.enqueue('string' == typeof source ? textEncoder.encode(source) : source); - queueMicrotask(()=>readableStreamClose(controller)); - }, - start () {}, - type: void 0 - }); - assert(isReadableStreamLike(stream)); - let action = null; - let source = null; - let length = null; - let type = null; - if ('string' == typeof object) { - source = object; - type = 'text/plain;charset=UTF-8'; - } else if (object instanceof URLSearchParams) { - source = object.toString(); - type = 'application/x-www-form-urlencoded;charset=UTF-8'; - } else if (isArrayBuffer(object)) source = new Uint8Array(object.slice()); - else if (ArrayBuffer.isView(object)) source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)); - else if (util.isFormDataLike(object)) { - const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}`; - const prefix = `--${boundary}\r\nContent-Disposition: form-data`; - /*! formdata-polyfill. MIT License. Jimmy Wärting */ const escape = (str)=>str.replace(/\n/g, '%0A').replace(/\r/g, '%0D').replace(/"/g, '%22'); - const normalizeLinefeeds = (value)=>value.replace(/\r?\n|\r/g, '\r\n'); - const blobParts = []; - const rn = new Uint8Array([ - 13, - 10 - ]); - length = 0; - let hasUnknownSizeValue = false; - for (const [name, value] of object)if ('string' == typeof value) { - const chunk = textEncoder.encode(prefix + `; name="${escape(normalizeLinefeeds(name))}"` + `\r\n\r\n${normalizeLinefeeds(value)}\r\n`); - blobParts.push(chunk); - length += chunk.byteLength; - } else { - const chunk = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + (value.name ? `; filename="${escape(value.name)}"` : '') + '\r\n' + `Content-Type: ${value.type || 'application/octet-stream'}\r\n\r\n`); - blobParts.push(chunk, value, rn); - if ('number' == typeof value.size) length += chunk.byteLength + value.size + rn.byteLength; - else hasUnknownSizeValue = true; - } - const chunk = textEncoder.encode(`--${boundary}--`); - blobParts.push(chunk); - length += chunk.byteLength; - if (hasUnknownSizeValue) length = null; - source = object; - action = async function*() { - for (const part of blobParts)if (part.stream) yield* part.stream(); - else yield part; - }; - type = 'multipart/form-data; boundary=' + boundary; - } else if (isBlobLike(object)) { - source = object; - length = object.size; - if (object.type) type = object.type; - } else if ('function' == typeof object[Symbol.asyncIterator]) { - if (keepalive) throw new TypeError('keepalive'); - if (util.isDisturbed(object) || object.locked) throw new TypeError('Response body object should not be disturbed or locked'); - stream = object instanceof ReadableStream1 ? object : ReadableStreamFrom(object); - } - if ('string' == typeof source || util.isBuffer(source)) length = Buffer.byteLength(source); - if (null != action) { - let iterator; - stream = new ReadableStream1({ - async start () { - iterator = action(object)[Symbol.asyncIterator](); - }, - async pull (controller) { - const { value, done } = await iterator.next(); - if (done) queueMicrotask(()=>{ - controller.close(); - }); - else if (!isErrored(stream)) controller.enqueue(new Uint8Array(value)); - return controller.desiredSize > 0; - }, - async cancel (reason) { - await iterator.return(); - }, - type: void 0 - }); - } - const body = { - stream, - source, - length - }; - return [ - body, - type - ]; - } - function safelyExtractBody(object, keepalive = false) { - if (!ReadableStream1) ReadableStream1 = __webpack_require__("stream/web").ReadableStream; - if (object instanceof ReadableStream1) { - assert(!util.isDisturbed(object), 'The body has already been consumed.'); - assert(!object.locked, 'The stream is locked.'); - } - return extractBody(object, keepalive); - } - function cloneBody(body) { - const [out1, out2] = body.stream.tee(); - const out2Clone = structuredClone(out2, { - transfer: [ - out2 - ] - }); - const [, finalClone] = out2Clone.tee(); - body.stream = out1; - return { - stream: finalClone, - length: body.length, - source: body.source - }; - } - async function* consumeBody(body) { - if (body) if (isUint8Array(body)) yield body; - else { - const stream = body.stream; - if (util.isDisturbed(stream)) throw new TypeError('The body has already been consumed.'); - if (stream.locked) throw new TypeError('The stream is locked.'); - stream[kBodyUsed] = true; - yield* stream; - } - } - function throwIfAborted(state) { - if (state.aborted) throw new DOMException1('The operation was aborted.', 'AbortError'); - } - function bodyMixinMethods(instance) { - const methods = { - blob () { - return specConsumeBody(this, (bytes)=>{ - let mimeType = bodyMimeType(this); - if ('failure' === mimeType) mimeType = ''; - else if (mimeType) mimeType = serializeAMimeType(mimeType); - return new Blob1([ - bytes - ], { - type: mimeType - }); - }, instance); - }, - arrayBuffer () { - return specConsumeBody(this, (bytes)=>new Uint8Array(bytes).buffer, instance); - }, - text () { - return specConsumeBody(this, utf8DecodeBytes, instance); - }, - json () { - return specConsumeBody(this, parseJSONFromBytes, instance); - }, - async formData () { - webidl.brandCheck(this, instance); - throwIfAborted(this[kState]); - const contentType = this.headers.get('Content-Type'); - if (/multipart\/form-data/.test(contentType)) { - const headers = {}; - for (const [key, value] of this.headers)headers[key.toLowerCase()] = value; - const responseFormData = new FormData(); - let busboy; - try { - busboy = new Busboy({ - headers, - preservePath: true - }); - } catch (err) { - throw new DOMException1(`${err}`, 'AbortError'); - } - busboy.on('field', (name, value)=>{ - responseFormData.append(name, value); - }); - busboy.on('file', (name, value, filename, encoding, mimeType)=>{ - const chunks = []; - if ('base64' === encoding || 'base64' === encoding.toLowerCase()) { - let base64chunk = ''; - value.on('data', (chunk)=>{ - base64chunk += chunk.toString().replace(/[\r\n]/gm, ''); - const end = base64chunk.length - base64chunk.length % 4; - chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64')); - base64chunk = base64chunk.slice(end); - }); - value.on('end', ()=>{ - chunks.push(Buffer.from(base64chunk, 'base64')); - responseFormData.append(name, new File(chunks, filename, { - type: mimeType - })); - }); - } else { - value.on('data', (chunk)=>{ - chunks.push(chunk); - }); - value.on('end', ()=>{ - responseFormData.append(name, new File(chunks, filename, { - type: mimeType - })); - }); - } - }); - const busboyResolve = new Promise((resolve, reject)=>{ - busboy.on('finish', resolve); - busboy.on('error', (err)=>reject(new TypeError(err))); - }); - if (null !== this.body) for await (const chunk of consumeBody(this[kState].body))busboy.write(chunk); - busboy.end(); - await busboyResolve; - return responseFormData; - } - if (/application\/x-www-form-urlencoded/.test(contentType)) { - let entries; - try { - let text = ''; - const streamingDecoder = new TextDecoder('utf-8', { - ignoreBOM: true - }); - for await (const chunk of consumeBody(this[kState].body)){ - if (!isUint8Array(chunk)) throw new TypeError('Expected Uint8Array chunk'); - text += streamingDecoder.decode(chunk, { - stream: true - }); - } - text += streamingDecoder.decode(); - entries = new URLSearchParams(text); - } catch (err) { - throw Object.assign(new TypeError(), { - cause: err - }); - } - const formData = new FormData(); - for (const [name, value] of entries)formData.append(name, value); - return formData; - } - await Promise.resolve(); - throwIfAborted(this[kState]); - throw webidl.errors.exception({ - header: `${instance.name}.formData`, - message: 'Could not parse content as FormData.' - }); - } - }; - return methods; - } - function mixinBody(prototype) { - Object.assign(prototype.prototype, bodyMixinMethods(prototype)); - } - async function specConsumeBody(object, convertBytesToJSValue, instance) { - webidl.brandCheck(object, instance); - throwIfAborted(object[kState]); - if (bodyUnusable(object[kState].body)) throw new TypeError('Body is unusable'); - const promise = createDeferredPromise(); - const errorSteps = (error)=>promise.reject(error); - const successSteps = (data)=>{ - try { - promise.resolve(convertBytesToJSValue(data)); - } catch (e) { - errorSteps(e); - } - }; - if (null == object[kState].body) { - successSteps(new Uint8Array()); - return promise.promise; - } - await fullyReadBody(object[kState].body, successSteps, errorSteps); - return promise.promise; - } - function bodyUnusable(body) { - return null != body && (body.stream.locked || util.isDisturbed(body.stream)); - } - function utf8DecodeBytes(buffer) { - if (0 === buffer.length) return ''; - if (0xEF === buffer[0] && 0xBB === buffer[1] && 0xBF === buffer[2]) buffer = buffer.subarray(3); - const output = textDecoder.decode(buffer); - return output; - } - function parseJSONFromBytes(bytes) { - return JSON.parse(utf8DecodeBytes(bytes)); - } - function bodyMimeType(object) { - const { headersList } = object[kState]; - const contentType = headersList.get('content-type'); - if (null === contentType) return 'failure'; - return parseMIMEType(contentType); - } - module.exports = { - extractBody, - safelyExtractBody, - cloneBody, - mixinBody - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { MessageChannel, receiveMessageOnPort } = __webpack_require__("worker_threads"); - const corsSafeListedMethods = [ - 'GET', - 'HEAD', - 'POST' - ]; - const corsSafeListedMethodsSet = new Set(corsSafeListedMethods); - const nullBodyStatus = [ - 101, - 204, - 205, - 304 - ]; - const redirectStatus = [ - 301, - 302, - 303, - 307, - 308 - ]; - const redirectStatusSet = new Set(redirectStatus); - const badPorts = [ - '1', - '7', - '9', - '11', - '13', - '15', - '17', - '19', - '20', - '21', - '22', - '23', - '25', - '37', - '42', - '43', - '53', - '69', - '77', - '79', - '87', - '95', - '101', - '102', - '103', - '104', - '109', - '110', - '111', - '113', - '115', - '117', - '119', - '123', - '135', - '137', - '139', - '143', - '161', - '179', - '389', - '427', - '465', - '512', - '513', - '514', - '515', - '526', - '530', - '531', - '532', - '540', - '548', - '554', - '556', - '563', - '587', - '601', - '636', - '989', - '990', - '993', - '995', - '1719', - '1720', - '1723', - '2049', - '3659', - '4045', - '5060', - '5061', - '6000', - '6566', - '6665', - '6666', - '6667', - '6668', - '6669', - '6697', - '10080' - ]; - const badPortsSet = new Set(badPorts); - const referrerPolicy = [ - '', - 'no-referrer', - 'no-referrer-when-downgrade', - 'same-origin', - 'origin', - 'strict-origin', - 'origin-when-cross-origin', - 'strict-origin-when-cross-origin', - 'unsafe-url' - ]; - const referrerPolicySet = new Set(referrerPolicy); - const requestRedirect = [ - 'follow', - 'manual', - 'error' - ]; - const safeMethods = [ - 'GET', - 'HEAD', - 'OPTIONS', - 'TRACE' - ]; - const safeMethodsSet = new Set(safeMethods); - const requestMode = [ - 'navigate', - 'same-origin', - 'no-cors', - 'cors' - ]; - const requestCredentials = [ - 'omit', - 'same-origin', - 'include' - ]; - const requestCache = [ - 'default', - 'no-store', - 'reload', - 'no-cache', - 'force-cache', - 'only-if-cached' - ]; - const requestBodyHeader = [ - 'content-encoding', - 'content-language', - 'content-location', - 'content-type', - 'content-length' - ]; - const requestDuplex = [ - 'half' - ]; - const forbiddenMethods = [ - 'CONNECT', - 'TRACE', - 'TRACK' - ]; - const forbiddenMethodsSet = new Set(forbiddenMethods); - const subresource = [ - 'audio', - 'audioworklet', - 'font', - 'image', - 'manifest', - 'paintworklet', - "script", - 'style', - 'track', - 'video', - 'xslt', - '' - ]; - const subresourceSet = new Set(subresource); - const DOMException1 = globalThis.DOMException ?? (()=>{ - try { - atob('~'); - } catch (err) { - return Object.getPrototypeOf(err).constructor; - } - })(); - let channel; - const structuredClone = globalThis.structuredClone ?? function(value, options) { - if (0 === arguments.length) throw new TypeError('missing argument'); - if (!channel) channel = new MessageChannel(); - channel.port1.unref(); - channel.port2.unref(); - channel.port1.postMessage(value, options?.transfer); - return receiveMessageOnPort(channel.port2).message; - }; - module.exports = { - DOMException: DOMException1, - structuredClone, - subresource, - forbiddenMethods, - requestBodyHeader, - referrerPolicy, - requestRedirect, - requestMode, - requestCredentials, - requestCache, - redirectStatus, - corsSafeListedMethods, - nullBodyStatus, - safeMethods, - badPorts, - requestDuplex, - subresourceSet, - badPortsSet, - redirectStatusSet, - corsSafeListedMethodsSet, - safeMethodsSet, - forbiddenMethodsSet, - referrerPolicySet - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js" (module, __unused_rspack_exports, __webpack_require__) { - const assert = __webpack_require__("assert"); - const { atob: atob1 } = __webpack_require__("buffer"); - const { isomorphicDecode } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const encoder = new TextEncoder(); - const HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/; - const HTTP_WHITESPACE_REGEX = /(\u000A|\u000D|\u0009|\u0020)/; - const HTTP_QUOTED_STRING_TOKENS = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/; - function dataURLProcessor(dataURL) { - assert('data:' === dataURL.protocol); - let input = URLSerializer(dataURL, true); - input = input.slice(5); - const position = { - position: 0 - }; - let mimeType = collectASequenceOfCodePointsFast(',', input, position); - const mimeTypeLength = mimeType.length; - mimeType = removeASCIIWhitespace(mimeType, true, true); - if (position.position >= input.length) return 'failure'; - position.position++; - const encodedBody = input.slice(mimeTypeLength + 1); - let body = stringPercentDecode(encodedBody); - if (/;(\u0020){0,}base64$/i.test(mimeType)) { - const stringBody = isomorphicDecode(body); - body = forgivingBase64(stringBody); - if ('failure' === body) return 'failure'; - mimeType = mimeType.slice(0, -6); - mimeType = mimeType.replace(/(\u0020)+$/, ''); - mimeType = mimeType.slice(0, -1); - } - if (mimeType.startsWith(';')) mimeType = 'text/plain' + mimeType; - let mimeTypeRecord = parseMIMEType(mimeType); - if ('failure' === mimeTypeRecord) mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII'); - return { - mimeType: mimeTypeRecord, - body - }; - } - function URLSerializer(url, excludeFragment = false) { - if (!excludeFragment) return url.href; - const href = url.href; - const hashLength = url.hash.length; - return 0 === hashLength ? href : href.substring(0, href.length - hashLength); - } - function collectASequenceOfCodePoints(condition, input, position) { - let result = ''; - while(position.position < input.length && condition(input[position.position])){ - result += input[position.position]; - position.position++; - } - return result; - } - function collectASequenceOfCodePointsFast(char, input, position) { - const idx = input.indexOf(char, position.position); - const start = position.position; - if (-1 === idx) { - position.position = input.length; - return input.slice(start); - } - position.position = idx; - return input.slice(start, position.position); - } - function stringPercentDecode(input) { - const bytes = encoder.encode(input); - return percentDecode(bytes); - } - function percentDecode(input) { - const output = []; - for(let i = 0; i < input.length; i++){ - const byte = input[i]; - if (0x25 !== byte) output.push(byte); - else if (0x25 !== byte || /^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))) { - const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2]); - const bytePoint = Number.parseInt(nextTwoBytes, 16); - output.push(bytePoint); - i += 2; - } else output.push(0x25); - } - return Uint8Array.from(output); - } - function parseMIMEType(input) { - input = removeHTTPWhitespace(input, true, true); - const position = { - position: 0 - }; - const type = collectASequenceOfCodePointsFast('/', input, position); - if (0 === type.length || !HTTP_TOKEN_CODEPOINTS.test(type)) return 'failure'; - if (position.position > input.length) return 'failure'; - position.position++; - let subtype = collectASequenceOfCodePointsFast(';', input, position); - subtype = removeHTTPWhitespace(subtype, false, true); - if (0 === subtype.length || !HTTP_TOKEN_CODEPOINTS.test(subtype)) return 'failure'; - const typeLowercase = type.toLowerCase(); - const subtypeLowercase = subtype.toLowerCase(); - const mimeType = { - type: typeLowercase, - subtype: subtypeLowercase, - parameters: new Map(), - essence: `${typeLowercase}/${subtypeLowercase}` - }; - while(position.position < input.length){ - position.position++; - collectASequenceOfCodePoints((char)=>HTTP_WHITESPACE_REGEX.test(char), input, position); - let parameterName = collectASequenceOfCodePoints((char)=>';' !== char && '=' !== char, input, position); - parameterName = parameterName.toLowerCase(); - if (position.position < input.length) { - if (';' === input[position.position]) continue; - position.position++; - } - if (position.position > input.length) break; - let parameterValue = null; - if ('"' === input[position.position]) { - parameterValue = collectAnHTTPQuotedString(input, position, true); - collectASequenceOfCodePointsFast(';', input, position); - } else { - parameterValue = collectASequenceOfCodePointsFast(';', input, position); - parameterValue = removeHTTPWhitespace(parameterValue, false, true); - if (0 === parameterValue.length) continue; - } - if (0 !== parameterName.length && HTTP_TOKEN_CODEPOINTS.test(parameterName) && (0 === parameterValue.length || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && !mimeType.parameters.has(parameterName)) mimeType.parameters.set(parameterName, parameterValue); - } - return mimeType; - } - function forgivingBase64(data) { - data = data.replace(/[\u0009\u000A\u000C\u000D\u0020]/g, ''); - if (data.length % 4 === 0) data = data.replace(/=?=$/, ''); - if (data.length % 4 === 1) return 'failure'; - if (/[^+/0-9A-Za-z]/.test(data)) return 'failure'; - const binary = atob1(data); - const bytes = new Uint8Array(binary.length); - for(let byte = 0; byte < binary.length; byte++)bytes[byte] = binary.charCodeAt(byte); - return bytes; - } - function collectAnHTTPQuotedString(input, position, extractValue) { - const positionStart = position.position; - let value = ''; - assert('"' === input[position.position]); - position.position++; - while(true){ - value += collectASequenceOfCodePoints((char)=>'"' !== char && '\\' !== char, input, position); - if (position.position >= input.length) break; - const quoteOrBackslash = input[position.position]; - position.position++; - if ('\\' === quoteOrBackslash) { - if (position.position >= input.length) { - value += '\\'; - break; - } - value += input[position.position]; - position.position++; - } else { - assert('"' === quoteOrBackslash); - break; - } - } - if (extractValue) return value; - return input.slice(positionStart, position.position); - } - function serializeAMimeType(mimeType) { - assert('failure' !== mimeType); - const { parameters, essence } = mimeType; - let serialization = essence; - for (let [name, value] of parameters.entries()){ - serialization += ';'; - serialization += name; - serialization += '='; - if (!HTTP_TOKEN_CODEPOINTS.test(value)) { - value = value.replace(/(\\|")/g, '\\$1'); - value = '"' + value; - value += '"'; - } - serialization += value; - } - return serialization; - } - function isHTTPWhiteSpace(char) { - return '\r' === char || '\n' === char || '\t' === char || ' ' === char; - } - function removeHTTPWhitespace(str, leading = true, trailing = true) { - let lead = 0; - let trail = str.length - 1; - if (leading) for(; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++); - if (trailing) for(; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--); - return str.slice(lead, trail + 1); - } - function isASCIIWhitespace(char) { - return '\r' === char || '\n' === char || '\t' === char || '\f' === char || ' ' === char; - } - function removeASCIIWhitespace(str, leading = true, trailing = true) { - let lead = 0; - let trail = str.length - 1; - if (leading) for(; lead < str.length && isASCIIWhitespace(str[lead]); lead++); - if (trailing) for(; trail > 0 && isASCIIWhitespace(str[trail]); trail--); - return str.slice(lead, trail + 1); - } - module.exports = { - dataURLProcessor, - URLSerializer, - collectASequenceOfCodePoints, - collectASequenceOfCodePointsFast, - stringPercentDecode, - parseMIMEType, - collectAnHTTPQuotedString, - serializeAMimeType - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/file.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Blob: Blob1, File: NativeFile } = __webpack_require__("buffer"); - const { types } = __webpack_require__("util"); - const { kState } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { isBlobLike } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { parseMIMEType, serializeAMimeType } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const encoder = new TextEncoder(); - class File extends Blob1 { - constructor(fileBits, fileName, options = {}){ - webidl.argumentLengthCheck(arguments, 2, { - header: 'File constructor' - }); - fileBits = webidl.converters['sequence'](fileBits); - fileName = webidl.converters.USVString(fileName); - options = webidl.converters.FilePropertyBag(options); - const n = fileName; - let t = options.type; - let d; - substep: { - if (t) { - t = parseMIMEType(t); - if ('failure' === t) { - t = ''; - break substep; - } - t = serializeAMimeType(t).toLowerCase(); - } - d = options.lastModified; - } - super(processBlobParts(fileBits, options), { - type: t - }); - this[kState] = { - name: n, - lastModified: d, - type: t - }; - } - get name() { - webidl.brandCheck(this, File); - return this[kState].name; - } - get lastModified() { - webidl.brandCheck(this, File); - return this[kState].lastModified; - } - get type() { - webidl.brandCheck(this, File); - return this[kState].type; - } - } - class FileLike { - constructor(blobLike, fileName, options = {}){ - const n = fileName; - const t = options.type; - const d = options.lastModified ?? Date.now(); - this[kState] = { - blobLike, - name: n, - type: t, - lastModified: d - }; - } - stream(...args) { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.stream(...args); - } - arrayBuffer(...args) { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.arrayBuffer(...args); - } - slice(...args) { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.slice(...args); - } - text(...args) { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.text(...args); - } - get size() { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.size; - } - get type() { - webidl.brandCheck(this, FileLike); - return this[kState].blobLike.type; - } - get name() { - webidl.brandCheck(this, FileLike); - return this[kState].name; - } - get lastModified() { - webidl.brandCheck(this, FileLike); - return this[kState].lastModified; - } - get [Symbol.toStringTag]() { - return 'File'; - } - } - Object.defineProperties(File.prototype, { - [Symbol.toStringTag]: { - value: 'File', - configurable: true - }, - name: kEnumerableProperty, - lastModified: kEnumerableProperty - }); - webidl.converters.Blob = webidl.interfaceConverter(Blob1); - webidl.converters.BlobPart = function(V, opts) { - if ('Object' === webidl.util.Type(V)) { - if (isBlobLike(V)) return webidl.converters.Blob(V, { - strict: false - }); - if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) return webidl.converters.BufferSource(V, opts); - } - return webidl.converters.USVString(V, opts); - }; - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.BlobPart); - webidl.converters.FilePropertyBag = webidl.dictionaryConverter([ - { - key: 'lastModified', - converter: webidl.converters['long long'], - get defaultValue () { - return Date.now(); - } - }, - { - key: 'type', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'endings', - converter: (value)=>{ - value = webidl.converters.DOMString(value); - value = value.toLowerCase(); - if ('native' !== value) value = 'transparent'; - return value; - }, - defaultValue: 'transparent' - } - ]); - function processBlobParts(parts, options) { - const bytes = []; - for (const element of parts)if ('string' == typeof element) { - let s = element; - if ('native' === options.endings) s = convertLineEndingsNative(s); - bytes.push(encoder.encode(s)); - } else if (types.isAnyArrayBuffer(element) || types.isTypedArray(element)) if (element.buffer) bytes.push(new Uint8Array(element.buffer, element.byteOffset, element.byteLength)); - else bytes.push(new Uint8Array(element)); - else if (isBlobLike(element)) bytes.push(element); - return bytes; - } - function convertLineEndingsNative(s) { - let nativeLineEnding = '\n'; - if ('win32' === process.platform) nativeLineEnding = '\r\n'; - return s.replace(/\r?\n/g, nativeLineEnding); - } - function isFileLike(object) { - return NativeFile && object instanceof NativeFile || object instanceof File || object && ('function' == typeof object.stream || 'function' == typeof object.arrayBuffer) && 'File' === object[Symbol.toStringTag]; - } - module.exports = { - File, - FileLike, - isFileLike - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/formdata.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { isBlobLike, toUSVString, makeIterator } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { kState } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { File: UndiciFile, FileLike, isFileLike } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/file.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { Blob: Blob1, File: NativeFile } = __webpack_require__("buffer"); - const File = NativeFile ?? UndiciFile; - class FormData { - constructor(form){ - if (void 0 !== form) throw webidl.errors.conversionFailed({ - prefix: 'FormData constructor', - argument: 'Argument 1', - types: [ - 'undefined' - ] - }); - this[kState] = []; - } - append(name, value, filename) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 2, { - header: 'FormData.append' - }); - if (3 === arguments.length && !isBlobLike(value)) throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'"); - name = webidl.converters.USVString(name); - value = isBlobLike(value) ? webidl.converters.Blob(value, { - strict: false - }) : webidl.converters.USVString(value); - filename = 3 === arguments.length ? webidl.converters.USVString(filename) : void 0; - const entry = makeEntry(name, value, filename); - this[kState].push(entry); - } - delete(name) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FormData.delete' - }); - name = webidl.converters.USVString(name); - this[kState] = this[kState].filter((entry)=>entry.name !== name); - } - get(name) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FormData.get' - }); - name = webidl.converters.USVString(name); - const idx = this[kState].findIndex((entry)=>entry.name === name); - if (-1 === idx) return null; - return this[kState][idx].value; - } - getAll(name) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FormData.getAll' - }); - name = webidl.converters.USVString(name); - return this[kState].filter((entry)=>entry.name === name).map((entry)=>entry.value); - } - has(name) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FormData.has' - }); - name = webidl.converters.USVString(name); - return -1 !== this[kState].findIndex((entry)=>entry.name === name); - } - set(name, value, filename) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 2, { - header: 'FormData.set' - }); - if (3 === arguments.length && !isBlobLike(value)) throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'"); - name = webidl.converters.USVString(name); - value = isBlobLike(value) ? webidl.converters.Blob(value, { - strict: false - }) : webidl.converters.USVString(value); - filename = 3 === arguments.length ? toUSVString(filename) : void 0; - const entry = makeEntry(name, value, filename); - const idx = this[kState].findIndex((entry)=>entry.name === name); - if (-1 !== idx) this[kState] = [ - ...this[kState].slice(0, idx), - entry, - ...this[kState].slice(idx + 1).filter((entry)=>entry.name !== name) - ]; - else this[kState].push(entry); - } - entries() { - webidl.brandCheck(this, FormData); - return makeIterator(()=>this[kState].map((pair)=>[ - pair.name, - pair.value - ]), 'FormData', 'key+value'); - } - keys() { - webidl.brandCheck(this, FormData); - return makeIterator(()=>this[kState].map((pair)=>[ - pair.name, - pair.value - ]), 'FormData', 'key'); - } - values() { - webidl.brandCheck(this, FormData); - return makeIterator(()=>this[kState].map((pair)=>[ - pair.name, - pair.value - ]), 'FormData', 'value'); - } - forEach(callbackFn, thisArg = globalThis) { - webidl.brandCheck(this, FormData); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FormData.forEach' - }); - if ('function' != typeof callbackFn) throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'."); - for (const [key, value] of this)callbackFn.apply(thisArg, [ - value, - key, - this - ]); - } - } - FormData.prototype[Symbol.iterator] = FormData.prototype.entries; - Object.defineProperties(FormData.prototype, { - [Symbol.toStringTag]: { - value: 'FormData', - configurable: true - } - }); - function makeEntry(name, value, filename) { - name = Buffer.from(name).toString('utf8'); - if ('string' == typeof value) value = Buffer.from(value).toString('utf8'); - else { - if (!isFileLike(value)) value = value instanceof Blob1 ? new File([ - value - ], 'blob', { - type: value.type - }) : new FileLike(value, 'blob', { - type: value.type - }); - if (void 0 !== filename) { - const options = { - type: value.type, - lastModified: value.lastModified - }; - value = NativeFile && value instanceof NativeFile || value instanceof UndiciFile ? new File([ - value - ], filename, options) : new FileLike(value, filename, options); - } - } - return { - name, - value - }; - } - module.exports = { - FormData - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js" (module) { - "use strict"; - const globalOrigin = Symbol.for('undici.globalOrigin.1'); - function getGlobalOrigin() { - return globalThis[globalOrigin]; - } - function setGlobalOrigin(newOrigin) { - if (void 0 === newOrigin) return void Object.defineProperty(globalThis, globalOrigin, { - value: void 0, - writable: true, - enumerable: false, - configurable: false - }); - const parsedURL = new URL(newOrigin); - if ('http:' !== parsedURL.protocol && 'https:' !== parsedURL.protocol) throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`); - Object.defineProperty(globalThis, globalOrigin, { - value: parsedURL, - writable: true, - enumerable: false, - configurable: false - }); - } - module.exports = { - getGlobalOrigin, - setGlobalOrigin - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kHeadersList, kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { kGuard } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { makeIterator, isValidHeaderName, isValidHeaderValue } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const util = __webpack_require__("util"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const assert = __webpack_require__("assert"); - const kHeadersMap = Symbol('headers map'); - const kHeadersSortedMap = Symbol('headers map sorted'); - function isHTTPWhiteSpaceCharCode(code) { - return 0x00a === code || 0x00d === code || 0x009 === code || 0x020 === code; - } - function headerValueNormalize(potentialValue) { - let i = 0; - let j = potentialValue.length; - while(j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1)))--j; - while(j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i)))++i; - return 0 === i && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j); - } - function fill(headers, object) { - if (Array.isArray(object)) for(let i = 0; i < object.length; ++i){ - const header = object[i]; - if (2 !== header.length) throw webidl.errors.exception({ - header: 'Headers constructor', - message: `expected name/value pair to be length 2, found ${header.length}.` - }); - appendHeader(headers, header[0], header[1]); - } - else if ('object' == typeof object && null !== object) { - const keys = Object.keys(object); - for(let i = 0; i < keys.length; ++i)appendHeader(headers, keys[i], object[keys[i]]); - } else throw webidl.errors.conversionFailed({ - prefix: 'Headers constructor', - argument: 'Argument 1', - types: [ - 'sequence>', - 'record' - ] - }); - } - function appendHeader(headers, name, value) { - value = headerValueNormalize(value); - if (isValidHeaderName(name)) { - if (!isValidHeaderValue(value)) throw webidl.errors.invalidArgument({ - prefix: 'Headers.append', - value, - type: 'header value' - }); - } else throw webidl.errors.invalidArgument({ - prefix: 'Headers.append', - value: name, - type: 'header name' - }); - if ('immutable' === headers[kGuard]) throw new TypeError('immutable'); - headers[kGuard]; - return headers[kHeadersList].append(name, value); - } - class HeadersList { - cookies = null; - constructor(init){ - if (init instanceof HeadersList) { - this[kHeadersMap] = new Map(init[kHeadersMap]); - this[kHeadersSortedMap] = init[kHeadersSortedMap]; - this.cookies = null === init.cookies ? null : [ - ...init.cookies - ]; - } else { - this[kHeadersMap] = new Map(init); - this[kHeadersSortedMap] = null; - } - } - contains(name) { - name = name.toLowerCase(); - return this[kHeadersMap].has(name); - } - clear() { - this[kHeadersMap].clear(); - this[kHeadersSortedMap] = null; - this.cookies = null; - } - append(name, value) { - this[kHeadersSortedMap] = null; - const lowercaseName = name.toLowerCase(); - const exists = this[kHeadersMap].get(lowercaseName); - if (exists) { - const delimiter = 'cookie' === lowercaseName ? '; ' : ', '; - this[kHeadersMap].set(lowercaseName, { - name: exists.name, - value: `${exists.value}${delimiter}${value}` - }); - } else this[kHeadersMap].set(lowercaseName, { - name, - value - }); - if ('set-cookie' === lowercaseName) { - this.cookies ??= []; - this.cookies.push(value); - } - } - set(name, value) { - this[kHeadersSortedMap] = null; - const lowercaseName = name.toLowerCase(); - if ('set-cookie' === lowercaseName) this.cookies = [ - value - ]; - this[kHeadersMap].set(lowercaseName, { - name, - value - }); - } - delete(name) { - this[kHeadersSortedMap] = null; - name = name.toLowerCase(); - if ('set-cookie' === name) this.cookies = null; - this[kHeadersMap].delete(name); - } - get(name) { - const value = this[kHeadersMap].get(name.toLowerCase()); - return void 0 === value ? null : value.value; - } - *[Symbol.iterator]() { - for (const [name, { value }] of this[kHeadersMap])yield [ - name, - value - ]; - } - get entries() { - const headers = {}; - if (this[kHeadersMap].size) for (const { name, value } of this[kHeadersMap].values())headers[name] = value; - return headers; - } - } - class Headers { - constructor(init){ - if (init === kConstruct) return; - this[kHeadersList] = new HeadersList(); - this[kGuard] = 'none'; - if (void 0 !== init) { - init = webidl.converters.HeadersInit(init); - fill(this, init); - } - } - append(name, value) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 2, { - header: 'Headers.append' - }); - name = webidl.converters.ByteString(name); - value = webidl.converters.ByteString(value); - return appendHeader(this, name, value); - } - delete(name) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Headers.delete' - }); - name = webidl.converters.ByteString(name); - if (!isValidHeaderName(name)) throw webidl.errors.invalidArgument({ - prefix: 'Headers.delete', - value: name, - type: 'header name' - }); - if ('immutable' === this[kGuard]) throw new TypeError('immutable'); - this[kGuard]; - if (!this[kHeadersList].contains(name)) return; - this[kHeadersList].delete(name); - } - get(name) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Headers.get' - }); - name = webidl.converters.ByteString(name); - if (!isValidHeaderName(name)) throw webidl.errors.invalidArgument({ - prefix: 'Headers.get', - value: name, - type: 'header name' - }); - return this[kHeadersList].get(name); - } - has(name) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Headers.has' - }); - name = webidl.converters.ByteString(name); - if (!isValidHeaderName(name)) throw webidl.errors.invalidArgument({ - prefix: 'Headers.has', - value: name, - type: 'header name' - }); - return this[kHeadersList].contains(name); - } - set(name, value) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 2, { - header: 'Headers.set' - }); - name = webidl.converters.ByteString(name); - value = webidl.converters.ByteString(value); - value = headerValueNormalize(value); - if (isValidHeaderName(name)) { - if (!isValidHeaderValue(value)) throw webidl.errors.invalidArgument({ - prefix: 'Headers.set', - value, - type: 'header value' - }); - } else throw webidl.errors.invalidArgument({ - prefix: 'Headers.set', - value: name, - type: 'header name' - }); - if ('immutable' === this[kGuard]) throw new TypeError('immutable'); - this[kGuard]; - this[kHeadersList].set(name, value); - } - getSetCookie() { - webidl.brandCheck(this, Headers); - const list = this[kHeadersList].cookies; - if (list) return [ - ...list - ]; - return []; - } - get [kHeadersSortedMap]() { - if (this[kHeadersList][kHeadersSortedMap]) return this[kHeadersList][kHeadersSortedMap]; - const headers = []; - const names = [ - ...this[kHeadersList] - ].sort((a, b)=>a[0] < b[0] ? -1 : 1); - const cookies = this[kHeadersList].cookies; - for(let i = 0; i < names.length; ++i){ - const [name, value] = names[i]; - if ('set-cookie' === name) for(let j = 0; j < cookies.length; ++j)headers.push([ - name, - cookies[j] - ]); - else { - assert(null !== value); - headers.push([ - name, - value - ]); - } - } - this[kHeadersList][kHeadersSortedMap] = headers; - return headers; - } - keys() { - webidl.brandCheck(this, Headers); - if ('immutable' === this[kGuard]) { - const value = this[kHeadersSortedMap]; - return makeIterator(()=>value, 'Headers', 'key'); - } - return makeIterator(()=>[ - ...this[kHeadersSortedMap].values() - ], 'Headers', 'key'); - } - values() { - webidl.brandCheck(this, Headers); - if ('immutable' === this[kGuard]) { - const value = this[kHeadersSortedMap]; - return makeIterator(()=>value, 'Headers', 'value'); - } - return makeIterator(()=>[ - ...this[kHeadersSortedMap].values() - ], 'Headers', 'value'); - } - entries() { - webidl.brandCheck(this, Headers); - if ('immutable' === this[kGuard]) { - const value = this[kHeadersSortedMap]; - return makeIterator(()=>value, 'Headers', 'key+value'); - } - return makeIterator(()=>[ - ...this[kHeadersSortedMap].values() - ], 'Headers', 'key+value'); - } - forEach(callbackFn, thisArg = globalThis) { - webidl.brandCheck(this, Headers); - webidl.argumentLengthCheck(arguments, 1, { - header: 'Headers.forEach' - }); - if ('function' != typeof callbackFn) throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'."); - for (const [key, value] of this)callbackFn.apply(thisArg, [ - value, - key, - this - ]); - } - [Symbol.for('nodejs.util.inspect.custom')]() { - webidl.brandCheck(this, Headers); - return this[kHeadersList]; - } - } - Headers.prototype[Symbol.iterator] = Headers.prototype.entries; - Object.defineProperties(Headers.prototype, { - append: kEnumerableProperty, - delete: kEnumerableProperty, - get: kEnumerableProperty, - has: kEnumerableProperty, - set: kEnumerableProperty, - getSetCookie: kEnumerableProperty, - keys: kEnumerableProperty, - values: kEnumerableProperty, - entries: kEnumerableProperty, - forEach: kEnumerableProperty, - [Symbol.iterator]: { - enumerable: false - }, - [Symbol.toStringTag]: { - value: 'Headers', - configurable: true - }, - [util.inspect.custom]: { - enumerable: false - } - }); - webidl.converters.HeadersInit = function(V) { - if ('Object' === webidl.util.Type(V)) { - if (V[Symbol.iterator]) return webidl.converters['sequence>'](V); - return webidl.converters['record'](V); - } - throw webidl.errors.conversionFailed({ - prefix: 'Headers constructor', - argument: 'Argument 1', - types: [ - 'sequence>', - 'record' - ] - }); - }; - module.exports = { - fill, - Headers, - HeadersList - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/index.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Response, makeNetworkError, makeAppropriateNetworkError, filterResponse, makeResponse } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/response.js"); - const { Headers } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js"); - const { Request, makeRequest } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/request.js"); - const zlib = __webpack_require__("zlib"); - const { bytesMatch, makePolicyContainer, clonePolicyContainer, requestBadPort, TAOCheck, appendRequestOriginHeader, responseLocationURL, requestCurrentURL, setRequestReferrerPolicyOnRedirect, tryUpgradeRequestToAPotentiallyTrustworthyURL, createOpaqueTimingInfo, appendFetchMetadata, corsCheck, crossOriginResourcePolicyCheck, determineRequestsReferrer, coarsenedSharedCurrentTime, createDeferredPromise, isBlobLike, sameOrigin, isCancelled, isAborted, isErrorLike, fullyReadBody, readableStreamClose, isomorphicEncode, urlIsLocal, urlIsHttpHttpsScheme, urlHasHttpsScheme } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { kState, kHeaders, kGuard, kRealm } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const assert = __webpack_require__("assert"); - const { safelyExtractBody } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/body.js"); - const { redirectStatusSet, nullBodyStatus, safeMethodsSet, requestBodyHeader, subresourceSet, DOMException: DOMException1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { kHeadersList } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const EE = __webpack_require__("events"); - const { Readable, pipeline } = __webpack_require__("stream"); - const { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { dataURLProcessor, serializeAMimeType } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { TransformStream: TransformStream1 } = __webpack_require__("stream/web"); - const { getGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { STATUS_CODES } = __webpack_require__("http"); - const GET_OR_HEAD = [ - 'GET', - 'HEAD' - ]; - let resolveObjectURL; - let ReadableStream1 = globalThis.ReadableStream; - class Fetch extends EE { - constructor(dispatcher){ - super(); - this.dispatcher = dispatcher; - this.connection = null; - this.dump = false; - this.state = 'ongoing'; - this.setMaxListeners(21); - } - terminate(reason) { - if ('ongoing' !== this.state) return; - this.state = 'terminated'; - this.connection?.destroy(reason); - this.emit('terminated', reason); - } - abort(error) { - if ('ongoing' !== this.state) return; - this.state = 'aborted'; - if (!error) error = new DOMException1('The operation was aborted.', 'AbortError'); - this.serializedAbortReason = error; - this.connection?.destroy(error); - this.emit('terminated', error); - } - } - function fetch(input, init = {}) { - webidl.argumentLengthCheck(arguments, 1, { - header: 'globalThis.fetch' - }); - const p = createDeferredPromise(); - let requestObject; - try { - requestObject = new Request(input, init); - } catch (e) { - p.reject(e); - return p.promise; - } - const request = requestObject[kState]; - if (requestObject.signal.aborted) { - abortFetch(p, request, null, requestObject.signal.reason); - return p.promise; - } - const globalObject = request.client.globalObject; - if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') request.serviceWorkers = 'none'; - let responseObject = null; - const relevantRealm = null; - let locallyAborted = false; - let controller = null; - addAbortListener(requestObject.signal, ()=>{ - locallyAborted = true; - assert(null != controller); - controller.abort(requestObject.signal.reason); - abortFetch(p, request, responseObject, requestObject.signal.reason); - }); - const handleFetchDone = (response)=>finalizeAndReportTiming(response, 'fetch'); - const processResponse = (response)=>{ - if (locallyAborted) return Promise.resolve(); - if (response.aborted) { - abortFetch(p, request, responseObject, controller.serializedAbortReason); - return Promise.resolve(); - } - if ('error' === response.type) { - p.reject(Object.assign(new TypeError('fetch failed'), { - cause: response.error - })); - return Promise.resolve(); - } - responseObject = new Response(); - responseObject[kState] = response; - responseObject[kRealm] = relevantRealm; - responseObject[kHeaders][kHeadersList] = response.headersList; - responseObject[kHeaders][kGuard] = 'immutable'; - responseObject[kHeaders][kRealm] = relevantRealm; - p.resolve(responseObject); - }; - controller = fetching({ - request, - processResponseEndOfBody: handleFetchDone, - processResponse, - dispatcher: init.dispatcher ?? getGlobalDispatcher() - }); - return p.promise; - } - function finalizeAndReportTiming(response, initiatorType = 'other') { - if ('error' === response.type && response.aborted) return; - if (!response.urlList?.length) return; - const originalURL = response.urlList[0]; - let timingInfo = response.timingInfo; - let cacheState = response.cacheState; - if (!urlIsHttpHttpsScheme(originalURL)) return; - if (null === timingInfo) return; - if (!response.timingAllowPassed) { - timingInfo = createOpaqueTimingInfo({ - startTime: timingInfo.startTime - }); - cacheState = ''; - } - timingInfo.endTime = coarsenedSharedCurrentTime(); - response.timingInfo = timingInfo; - markResourceTiming(timingInfo, originalURL, initiatorType, globalThis, cacheState); - } - function markResourceTiming(timingInfo, originalURL, initiatorType, globalThis1, cacheState) { - if (nodeMajor > 18 || 18 === nodeMajor && nodeMinor >= 2) performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis1, cacheState); - } - function abortFetch(p, request, responseObject, error) { - if (!error) error = new DOMException1('The operation was aborted.', 'AbortError'); - p.reject(error); - if (null != request.body && isReadable(request.body?.stream)) request.body.stream.cancel(error).catch((err)=>{ - if ('ERR_INVALID_STATE' === err.code) return; - throw err; - }); - if (null == responseObject) return; - const response = responseObject[kState]; - if (null != response.body && isReadable(response.body?.stream)) response.body.stream.cancel(error).catch((err)=>{ - if ('ERR_INVALID_STATE' === err.code) return; - throw err; - }); - } - function fetching({ request, processRequestBodyChunkLength, processRequestEndOfBody, processResponse, processResponseEndOfBody, processResponseConsumeBody, useParallelQueue = false, dispatcher }) { - let taskDestination = null; - let crossOriginIsolatedCapability = false; - if (null != request.client) { - taskDestination = request.client.globalObject; - crossOriginIsolatedCapability = request.client.crossOriginIsolatedCapability; - } - const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability); - const timingInfo = createOpaqueTimingInfo({ - startTime: currenTime - }); - const fetchParams = { - controller: new Fetch(dispatcher), - request, - timingInfo, - processRequestBodyChunkLength, - processRequestEndOfBody, - processResponse, - processResponseConsumeBody, - processResponseEndOfBody, - taskDestination, - crossOriginIsolatedCapability - }; - assert(!request.body || request.body.stream); - if ('client' === request.window) request.window = request.client?.globalObject?.constructor?.name === 'Window' ? request.client : 'no-window'; - if ('client' === request.origin) request.origin = request.client?.origin; - if ('client' === request.policyContainer) if (null != request.client) request.policyContainer = clonePolicyContainer(request.client.policyContainer); - else request.policyContainer = makePolicyContainer(); - if (!request.headersList.contains('accept')) { - const value = '*/*'; - request.headersList.append('accept', value); - } - if (!request.headersList.contains('accept-language')) request.headersList.append('accept-language', '*'); - request.priority; - subresourceSet.has(request.destination); - mainFetch(fetchParams).catch((err)=>{ - fetchParams.controller.terminate(err); - }); - return fetchParams.controller; - } - async function mainFetch(fetchParams, recursive = false) { - const request = fetchParams.request; - let response = null; - if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) response = makeNetworkError('local URLs only'); - tryUpgradeRequestToAPotentiallyTrustworthyURL(request); - if ('blocked' === requestBadPort(request)) response = makeNetworkError('bad port'); - if ('' === request.referrerPolicy) request.referrerPolicy = request.policyContainer.referrerPolicy; - if ('no-referrer' !== request.referrer) request.referrer = determineRequestsReferrer(request); - if (null === response) response = await (async ()=>{ - const currentURL = requestCurrentURL(request); - if (sameOrigin(currentURL, request.url) && 'basic' === request.responseTainting || 'data:' === currentURL.protocol || 'navigate' === request.mode || 'websocket' === request.mode) { - request.responseTainting = 'basic'; - return await schemeFetch(fetchParams); - } - if ('same-origin' === request.mode) return makeNetworkError('request mode cannot be "same-origin"'); - if ('no-cors' === request.mode) { - if ('follow' !== request.redirect) return makeNetworkError('redirect mode cannot be "follow" for "no-cors" request'); - request.responseTainting = 'opaque'; - return await schemeFetch(fetchParams); - } - if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) return makeNetworkError('URL scheme must be a HTTP(S) scheme'); - request.responseTainting = 'cors'; - return await httpFetch(fetchParams); - })(); - if (recursive) return response; - if (0 !== response.status && !response.internalResponse) { - request.responseTainting; - if ('basic' === request.responseTainting) response = filterResponse(response, 'basic'); - else if ('cors' === request.responseTainting) response = filterResponse(response, 'cors'); - else if ('opaque' === request.responseTainting) response = filterResponse(response, 'opaque'); - else assert(false); - } - let internalResponse = 0 === response.status ? response : response.internalResponse; - if (0 === internalResponse.urlList.length) internalResponse.urlList.push(...request.urlList); - if (!request.timingAllowFailed) response.timingAllowPassed = true; - if ('opaque' === response.type && 206 === internalResponse.status && internalResponse.rangeRequested && !request.headers.contains('range')) response = internalResponse = makeNetworkError(); - if (0 !== response.status && ('HEAD' === request.method || 'CONNECT' === request.method || nullBodyStatus.includes(internalResponse.status))) { - internalResponse.body = null; - fetchParams.controller.dump = true; - } - if (request.integrity) { - const processBodyError = (reason)=>fetchFinale(fetchParams, makeNetworkError(reason)); - if ('opaque' === request.responseTainting || null == response.body) return void processBodyError(response.error); - const processBody = (bytes)=>{ - if (!bytesMatch(bytes, request.integrity)) return void processBodyError('integrity mismatch'); - response.body = safelyExtractBody(bytes)[0]; - fetchFinale(fetchParams, response); - }; - await fullyReadBody(response.body, processBody, processBodyError); - } else fetchFinale(fetchParams, response); - } - function schemeFetch(fetchParams) { - if (isCancelled(fetchParams) && 0 === fetchParams.request.redirectCount) return Promise.resolve(makeAppropriateNetworkError(fetchParams)); - const { request } = fetchParams; - const { protocol: scheme } = requestCurrentURL(request); - switch(scheme){ - case 'about:': - return Promise.resolve(makeNetworkError('about scheme is not supported')); - case 'blob:': - { - if (!resolveObjectURL) resolveObjectURL = __webpack_require__("buffer").resolveObjectURL; - const blobURLEntry = requestCurrentURL(request); - if (0 !== blobURLEntry.search.length) return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.')); - const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString()); - if ('GET' !== request.method || !isBlobLike(blobURLEntryObject)) return Promise.resolve(makeNetworkError('invalid method')); - const bodyWithType = safelyExtractBody(blobURLEntryObject); - const body = bodyWithType[0]; - const length = isomorphicEncode(`${body.length}`); - const type = bodyWithType[1] ?? ''; - const response = makeResponse({ - statusText: 'OK', - headersList: [ - [ - 'content-length', - { - name: 'Content-Length', - value: length - } - ], - [ - 'content-type', - { - name: 'Content-Type', - value: type - } - ] - ] - }); - response.body = body; - return Promise.resolve(response); - } - case 'data:': - { - const currentURL = requestCurrentURL(request); - const dataURLStruct = dataURLProcessor(currentURL); - if ('failure' === dataURLStruct) return Promise.resolve(makeNetworkError('failed to fetch the data URL')); - const mimeType = serializeAMimeType(dataURLStruct.mimeType); - return Promise.resolve(makeResponse({ - statusText: 'OK', - headersList: [ - [ - 'content-type', - { - name: 'Content-Type', - value: mimeType - } - ] - ], - body: safelyExtractBody(dataURLStruct.body)[0] - })); - } - case 'file:': - return Promise.resolve(makeNetworkError('not implemented... yet...')); - case 'http:': - case 'https:': - return httpFetch(fetchParams).catch((err)=>makeNetworkError(err)); - default: - return Promise.resolve(makeNetworkError('unknown scheme')); - } - } - function finalizeResponse(fetchParams, response) { - fetchParams.request.done = true; - if (null != fetchParams.processResponseDone) queueMicrotask(()=>fetchParams.processResponseDone(response)); - } - function fetchFinale(fetchParams, response) { - if ('error' === response.type) { - response.urlList = [ - fetchParams.request.urlList[0] - ]; - response.timingInfo = createOpaqueTimingInfo({ - startTime: fetchParams.timingInfo.startTime - }); - } - const processResponseEndOfBody = ()=>{ - fetchParams.request.done = true; - if (null != fetchParams.processResponseEndOfBody) queueMicrotask(()=>fetchParams.processResponseEndOfBody(response)); - }; - if (null != fetchParams.processResponse) queueMicrotask(()=>fetchParams.processResponse(response)); - if (null == response.body) processResponseEndOfBody(); - else { - const identityTransformAlgorithm = (chunk, controller)=>{ - controller.enqueue(chunk); - }; - const transformStream = new TransformStream1({ - start () {}, - transform: identityTransformAlgorithm, - flush: processResponseEndOfBody - }, { - size () { - return 1; - } - }, { - size () { - return 1; - } - }); - response.body = { - stream: response.body.stream.pipeThrough(transformStream) - }; - } - if (null != fetchParams.processResponseConsumeBody) { - const processBody = (nullOrBytes)=>fetchParams.processResponseConsumeBody(response, nullOrBytes); - const processBodyError = (failure)=>fetchParams.processResponseConsumeBody(response, failure); - if (null != response.body) return fullyReadBody(response.body, processBody, processBodyError); - queueMicrotask(()=>processBody(null)); - return Promise.resolve(); - } - } - async function httpFetch(fetchParams) { - const request = fetchParams.request; - let response = null; - let actualResponse = null; - const timingInfo = fetchParams.timingInfo; - request.serviceWorkers; - if (null === response) { - if ('follow' === request.redirect) request.serviceWorkers = 'none'; - actualResponse = response = await httpNetworkOrCacheFetch(fetchParams); - if ('cors' === request.responseTainting && 'failure' === corsCheck(request, response)) return makeNetworkError('cors failure'); - if ('failure' === TAOCheck(request, response)) request.timingAllowFailed = true; - } - if (('opaque' === request.responseTainting || 'opaque' === response.type) && 'blocked' === crossOriginResourcePolicyCheck(request.origin, request.client, request.destination, actualResponse)) return makeNetworkError('blocked'); - if (redirectStatusSet.has(actualResponse.status)) { - if ('manual' !== request.redirect) fetchParams.controller.connection.destroy(); - if ('error' === request.redirect) response = makeNetworkError('unexpected redirect'); - else if ('manual' === request.redirect) response = actualResponse; - else if ('follow' === request.redirect) response = await httpRedirectFetch(fetchParams, response); - else assert(false); - } - response.timingInfo = timingInfo; - return response; - } - function httpRedirectFetch(fetchParams, response) { - const request = fetchParams.request; - const actualResponse = response.internalResponse ? response.internalResponse : response; - let locationURL; - try { - locationURL = responseLocationURL(actualResponse, requestCurrentURL(request).hash); - if (null == locationURL) return response; - } catch (err) { - return Promise.resolve(makeNetworkError(err)); - } - if (!urlIsHttpHttpsScheme(locationURL)) return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme')); - if (20 === request.redirectCount) return Promise.resolve(makeNetworkError('redirect count exceeded')); - request.redirectCount += 1; - if ('cors' === request.mode && (locationURL.username || locationURL.password) && !sameOrigin(request, locationURL)) return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')); - if ('cors' === request.responseTainting && (locationURL.username || locationURL.password)) return Promise.resolve(makeNetworkError('URL cannot contain credentials for request mode "cors"')); - if (303 !== actualResponse.status && null != request.body && null == request.body.source) return Promise.resolve(makeNetworkError()); - if ([ - 301, - 302 - ].includes(actualResponse.status) && 'POST' === request.method || 303 === actualResponse.status && !GET_OR_HEAD.includes(request.method)) { - request.method = 'GET'; - request.body = null; - for (const headerName of requestBodyHeader)request.headersList.delete(headerName); - } - if (!sameOrigin(requestCurrentURL(request), locationURL)) { - request.headersList.delete('authorization'); - request.headersList.delete('proxy-authorization', true); - request.headersList.delete('cookie'); - request.headersList.delete('host'); - } - if (null != request.body) { - assert(null != request.body.source); - request.body = safelyExtractBody(request.body.source)[0]; - } - const timingInfo = fetchParams.timingInfo; - timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); - if (0 === timingInfo.redirectStartTime) timingInfo.redirectStartTime = timingInfo.startTime; - request.urlList.push(locationURL); - setRequestReferrerPolicyOnRedirect(request, actualResponse); - return mainFetch(fetchParams, true); - } - async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) { - const request = fetchParams.request; - let httpFetchParams = null; - let httpRequest = null; - let response = null; - const httpCache = null; - const revalidatingFlag = false; - if ('no-window' === request.window && 'error' === request.redirect) { - httpFetchParams = fetchParams; - httpRequest = request; - } else { - httpRequest = makeRequest(request); - httpFetchParams = { - ...fetchParams - }; - httpFetchParams.request = httpRequest; - } - const includeCredentials = 'include' === request.credentials || 'same-origin' === request.credentials && 'basic' === request.responseTainting; - const contentLength = httpRequest.body ? httpRequest.body.length : null; - let contentLengthHeaderValue = null; - if (null == httpRequest.body && [ - 'POST', - 'PUT' - ].includes(httpRequest.method)) contentLengthHeaderValue = '0'; - if (null != contentLength) contentLengthHeaderValue = isomorphicEncode(`${contentLength}`); - if (null != contentLengthHeaderValue) httpRequest.headersList.append('content-length', contentLengthHeaderValue); - null != contentLength && httpRequest.keepalive; - if (httpRequest.referrer instanceof URL) httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href)); - appendRequestOriginHeader(httpRequest); - appendFetchMetadata(httpRequest); - if (!httpRequest.headersList.contains('user-agent')) httpRequest.headersList.append('user-agent', "u" < typeof esbuildDetection ? 'undici' : 'node'); - if ('default' === httpRequest.cache && (httpRequest.headersList.contains('if-modified-since') || httpRequest.headersList.contains('if-none-match') || httpRequest.headersList.contains('if-unmodified-since') || httpRequest.headersList.contains('if-match') || httpRequest.headersList.contains('if-range'))) httpRequest.cache = 'no-store'; - if ('no-cache' === httpRequest.cache && !httpRequest.preventNoCacheCacheControlHeaderModification && !httpRequest.headersList.contains('cache-control')) httpRequest.headersList.append('cache-control', 'max-age=0'); - if ('no-store' === httpRequest.cache || 'reload' === httpRequest.cache) { - if (!httpRequest.headersList.contains('pragma')) httpRequest.headersList.append('pragma', 'no-cache'); - if (!httpRequest.headersList.contains('cache-control')) httpRequest.headersList.append('cache-control', 'no-cache'); - } - if (httpRequest.headersList.contains('range')) httpRequest.headersList.append('accept-encoding', 'identity'); - if (!httpRequest.headersList.contains('accept-encoding')) if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate'); - else httpRequest.headersList.append('accept-encoding', 'gzip, deflate'); - httpRequest.headersList.delete('host'); - if (null == httpCache) httpRequest.cache = 'no-store'; - 'no-store' !== httpRequest.mode && httpRequest.mode; - if (null == response) { - if ('only-if-cached' === httpRequest.mode) return makeNetworkError('only if cached'); - const forwardResponse = await httpNetworkFetch(httpFetchParams, includeCredentials, isNewConnectionFetch); - !safeMethodsSet.has(httpRequest.method) && forwardResponse.status >= 200 && forwardResponse.status; - revalidatingFlag && forwardResponse.status; - if (null == response) response = forwardResponse; - } - response.urlList = [ - ...httpRequest.urlList - ]; - if (httpRequest.headersList.contains('range')) response.rangeRequested = true; - response.requestIncludesCredentials = includeCredentials; - if (407 === response.status) { - if ('no-window' === request.window) return makeNetworkError(); - if (isCancelled(fetchParams)) return makeAppropriateNetworkError(fetchParams); - return makeNetworkError('proxy authentication required'); - } - if (421 === response.status && !isNewConnectionFetch && (null == request.body || null != request.body.source)) { - if (isCancelled(fetchParams)) return makeAppropriateNetworkError(fetchParams); - fetchParams.controller.connection.destroy(); - response = await httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch, true); - } - return response; - } - async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) { - assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); - fetchParams.controller.connection = { - abort: null, - destroyed: false, - destroy (err) { - if (!this.destroyed) { - this.destroyed = true; - this.abort?.(err ?? new DOMException1('The operation was aborted.', 'AbortError')); - } - } - }; - const request = fetchParams.request; - let response = null; - const timingInfo = fetchParams.timingInfo; - const httpCache = null; - if (null == httpCache) request.cache = 'no-store'; - request.mode; - let requestBody = null; - if (null == request.body && fetchParams.processRequestEndOfBody) queueMicrotask(()=>fetchParams.processRequestEndOfBody()); - else if (null != request.body) { - const processBodyChunk = async function*(bytes) { - if (isCancelled(fetchParams)) return; - yield bytes; - fetchParams.processRequestBodyChunkLength?.(bytes.byteLength); - }; - const processEndOfBody = ()=>{ - if (isCancelled(fetchParams)) return; - if (fetchParams.processRequestEndOfBody) fetchParams.processRequestEndOfBody(); - }; - const processBodyError = (e)=>{ - if (isCancelled(fetchParams)) return; - if ('AbortError' === e.name) fetchParams.controller.abort(); - else fetchParams.controller.terminate(e); - }; - requestBody = async function*() { - try { - for await (const bytes of request.body.stream)yield* processBodyChunk(bytes); - processEndOfBody(); - } catch (err) { - processBodyError(err); - } - }(); - } - try { - const { body, status, statusText, headersList, socket } = await dispatch({ - body: requestBody - }); - if (socket) response = makeResponse({ - status, - statusText, - headersList, - socket - }); - else { - const iterator = body[Symbol.asyncIterator](); - fetchParams.controller.next = ()=>iterator.next(); - response = makeResponse({ - status, - statusText, - headersList - }); - } - } catch (err) { - if ('AbortError' === err.name) { - fetchParams.controller.connection.destroy(); - return makeAppropriateNetworkError(fetchParams, err); - } - return makeNetworkError(err); - } - const pullAlgorithm = ()=>{ - fetchParams.controller.resume(); - }; - const cancelAlgorithm = (reason)=>{ - fetchParams.controller.abort(reason); - }; - if (!ReadableStream1) ReadableStream1 = __webpack_require__("stream/web").ReadableStream; - const stream = new ReadableStream1({ - async start (controller) { - fetchParams.controller.controller = controller; - }, - async pull (controller) { - await pullAlgorithm(); - }, - async cancel (reason) { - await cancelAlgorithm(reason); - } - }, { - highWaterMark: 0, - size () { - return 1; - } - }); - response.body = { - stream - }; - fetchParams.controller.on('terminated', onAborted); - fetchParams.controller.resume = async ()=>{ - while(true){ - let bytes; - let isFailure; - try { - const { done, value } = await fetchParams.controller.next(); - if (isAborted(fetchParams)) break; - bytes = done ? void 0 : value; - } catch (err) { - if (fetchParams.controller.ended && !timingInfo.encodedBodySize) bytes = void 0; - else { - bytes = err; - isFailure = true; - } - } - if (void 0 === bytes) { - readableStreamClose(fetchParams.controller.controller); - finalizeResponse(fetchParams, response); - return; - } - timingInfo.decodedBodySize += bytes?.byteLength ?? 0; - if (isFailure) return void fetchParams.controller.terminate(bytes); - fetchParams.controller.controller.enqueue(new Uint8Array(bytes)); - if (isErrored(stream)) return void fetchParams.controller.terminate(); - if (!fetchParams.controller.controller.desiredSize) return; - } - }; - function onAborted(reason) { - if (isAborted(fetchParams)) { - response.aborted = true; - if (isReadable(stream)) fetchParams.controller.controller.error(fetchParams.controller.serializedAbortReason); - } else if (isReadable(stream)) fetchParams.controller.controller.error(new TypeError('terminated', { - cause: isErrorLike(reason) ? reason : void 0 - })); - fetchParams.controller.connection.destroy(); - } - return response; - async function dispatch({ body }) { - const url = requestCurrentURL(request); - const agent = fetchParams.controller.dispatcher; - return new Promise((resolve, reject)=>agent.dispatch({ - path: url.pathname + url.search, - origin: url.origin, - method: request.method, - body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body, - headers: request.headersList.entries, - maxRedirections: 0, - upgrade: 'websocket' === request.mode ? 'websocket' : void 0 - }, { - body: null, - abort: null, - onConnect (abort) { - const { connection } = fetchParams.controller; - if (connection.destroyed) abort(new DOMException1('The operation was aborted.', 'AbortError')); - else { - fetchParams.controller.on('terminated', abort); - this.abort = connection.abort = abort; - } - }, - onHeaders (status, headersList, resume, statusText) { - if (status < 200) return; - let codings = []; - let location = ''; - const headers = new Headers(); - if (Array.isArray(headersList)) for(let n = 0; n < headersList.length; n += 2){ - const key = headersList[n + 0].toString('latin1'); - const val = headersList[n + 1].toString('latin1'); - if ('content-encoding' === key.toLowerCase()) codings = val.toLowerCase().split(',').map((x)=>x.trim()); - else if ('location' === key.toLowerCase()) location = val; - headers[kHeadersList].append(key, val); - } - else { - const keys = Object.keys(headersList); - for (const key of keys){ - const val = headersList[key]; - if ('content-encoding' === key.toLowerCase()) codings = val.toLowerCase().split(',').map((x)=>x.trim()).reverse(); - else if ('location' === key.toLowerCase()) location = val; - headers[kHeadersList].append(key, val); - } - } - this.body = new Readable({ - read: resume - }); - const decoders = []; - const willFollow = 'follow' === request.redirect && location && redirectStatusSet.has(status); - if ('HEAD' !== request.method && 'CONNECT' !== request.method && !nullBodyStatus.includes(status) && !willFollow) for (const coding of codings)if ('x-gzip' === coding || 'gzip' === coding) decoders.push(zlib.createGunzip({ - flush: zlib.constants.Z_SYNC_FLUSH, - finishFlush: zlib.constants.Z_SYNC_FLUSH - })); - else if ('deflate' === coding) decoders.push(zlib.createInflate()); - else if ('br' === coding) decoders.push(zlib.createBrotliDecompress()); - else { - decoders.length = 0; - break; - } - resolve({ - status, - statusText, - headersList: headers[kHeadersList], - body: decoders.length ? pipeline(this.body, ...decoders, ()=>{}) : this.body.on('error', ()=>{}) - }); - return true; - }, - onData (chunk) { - if (fetchParams.controller.dump) return; - const bytes = chunk; - timingInfo.encodedBodySize += bytes.byteLength; - return this.body.push(bytes); - }, - onComplete () { - if (this.abort) fetchParams.controller.off('terminated', this.abort); - fetchParams.controller.ended = true; - this.body.push(null); - }, - onError (error) { - if (this.abort) fetchParams.controller.off('terminated', this.abort); - this.body?.destroy(error); - fetchParams.controller.terminate(error); - reject(error); - }, - onUpgrade (status, headersList, socket) { - if (101 !== status) return; - const headers = new Headers(); - for(let n = 0; n < headersList.length; n += 2){ - const key = headersList[n + 0].toString('latin1'); - const val = headersList[n + 1].toString('latin1'); - headers[kHeadersList].append(key, val); - } - resolve({ - status, - statusText: STATUS_CODES[status], - headersList: headers[kHeadersList], - socket - }); - return true; - } - })); - } - } - module.exports = { - fetch, - Fetch, - fetching, - finalizeAndReportTiming - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/request.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { extractBody, mixinBody, cloneBody } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/body.js"); - const { Headers, fill: fillHeaders, HeadersList } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js"); - const { FinalizationRegistry: FinalizationRegistry1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/compat/dispatcher-weakref.js")(); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { isValidHTTPToken, sameOrigin, normalizeMethod, makePolicyContainer, normalizeMethodRecord } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { forbiddenMethodsSet, corsSafeListedMethodsSet, referrerPolicy, requestRedirect, requestMode, requestCredentials, requestCache, requestDuplex } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { kEnumerableProperty } = util; - const { kHeaders, kSignal, kState, kGuard, kRealm } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { getGlobalOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js"); - const { URLSerializer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { kHeadersList, kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const assert = __webpack_require__("assert"); - const { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = __webpack_require__("events"); - let TransformStream1 = globalThis.TransformStream; - const kAbortController = Symbol('abortController'); - const requestFinalizer = new FinalizationRegistry1(({ signal, abort })=>{ - signal.removeEventListener('abort', abort); - }); - class Request { - constructor(input, init = {}){ - if (input === kConstruct) return; - webidl.argumentLengthCheck(arguments, 1, { - header: 'Request constructor' - }); - input = webidl.converters.RequestInfo(input); - init = webidl.converters.RequestInit(init); - this[kRealm] = { - settingsObject: { - baseUrl: getGlobalOrigin(), - get origin () { - return this.baseUrl?.origin; - }, - policyContainer: makePolicyContainer() - } - }; - let request = null; - let fallbackMode = null; - const baseUrl = this[kRealm].settingsObject.baseUrl; - let signal = null; - if ('string' == typeof input) { - let parsedURL; - try { - parsedURL = new URL(input, baseUrl); - } catch (err) { - throw new TypeError('Failed to parse URL from ' + input, { - cause: err - }); - } - if (parsedURL.username || parsedURL.password) throw new TypeError('Request cannot be constructed from a URL that includes credentials: ' + input); - request = makeRequest({ - urlList: [ - parsedURL - ] - }); - fallbackMode = 'cors'; - } else { - assert(input instanceof Request); - request = input[kState]; - signal = input[kSignal]; - } - const origin = this[kRealm].settingsObject.origin; - let window = 'client'; - if (request.window?.constructor?.name === 'EnvironmentSettingsObject' && sameOrigin(request.window, origin)) window = request.window; - if (null != init.window) throw new TypeError(`'window' option '${window}' must be null`); - if ('window' in init) window = 'no-window'; - request = makeRequest({ - method: request.method, - headersList: request.headersList, - unsafeRequest: request.unsafeRequest, - client: this[kRealm].settingsObject, - window, - priority: request.priority, - origin: request.origin, - referrer: request.referrer, - referrerPolicy: request.referrerPolicy, - mode: request.mode, - credentials: request.credentials, - cache: request.cache, - redirect: request.redirect, - integrity: request.integrity, - keepalive: request.keepalive, - reloadNavigation: request.reloadNavigation, - historyNavigation: request.historyNavigation, - urlList: [ - ...request.urlList - ] - }); - const initHasKey = 0 !== Object.keys(init).length; - if (initHasKey) { - if ('navigate' === request.mode) request.mode = 'same-origin'; - request.reloadNavigation = false; - request.historyNavigation = false; - request.origin = 'client'; - request.referrer = 'client'; - request.referrerPolicy = ''; - request.url = request.urlList[request.urlList.length - 1]; - request.urlList = [ - request.url - ]; - } - if (void 0 !== init.referrer) { - const referrer = init.referrer; - if ('' === referrer) request.referrer = 'no-referrer'; - else { - let parsedReferrer; - try { - parsedReferrer = new URL(referrer, baseUrl); - } catch (err) { - throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { - cause: err - }); - } - if ('about:' === parsedReferrer.protocol && 'client' === parsedReferrer.hostname || origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl)) request.referrer = 'client'; - else request.referrer = parsedReferrer; - } - } - if (void 0 !== init.referrerPolicy) request.referrerPolicy = init.referrerPolicy; - let mode; - mode = void 0 !== init.mode ? init.mode : fallbackMode; - if ('navigate' === mode) throw webidl.errors.exception({ - header: 'Request constructor', - message: 'invalid request mode navigate.' - }); - if (null != mode) request.mode = mode; - if (void 0 !== init.credentials) request.credentials = init.credentials; - if (void 0 !== init.cache) request.cache = init.cache; - if ('only-if-cached' === request.cache && 'same-origin' !== request.mode) throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode"); - if (void 0 !== init.redirect) request.redirect = init.redirect; - if (null != init.integrity) request.integrity = String(init.integrity); - if (void 0 !== init.keepalive) request.keepalive = Boolean(init.keepalive); - if (void 0 !== init.method) { - let method = init.method; - if (!isValidHTTPToken(method)) throw new TypeError(`'${method}' is not a valid HTTP method.`); - if (forbiddenMethodsSet.has(method.toUpperCase())) throw new TypeError(`'${method}' HTTP method is unsupported.`); - method = normalizeMethodRecord[method] ?? normalizeMethod(method); - request.method = method; - } - if (void 0 !== init.signal) signal = init.signal; - this[kState] = request; - const ac = new AbortController(); - this[kSignal] = ac.signal; - this[kSignal][kRealm] = this[kRealm]; - if (null != signal) { - if (!signal || 'boolean' != typeof signal.aborted || 'function' != typeof signal.addEventListener) throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal."); - if (signal.aborted) ac.abort(signal.reason); - else { - this[kAbortController] = ac; - const acRef = new WeakRef(ac); - const abort = function() { - const ac = acRef.deref(); - if (void 0 !== ac) ac.abort(this.reason); - }; - try { - if ('function' == typeof getMaxListeners && getMaxListeners(signal) === defaultMaxListeners) setMaxListeners(100, signal); - else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) setMaxListeners(100, signal); - } catch {} - util.addAbortListener(signal, abort); - requestFinalizer.register(ac, { - signal, - abort - }); - } - } - this[kHeaders] = new Headers(kConstruct); - this[kHeaders][kHeadersList] = request.headersList; - this[kHeaders][kGuard] = 'request'; - this[kHeaders][kRealm] = this[kRealm]; - if ('no-cors' === mode) { - if (!corsSafeListedMethodsSet.has(request.method)) throw new TypeError(`'${request.method} is unsupported in no-cors mode.`); - this[kHeaders][kGuard] = 'request-no-cors'; - } - if (initHasKey) { - const headersList = this[kHeaders][kHeadersList]; - const headers = void 0 !== init.headers ? init.headers : new HeadersList(headersList); - headersList.clear(); - if (headers instanceof HeadersList) { - for (const [key, val] of headers)headersList.append(key, val); - headersList.cookies = headers.cookies; - } else fillHeaders(this[kHeaders], headers); - } - const inputBody = input instanceof Request ? input[kState].body : null; - if ((null != init.body || null != inputBody) && ('GET' === request.method || 'HEAD' === request.method)) throw new TypeError('Request with GET/HEAD method cannot have body.'); - let initBody = null; - if (null != init.body) { - const [extractedBody, contentType] = extractBody(init.body, request.keepalive); - initBody = extractedBody; - if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) this[kHeaders].append('content-type', contentType); - } - const inputOrInitBody = initBody ?? inputBody; - if (null != inputOrInitBody && null == inputOrInitBody.source) { - if (null != initBody && null == init.duplex) throw new TypeError('RequestInit: duplex option is required when sending a body.'); - if ('same-origin' !== request.mode && 'cors' !== request.mode) throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"'); - request.useCORSPreflightFlag = true; - } - let finalBody = inputOrInitBody; - if (null == initBody && null != inputBody) { - if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) throw new TypeError('Cannot construct a Request with a Request object that has already been used.'); - if (!TransformStream1) TransformStream1 = __webpack_require__("stream/web").TransformStream; - const identityTransform = new TransformStream1(); - inputBody.stream.pipeThrough(identityTransform); - finalBody = { - source: inputBody.source, - length: inputBody.length, - stream: identityTransform.readable - }; - } - this[kState].body = finalBody; - } - get method() { - webidl.brandCheck(this, Request); - return this[kState].method; - } - get url() { - webidl.brandCheck(this, Request); - return URLSerializer(this[kState].url); - } - get headers() { - webidl.brandCheck(this, Request); - return this[kHeaders]; - } - get destination() { - webidl.brandCheck(this, Request); - return this[kState].destination; - } - get referrer() { - webidl.brandCheck(this, Request); - if ('no-referrer' === this[kState].referrer) return ''; - if ('client' === this[kState].referrer) return 'about:client'; - return this[kState].referrer.toString(); - } - get referrerPolicy() { - webidl.brandCheck(this, Request); - return this[kState].referrerPolicy; - } - get mode() { - webidl.brandCheck(this, Request); - return this[kState].mode; - } - get credentials() { - return this[kState].credentials; - } - get cache() { - webidl.brandCheck(this, Request); - return this[kState].cache; - } - get redirect() { - webidl.brandCheck(this, Request); - return this[kState].redirect; - } - get integrity() { - webidl.brandCheck(this, Request); - return this[kState].integrity; - } - get keepalive() { - webidl.brandCheck(this, Request); - return this[kState].keepalive; - } - get isReloadNavigation() { - webidl.brandCheck(this, Request); - return this[kState].reloadNavigation; - } - get isHistoryNavigation() { - webidl.brandCheck(this, Request); - return this[kState].historyNavigation; - } - get signal() { - webidl.brandCheck(this, Request); - return this[kSignal]; - } - get body() { - webidl.brandCheck(this, Request); - return this[kState].body ? this[kState].body.stream : null; - } - get bodyUsed() { - webidl.brandCheck(this, Request); - return !!this[kState].body && util.isDisturbed(this[kState].body.stream); - } - get duplex() { - webidl.brandCheck(this, Request); - return 'half'; - } - clone() { - webidl.brandCheck(this, Request); - if (this.bodyUsed || this.body?.locked) throw new TypeError('unusable'); - const clonedRequest = cloneRequest(this[kState]); - const clonedRequestObject = new Request(kConstruct); - clonedRequestObject[kState] = clonedRequest; - clonedRequestObject[kRealm] = this[kRealm]; - clonedRequestObject[kHeaders] = new Headers(kConstruct); - clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList; - clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]; - clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]; - const ac = new AbortController(); - if (this.signal.aborted) ac.abort(this.signal.reason); - else util.addAbortListener(this.signal, ()=>{ - ac.abort(this.signal.reason); - }); - clonedRequestObject[kSignal] = ac.signal; - return clonedRequestObject; - } - } - mixinBody(Request); - function makeRequest(init) { - const request = { - method: 'GET', - localURLsOnly: false, - unsafeRequest: false, - body: null, - client: null, - reservedClient: null, - replacesClientId: '', - window: 'client', - keepalive: false, - serviceWorkers: 'all', - initiator: '', - destination: '', - priority: null, - origin: 'client', - policyContainer: 'client', - referrer: 'client', - referrerPolicy: '', - mode: 'no-cors', - useCORSPreflightFlag: false, - credentials: 'same-origin', - useCredentials: false, - cache: 'default', - redirect: 'follow', - integrity: '', - cryptoGraphicsNonceMetadata: '', - parserMetadata: '', - reloadNavigation: false, - historyNavigation: false, - userActivation: false, - taintedOrigin: false, - redirectCount: 0, - responseTainting: 'basic', - preventNoCacheCacheControlHeaderModification: false, - done: false, - timingAllowFailed: false, - ...init, - headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList() - }; - request.url = request.urlList[0]; - return request; - } - function cloneRequest(request) { - const newRequest = makeRequest({ - ...request, - body: null - }); - if (null != request.body) newRequest.body = cloneBody(request.body); - return newRequest; - } - Object.defineProperties(Request.prototype, { - method: kEnumerableProperty, - url: kEnumerableProperty, - headers: kEnumerableProperty, - redirect: kEnumerableProperty, - clone: kEnumerableProperty, - signal: kEnumerableProperty, - duplex: kEnumerableProperty, - destination: kEnumerableProperty, - body: kEnumerableProperty, - bodyUsed: kEnumerableProperty, - isHistoryNavigation: kEnumerableProperty, - isReloadNavigation: kEnumerableProperty, - keepalive: kEnumerableProperty, - integrity: kEnumerableProperty, - cache: kEnumerableProperty, - credentials: kEnumerableProperty, - attribute: kEnumerableProperty, - referrerPolicy: kEnumerableProperty, - referrer: kEnumerableProperty, - mode: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'Request', - configurable: true - } - }); - webidl.converters.Request = webidl.interfaceConverter(Request); - webidl.converters.RequestInfo = function(V) { - if ('string' == typeof V) return webidl.converters.USVString(V); - if (V instanceof Request) return webidl.converters.Request(V); - return webidl.converters.USVString(V); - }; - webidl.converters.AbortSignal = webidl.interfaceConverter(AbortSignal); - webidl.converters.RequestInit = webidl.dictionaryConverter([ - { - key: 'method', - converter: webidl.converters.ByteString - }, - { - key: 'headers', - converter: webidl.converters.HeadersInit - }, - { - key: 'body', - converter: webidl.nullableConverter(webidl.converters.BodyInit) - }, - { - key: 'referrer', - converter: webidl.converters.USVString - }, - { - key: 'referrerPolicy', - converter: webidl.converters.DOMString, - allowedValues: referrerPolicy - }, - { - key: 'mode', - converter: webidl.converters.DOMString, - allowedValues: requestMode - }, - { - key: 'credentials', - converter: webidl.converters.DOMString, - allowedValues: requestCredentials - }, - { - key: 'cache', - converter: webidl.converters.DOMString, - allowedValues: requestCache - }, - { - key: 'redirect', - converter: webidl.converters.DOMString, - allowedValues: requestRedirect - }, - { - key: 'integrity', - converter: webidl.converters.DOMString - }, - { - key: 'keepalive', - converter: webidl.converters.boolean - }, - { - key: 'signal', - converter: webidl.nullableConverter((signal)=>webidl.converters.AbortSignal(signal, { - strict: false - })) - }, - { - key: 'window', - converter: webidl.converters.any - }, - { - key: 'duplex', - converter: webidl.converters.DOMString, - allowedValues: requestDuplex - } - ]); - module.exports = { - Request, - makeRequest - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/response.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Headers, HeadersList, fill } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js"); - const { extractBody, cloneBody, mixinBody } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/body.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { kEnumerableProperty } = util; - const { isValidReasonPhrase, isCancelled, isAborted, isBlobLike, serializeJavascriptValueToJSONString, isErrorLike, isomorphicEncode } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const { redirectStatusSet, nullBodyStatus, DOMException: DOMException1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { kState, kHeaders, kGuard, kRealm } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { FormData } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/formdata.js"); - const { getGlobalOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js"); - const { URLSerializer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { kHeadersList, kConstruct } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const assert = __webpack_require__("assert"); - const { types } = __webpack_require__("util"); - const ReadableStream1 = globalThis.ReadableStream || __webpack_require__("stream/web").ReadableStream; - const textEncoder = new TextEncoder('utf-8'); - class Response { - static error() { - const relevantRealm = { - settingsObject: {} - }; - const responseObject = new Response(); - responseObject[kState] = makeNetworkError(); - responseObject[kRealm] = relevantRealm; - responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList; - responseObject[kHeaders][kGuard] = 'immutable'; - responseObject[kHeaders][kRealm] = relevantRealm; - return responseObject; - } - static json(data, init = {}) { - webidl.argumentLengthCheck(arguments, 1, { - header: 'Response.json' - }); - if (null !== init) init = webidl.converters.ResponseInit(init); - const bytes = textEncoder.encode(serializeJavascriptValueToJSONString(data)); - const body = extractBody(bytes); - const relevantRealm = { - settingsObject: {} - }; - const responseObject = new Response(); - responseObject[kRealm] = relevantRealm; - responseObject[kHeaders][kGuard] = 'response'; - responseObject[kHeaders][kRealm] = relevantRealm; - initializeResponse(responseObject, init, { - body: body[0], - type: 'application/json' - }); - return responseObject; - } - static redirect(url, status = 302) { - const relevantRealm = { - settingsObject: {} - }; - webidl.argumentLengthCheck(arguments, 1, { - header: 'Response.redirect' - }); - url = webidl.converters.USVString(url); - status = webidl.converters['unsigned short'](status); - let parsedURL; - try { - parsedURL = new URL(url, getGlobalOrigin()); - } catch (err) { - throw Object.assign(new TypeError('Failed to parse URL from ' + url), { - cause: err - }); - } - if (!redirectStatusSet.has(status)) throw new RangeError('Invalid status code ' + status); - const responseObject = new Response(); - responseObject[kRealm] = relevantRealm; - responseObject[kHeaders][kGuard] = 'immutable'; - responseObject[kHeaders][kRealm] = relevantRealm; - responseObject[kState].status = status; - const value = isomorphicEncode(URLSerializer(parsedURL)); - responseObject[kState].headersList.append('location', value); - return responseObject; - } - constructor(body = null, init = {}){ - if (null !== body) body = webidl.converters.BodyInit(body); - init = webidl.converters.ResponseInit(init); - this[kRealm] = { - settingsObject: {} - }; - this[kState] = makeResponse({}); - this[kHeaders] = new Headers(kConstruct); - this[kHeaders][kGuard] = 'response'; - this[kHeaders][kHeadersList] = this[kState].headersList; - this[kHeaders][kRealm] = this[kRealm]; - let bodyWithType = null; - if (null != body) { - const [extractedBody, type] = extractBody(body); - bodyWithType = { - body: extractedBody, - type - }; - } - initializeResponse(this, init, bodyWithType); - } - get type() { - webidl.brandCheck(this, Response); - return this[kState].type; - } - get url() { - webidl.brandCheck(this, Response); - const urlList = this[kState].urlList; - const url = urlList[urlList.length - 1] ?? null; - if (null === url) return ''; - return URLSerializer(url, true); - } - get redirected() { - webidl.brandCheck(this, Response); - return this[kState].urlList.length > 1; - } - get status() { - webidl.brandCheck(this, Response); - return this[kState].status; - } - get ok() { - webidl.brandCheck(this, Response); - return this[kState].status >= 200 && this[kState].status <= 299; - } - get statusText() { - webidl.brandCheck(this, Response); - return this[kState].statusText; - } - get headers() { - webidl.brandCheck(this, Response); - return this[kHeaders]; - } - get body() { - webidl.brandCheck(this, Response); - return this[kState].body ? this[kState].body.stream : null; - } - get bodyUsed() { - webidl.brandCheck(this, Response); - return !!this[kState].body && util.isDisturbed(this[kState].body.stream); - } - clone() { - webidl.brandCheck(this, Response); - if (this.bodyUsed || this.body && this.body.locked) throw webidl.errors.exception({ - header: 'Response.clone', - message: 'Body has already been consumed.' - }); - const clonedResponse = cloneResponse(this[kState]); - const clonedResponseObject = new Response(); - clonedResponseObject[kState] = clonedResponse; - clonedResponseObject[kRealm] = this[kRealm]; - clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList; - clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]; - clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]; - return clonedResponseObject; - } - } - mixinBody(Response); - Object.defineProperties(Response.prototype, { - type: kEnumerableProperty, - url: kEnumerableProperty, - status: kEnumerableProperty, - ok: kEnumerableProperty, - redirected: kEnumerableProperty, - statusText: kEnumerableProperty, - headers: kEnumerableProperty, - clone: kEnumerableProperty, - body: kEnumerableProperty, - bodyUsed: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'Response', - configurable: true - } - }); - Object.defineProperties(Response, { - json: kEnumerableProperty, - redirect: kEnumerableProperty, - error: kEnumerableProperty - }); - function cloneResponse(response) { - if (response.internalResponse) return filterResponse(cloneResponse(response.internalResponse), response.type); - const newResponse = makeResponse({ - ...response, - body: null - }); - if (null != response.body) newResponse.body = cloneBody(response.body); - return newResponse; - } - function makeResponse(init) { - return { - aborted: false, - rangeRequested: false, - timingAllowPassed: false, - requestIncludesCredentials: false, - type: 'default', - status: 200, - timingInfo: null, - cacheState: '', - statusText: '', - ...init, - headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList(), - urlList: init.urlList ? [ - ...init.urlList - ] : [] - }; - } - function makeNetworkError(reason) { - const isError = isErrorLike(reason); - return makeResponse({ - type: 'error', - status: 0, - error: isError ? reason : new Error(reason ? String(reason) : reason), - aborted: reason && 'AbortError' === reason.name - }); - } - function makeFilteredResponse(response, state) { - state = { - internalResponse: response, - ...state - }; - return new Proxy(response, { - get (target, p) { - return p in state ? state[p] : target[p]; - }, - set (target, p, value) { - assert(!(p in state)); - target[p] = value; - return true; - } - }); - } - function filterResponse(response, type) { - if ('basic' === type) return makeFilteredResponse(response, { - type: 'basic', - headersList: response.headersList - }); - if ('cors' === type) return makeFilteredResponse(response, { - type: 'cors', - headersList: response.headersList - }); - if ('opaque' === type) return makeFilteredResponse(response, { - type: 'opaque', - urlList: Object.freeze([]), - status: 0, - statusText: '', - body: null - }); - if ('opaqueredirect' === type) return makeFilteredResponse(response, { - type: 'opaqueredirect', - status: 0, - statusText: '', - headersList: [], - body: null - }); - assert(false); - } - function makeAppropriateNetworkError(fetchParams, err = null) { - assert(isCancelled(fetchParams)); - return isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException1('The operation was aborted.', 'AbortError'), { - cause: err - })) : makeNetworkError(Object.assign(new DOMException1('Request was cancelled.'), { - cause: err - })); - } - function initializeResponse(response, init, body) { - if (null !== init.status && (init.status < 200 || init.status > 599)) throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.'); - if ('statusText' in init && null != init.statusText) { - if (!isValidReasonPhrase(String(init.statusText))) throw new TypeError('Invalid statusText'); - } - if ('status' in init && null != init.status) response[kState].status = init.status; - if ('statusText' in init && null != init.statusText) response[kState].statusText = init.statusText; - if ('headers' in init && null != init.headers) fill(response[kHeaders], init.headers); - if (body) { - if (nullBodyStatus.includes(response.status)) throw webidl.errors.exception({ - header: 'Response constructor', - message: 'Invalid response status code ' + response.status - }); - response[kState].body = body.body; - if (null != body.type && !response[kState].headersList.contains('Content-Type')) response[kState].headersList.append('content-type', body.type); - } - } - webidl.converters.ReadableStream = webidl.interfaceConverter(ReadableStream1); - webidl.converters.FormData = webidl.interfaceConverter(FormData); - webidl.converters.URLSearchParams = webidl.interfaceConverter(URLSearchParams); - webidl.converters.XMLHttpRequestBodyInit = function(V) { - if ('string' == typeof V) return webidl.converters.USVString(V); - if (isBlobLike(V)) return webidl.converters.Blob(V, { - strict: false - }); - if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) return webidl.converters.BufferSource(V); - if (util.isFormDataLike(V)) return webidl.converters.FormData(V, { - strict: false - }); - if (V instanceof URLSearchParams) return webidl.converters.URLSearchParams(V); - return webidl.converters.DOMString(V); - }; - webidl.converters.BodyInit = function(V) { - if (V instanceof ReadableStream1) return webidl.converters.ReadableStream(V); - if (V?.[Symbol.asyncIterator]) return V; - return webidl.converters.XMLHttpRequestBodyInit(V); - }; - webidl.converters.ResponseInit = webidl.dictionaryConverter([ - { - key: 'status', - converter: webidl.converters['unsigned short'], - defaultValue: 200 - }, - { - key: 'statusText', - converter: webidl.converters.ByteString, - defaultValue: '' - }, - { - key: 'headers', - converter: webidl.converters.HeadersInit - } - ]); - module.exports = { - makeNetworkError, - makeResponse, - makeAppropriateNetworkError, - filterResponse, - Response, - cloneResponse - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/symbols.js" (module) { - "use strict"; - module.exports = { - kUrl: Symbol('url'), - kHeaders: Symbol('headers'), - kSignal: Symbol('signal'), - kState: Symbol('state'), - kGuard: Symbol('guard'), - kRealm: Symbol('realm') - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { getGlobalOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js"); - const { performance: performance1 } = __webpack_require__("perf_hooks"); - const { isBlobLike, toUSVString, ReadableStreamFrom } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const assert = __webpack_require__("assert"); - const { isUint8Array } = __webpack_require__("util/types"); - let supportedHashes = []; - let crypto; - try { - crypto = __webpack_require__("crypto"); - const possibleRelevantHashes = [ - 'sha256', - 'sha384', - 'sha512' - ]; - supportedHashes = crypto.getHashes().filter((hash)=>possibleRelevantHashes.includes(hash)); - } catch {} - function responseURL(response) { - const urlList = response.urlList; - const length = urlList.length; - return 0 === length ? null : urlList[length - 1].toString(); - } - function responseLocationURL(response, requestFragment) { - if (!redirectStatusSet.has(response.status)) return null; - let location = response.headersList.get('location'); - if (null !== location && isValidHeaderValue(location)) location = new URL(location, responseURL(response)); - if (location && !location.hash) location.hash = requestFragment; - return location; - } - function requestCurrentURL(request) { - return request.urlList[request.urlList.length - 1]; - } - function requestBadPort(request) { - const url = requestCurrentURL(request); - if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) return 'blocked'; - return 'allowed'; - } - function isErrorLike(object) { - return object instanceof Error || object?.constructor?.name === 'Error' || object?.constructor?.name === 'DOMException'; - } - function isValidReasonPhrase(statusText) { - for(let i = 0; i < statusText.length; ++i){ - const c = statusText.charCodeAt(i); - if (!(0x09 === c || c >= 0x20 && c <= 0x7e || c >= 0x80 && c <= 0xff)) return false; - } - return true; - } - function isTokenCharCode(c) { - switch(c){ - case 0x22: - case 0x28: - case 0x29: - case 0x2c: - case 0x2f: - case 0x3a: - case 0x3b: - case 0x3c: - case 0x3d: - case 0x3e: - case 0x3f: - case 0x40: - case 0x5b: - case 0x5c: - case 0x5d: - case 0x7b: - case 0x7d: - return false; - default: - return c >= 0x21 && c <= 0x7e; - } - } - function isValidHTTPToken(characters) { - if (0 === characters.length) return false; - for(let i = 0; i < characters.length; ++i)if (!isTokenCharCode(characters.charCodeAt(i))) return false; - return true; - } - function isValidHeaderName(potentialValue) { - return isValidHTTPToken(potentialValue); - } - function isValidHeaderValue(potentialValue) { - if (potentialValue.startsWith('\t') || potentialValue.startsWith(' ') || potentialValue.endsWith('\t') || potentialValue.endsWith(' ')) return false; - if (potentialValue.includes('\0') || potentialValue.includes('\r') || potentialValue.includes('\n')) return false; - return true; - } - function setRequestReferrerPolicyOnRedirect(request, actualResponse) { - const { headersList } = actualResponse; - const policyHeader = (headersList.get('referrer-policy') ?? '').split(','); - let policy = ''; - if (policyHeader.length > 0) for(let i = policyHeader.length; 0 !== i; i--){ - const token = policyHeader[i - 1].trim(); - if (referrerPolicyTokens.has(token)) { - policy = token; - break; - } - } - if ('' !== policy) request.referrerPolicy = policy; - } - function crossOriginResourcePolicyCheck() { - return 'allowed'; - } - function corsCheck() { - return 'success'; - } - function TAOCheck() { - return 'success'; - } - function appendFetchMetadata(httpRequest) { - let header = null; - header = httpRequest.mode; - httpRequest.headersList.set('sec-fetch-mode', header); - } - function appendRequestOriginHeader(request) { - let serializedOrigin = request.origin; - if ('cors' === request.responseTainting || 'websocket' === request.mode) { - if (serializedOrigin) request.headersList.append('origin', serializedOrigin); - } else if ('GET' !== request.method && 'HEAD' !== request.method) { - switch(request.referrerPolicy){ - case 'no-referrer': - serializedOrigin = null; - break; - case 'no-referrer-when-downgrade': - case 'strict-origin': - case 'strict-origin-when-cross-origin': - if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) serializedOrigin = null; - break; - case 'same-origin': - if (!sameOrigin(request, requestCurrentURL(request))) serializedOrigin = null; - break; - default: - } - if (serializedOrigin) request.headersList.append('origin', serializedOrigin); - } - } - function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { - return performance1.now(); - } - function createOpaqueTimingInfo(timingInfo) { - return { - startTime: timingInfo.startTime ?? 0, - redirectStartTime: 0, - redirectEndTime: 0, - postRedirectStartTime: timingInfo.startTime ?? 0, - finalServiceWorkerStartTime: 0, - finalNetworkResponseStartTime: 0, - finalNetworkRequestStartTime: 0, - endTime: 0, - encodedBodySize: 0, - decodedBodySize: 0, - finalConnectionTimingInfo: null - }; - } - function makePolicyContainer() { - return { - referrerPolicy: 'strict-origin-when-cross-origin' - }; - } - function clonePolicyContainer(policyContainer) { - return { - referrerPolicy: policyContainer.referrerPolicy - }; - } - function determineRequestsReferrer(request) { - const policy = request.referrerPolicy; - assert(policy); - let referrerSource = null; - if ('client' === request.referrer) { - const globalOrigin = getGlobalOrigin(); - if (!globalOrigin || 'null' === globalOrigin.origin) return 'no-referrer'; - referrerSource = new URL(globalOrigin); - } else if (request.referrer instanceof URL) referrerSource = request.referrer; - let referrerURL = stripURLForReferrer(referrerSource); - const referrerOrigin = stripURLForReferrer(referrerSource, true); - if (referrerURL.toString().length > 4096) referrerURL = referrerOrigin; - const areSameOrigin = sameOrigin(request, referrerURL); - const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(request.url); - switch(policy){ - case 'origin': - return null != referrerOrigin ? referrerOrigin : stripURLForReferrer(referrerSource, true); - case 'unsafe-url': - return referrerURL; - case 'same-origin': - return areSameOrigin ? referrerOrigin : 'no-referrer'; - case 'origin-when-cross-origin': - return areSameOrigin ? referrerURL : referrerOrigin; - case 'strict-origin-when-cross-origin': - { - const currentURL = requestCurrentURL(request); - if (sameOrigin(referrerURL, currentURL)) return referrerURL; - if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) return 'no-referrer'; - return referrerOrigin; - } - case 'strict-origin': - case 'no-referrer-when-downgrade': - default: - return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin; - } - } - function stripURLForReferrer(url, originOnly) { - assert(url instanceof URL); - if ('file:' === url.protocol || 'about:' === url.protocol || 'blank:' === url.protocol) return 'no-referrer'; - url.username = ''; - url.password = ''; - url.hash = ''; - if (originOnly) { - url.pathname = ''; - url.search = ''; - } - return url; - } - function isURLPotentiallyTrustworthy(url) { - if (!(url instanceof URL)) return false; - if ('about:blank' === url.href || 'about:srcdoc' === url.href) return true; - if ('data:' === url.protocol) return true; - if ('file:' === url.protocol) return true; - return isOriginPotentiallyTrustworthy(url.origin); - function isOriginPotentiallyTrustworthy(origin) { - if (null == origin || 'null' === origin) return false; - const originAsURL = new URL(origin); - if ('https:' === originAsURL.protocol || 'wss:' === originAsURL.protocol) return true; - if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || 'localhost' === originAsURL.hostname || originAsURL.hostname.includes('localhost.') || originAsURL.hostname.endsWith('.localhost')) return true; - return false; - } - } - function bytesMatch(bytes, metadataList) { - if (void 0 === crypto) return true; - const parsedMetadata = parseMetadata(metadataList); - if ('no metadata' === parsedMetadata) return true; - if (0 === parsedMetadata.length) return true; - const strongest = getStrongestMetadata(parsedMetadata); - const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest); - for (const item of metadata){ - const algorithm = item.algo; - const expectedValue = item.hash; - let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64'); - if ('=' === actualValue[actualValue.length - 1]) actualValue = '=' === actualValue[actualValue.length - 2] ? actualValue.slice(0, -2) : actualValue.slice(0, -1); - if (compareBase64Mixed(actualValue, expectedValue)) return true; - } - return false; - } - const parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i; - function parseMetadata(metadata) { - const result = []; - let empty = true; - for (const token of metadata.split(' ')){ - empty = false; - const parsedToken = parseHashWithOptions.exec(token); - if (null === parsedToken || void 0 === parsedToken.groups || void 0 === parsedToken.groups.algo) continue; - const algorithm = parsedToken.groups.algo.toLowerCase(); - if (supportedHashes.includes(algorithm)) result.push(parsedToken.groups); - } - if (true === empty) return 'no metadata'; - return result; - } - function getStrongestMetadata(metadataList) { - let algorithm = metadataList[0].algo; - if ('5' === algorithm[3]) return algorithm; - for(let i = 1; i < metadataList.length; ++i){ - const metadata = metadataList[i]; - if ('5' === metadata.algo[3]) { - algorithm = 'sha512'; - break; - } - if ('3' !== algorithm[3]) { - if ('3' === metadata.algo[3]) algorithm = 'sha384'; - } - } - return algorithm; - } - function filterMetadataListByAlgorithm(metadataList, algorithm) { - if (1 === metadataList.length) return metadataList; - let pos = 0; - for(let i = 0; i < metadataList.length; ++i)if (metadataList[i].algo === algorithm) metadataList[pos++] = metadataList[i]; - metadataList.length = pos; - return metadataList; - } - function compareBase64Mixed(actualValue, expectedValue) { - if (actualValue.length !== expectedValue.length) return false; - for(let i = 0; i < actualValue.length; ++i)if (actualValue[i] !== expectedValue[i]) { - if ('+' === actualValue[i] && '-' === expectedValue[i] || '/' === actualValue[i] && '_' === expectedValue[i]) continue; - return false; - } - return true; - } - function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) {} - function sameOrigin(A, B) { - if (A.origin === B.origin && 'null' === A.origin) return true; - if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) return true; - return false; - } - function createDeferredPromise() { - let res; - let rej; - const promise = new Promise((resolve, reject)=>{ - res = resolve; - rej = reject; - }); - return { - promise, - resolve: res, - reject: rej - }; - } - function isAborted(fetchParams) { - return 'aborted' === fetchParams.controller.state; - } - function isCancelled(fetchParams) { - return 'aborted' === fetchParams.controller.state || 'terminated' === fetchParams.controller.state; - } - const normalizeMethodRecord = { - delete: 'DELETE', - DELETE: 'DELETE', - get: 'GET', - GET: 'GET', - head: 'HEAD', - HEAD: 'HEAD', - options: 'OPTIONS', - OPTIONS: 'OPTIONS', - post: 'POST', - POST: 'POST', - put: 'PUT', - PUT: 'PUT' - }; - Object.setPrototypeOf(normalizeMethodRecord, null); - function normalizeMethod(method) { - return normalizeMethodRecord[method.toLowerCase()] ?? method; - } - function serializeJavascriptValueToJSONString(value) { - const result = JSON.stringify(value); - if (void 0 === result) throw new TypeError('Value is not JSON serializable'); - assert('string' == typeof result); - return result; - } - const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); - function makeIterator(iterator, name, kind) { - const object = { - index: 0, - kind, - target: iterator - }; - const i = { - next () { - if (Object.getPrototypeOf(this) !== i) throw new TypeError(`'next' called on an object that does not implement interface ${name} Iterator.`); - const { index, kind, target } = object; - const values = target(); - const len = values.length; - if (index >= len) return { - value: void 0, - done: true - }; - const pair = values[index]; - object.index = index + 1; - return iteratorResult(pair, kind); - }, - [Symbol.toStringTag]: `${name} Iterator` - }; - Object.setPrototypeOf(i, esIteratorPrototype); - return Object.setPrototypeOf({}, i); - } - function iteratorResult(pair, kind) { - let result; - switch(kind){ - case 'key': - result = pair[0]; - break; - case 'value': - result = pair[1]; - break; - case 'key+value': - result = pair; - break; - } - return { - value: result, - done: false - }; - } - async function fullyReadBody(body, processBody, processBodyError) { - const successSteps = processBody; - const errorSteps = processBodyError; - let reader; - try { - reader = body.stream.getReader(); - } catch (e) { - errorSteps(e); - return; - } - try { - const result = await readAllBytes(reader); - successSteps(result); - } catch (e) { - errorSteps(e); - } - } - let ReadableStream1 = globalThis.ReadableStream; - function isReadableStreamLike(stream) { - if (!ReadableStream1) ReadableStream1 = __webpack_require__("stream/web").ReadableStream; - return stream instanceof ReadableStream1 || 'ReadableStream' === stream[Symbol.toStringTag] && 'function' == typeof stream.tee; - } - const MAXIMUM_ARGUMENT_LENGTH = 65535; - function isomorphicDecode(input) { - if (input.length < MAXIMUM_ARGUMENT_LENGTH) return String.fromCharCode(...input); - return input.reduce((previous, current)=>previous + String.fromCharCode(current), ''); - } - function readableStreamClose(controller) { - try { - controller.close(); - } catch (err) { - if (!err.message.includes('Controller is already closed')) throw err; - } - } - function isomorphicEncode(input) { - for(let i = 0; i < input.length; i++)assert(input.charCodeAt(i) <= 0xFF); - return input; - } - async function readAllBytes(reader) { - const bytes = []; - let byteLength = 0; - while(true){ - const { done, value: chunk } = await reader.read(); - if (done) return Buffer.concat(bytes, byteLength); - if (!isUint8Array(chunk)) throw new TypeError('Received non-Uint8Array chunk'); - bytes.push(chunk); - byteLength += chunk.length; - } - } - function urlIsLocal(url) { - assert('protocol' in url); - const protocol = url.protocol; - return 'about:' === protocol || 'blob:' === protocol || 'data:' === protocol; - } - function urlHasHttpsScheme(url) { - if ('string' == typeof url) return url.startsWith('https:'); - return 'https:' === url.protocol; - } - function urlIsHttpHttpsScheme(url) { - assert('protocol' in url); - const protocol = url.protocol; - return 'http:' === protocol || 'https:' === protocol; - } - const hasOwn = Object.hasOwn || ((dict, key)=>Object.prototype.hasOwnProperty.call(dict, key)); - module.exports = { - isAborted, - isCancelled, - createDeferredPromise, - ReadableStreamFrom, - toUSVString, - tryUpgradeRequestToAPotentiallyTrustworthyURL, - coarsenedSharedCurrentTime, - determineRequestsReferrer, - makePolicyContainer, - clonePolicyContainer, - appendFetchMetadata, - appendRequestOriginHeader, - TAOCheck, - corsCheck, - crossOriginResourcePolicyCheck, - createOpaqueTimingInfo, - setRequestReferrerPolicyOnRedirect, - isValidHTTPToken, - requestBadPort, - requestCurrentURL, - responseURL, - responseLocationURL, - isBlobLike, - isURLPotentiallyTrustworthy, - isValidReasonPhrase, - sameOrigin, - normalizeMethod, - serializeJavascriptValueToJSONString, - makeIterator, - isValidHeaderName, - isValidHeaderValue, - hasOwn, - isErrorLike, - fullyReadBody, - bytesMatch, - isReadableStreamLike, - readableStreamClose, - isomorphicEncode, - isomorphicDecode, - urlIsLocal, - urlHasHttpsScheme, - urlIsHttpHttpsScheme, - readAllBytes, - normalizeMethodRecord, - parseMetadata - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { types } = __webpack_require__("util"); - const { hasOwn, toUSVString } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/util.js"); - const webidl = {}; - webidl.converters = {}; - webidl.util = {}; - webidl.errors = {}; - webidl.errors.exception = function(message) { - return new TypeError(`${message.header}: ${message.message}`); - }; - webidl.errors.conversionFailed = function(context) { - const plural = 1 === context.types.length ? '' : ' one of'; - const message = `${context.argument} could not be converted to${plural}: ${context.types.join(', ')}.`; - return webidl.errors.exception({ - header: context.prefix, - message - }); - }; - webidl.errors.invalidArgument = function(context) { - return webidl.errors.exception({ - header: context.prefix, - message: `"${context.value}" is an invalid ${context.type}.` - }); - }; - webidl.brandCheck = function(V, I, opts) { - if (opts?.strict === false || V instanceof I) return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]; - throw new TypeError('Illegal invocation'); - }; - webidl.argumentLengthCheck = function({ length }, min, ctx) { - if (length < min) throw webidl.errors.exception({ - message: `${min} argument${1 !== min ? 's' : ''} required, but${length ? ' only' : ''} ${length} found.`, - ...ctx - }); - }; - webidl.illegalConstructor = function() { - throw webidl.errors.exception({ - header: 'TypeError', - message: 'Illegal constructor' - }); - }; - webidl.util.Type = function(V) { - switch(typeof V){ - case 'undefined': - return 'Undefined'; - case 'boolean': - return 'Boolean'; - case 'string': - return 'String'; - case 'symbol': - return 'Symbol'; - case 'number': - return 'Number'; - case 'bigint': - return 'BigInt'; - case 'function': - case 'object': - if (null === V) return 'Null'; - return 'Object'; - } - }; - webidl.util.ConvertToInt = function(V, bitLength, signedness, opts = {}) { - let upperBound; - let lowerBound; - if (64 === bitLength) { - upperBound = Math.pow(2, 53) - 1; - lowerBound = 'unsigned' === signedness ? 0 : Math.pow(-2, 53) + 1; - } else if ('unsigned' === signedness) { - lowerBound = 0; - upperBound = Math.pow(2, bitLength) - 1; - } else { - lowerBound = Math.pow(-2, bitLength) - 1; - upperBound = Math.pow(2, bitLength - 1) - 1; - } - let x = Number(V); - if (0 === x) x = 0; - if (true === opts.enforceRange) { - if (Number.isNaN(x) || x === 1 / 0 || x === -1 / 0) throw webidl.errors.exception({ - header: 'Integer conversion', - message: `Could not convert ${V} to an integer.` - }); - x = webidl.util.IntegerPart(x); - if (x < lowerBound || x > upperBound) throw webidl.errors.exception({ - header: 'Integer conversion', - message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` - }); - return x; - } - if (!Number.isNaN(x) && true === opts.clamp) { - x = Math.min(Math.max(x, lowerBound), upperBound); - x = Math.floor(x) % 2 === 0 ? Math.floor(x) : Math.ceil(x); - return x; - } - if (Number.isNaN(x) || 0 === x && Object.is(0, x) || x === 1 / 0 || x === -1 / 0) return 0; - x = webidl.util.IntegerPart(x); - x %= Math.pow(2, bitLength); - if ('signed' === signedness && x >= Math.pow(2, bitLength) - 1) return x - Math.pow(2, bitLength); - return x; - }; - webidl.util.IntegerPart = function(n) { - const r = Math.floor(Math.abs(n)); - if (n < 0) return -1 * r; - return r; - }; - webidl.sequenceConverter = function(converter) { - return (V)=>{ - if ('Object' !== webidl.util.Type(V)) throw webidl.errors.exception({ - header: 'Sequence', - message: `Value of type ${webidl.util.Type(V)} is not an Object.` - }); - const method = V?.[Symbol.iterator]?.(); - const seq = []; - if (void 0 === method || 'function' != typeof method.next) throw webidl.errors.exception({ - header: 'Sequence', - message: 'Object is not an iterator.' - }); - while(true){ - const { done, value } = method.next(); - if (done) break; - seq.push(converter(value)); - } - return seq; - }; - }; - webidl.recordConverter = function(keyConverter, valueConverter) { - return (O)=>{ - if ('Object' !== webidl.util.Type(O)) throw webidl.errors.exception({ - header: 'Record', - message: `Value of type ${webidl.util.Type(O)} is not an Object.` - }); - const result = {}; - if (!types.isProxy(O)) { - const keys = Object.keys(O); - for (const key of keys){ - const typedKey = keyConverter(key); - const typedValue = valueConverter(O[key]); - result[typedKey] = typedValue; - } - return result; - } - const keys = Reflect.ownKeys(O); - for (const key of keys){ - const desc = Reflect.getOwnPropertyDescriptor(O, key); - if (desc?.enumerable) { - const typedKey = keyConverter(key); - const typedValue = valueConverter(O[key]); - result[typedKey] = typedValue; - } - } - return result; - }; - }; - webidl.interfaceConverter = function(i) { - return (V, opts = {})=>{ - if (false !== opts.strict && !(V instanceof i)) throw webidl.errors.exception({ - header: i.name, - message: `Expected ${V} to be an instance of ${i.name}.` - }); - return V; - }; - }; - webidl.dictionaryConverter = function(converters) { - return (dictionary)=>{ - const type = webidl.util.Type(dictionary); - const dict = {}; - if ('Null' === type || 'Undefined' === type) return dict; - if ('Object' !== type) throw webidl.errors.exception({ - header: 'Dictionary', - message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` - }); - for (const options of converters){ - const { key, defaultValue, required, converter } = options; - if (true === required) { - if (!hasOwn(dictionary, key)) throw webidl.errors.exception({ - header: 'Dictionary', - message: `Missing required key "${key}".` - }); - } - let value = dictionary[key]; - const hasDefault = hasOwn(options, 'defaultValue'); - if (hasDefault && null !== value) value = value ?? defaultValue; - if (required || hasDefault || void 0 !== value) { - value = converter(value); - if (options.allowedValues && !options.allowedValues.includes(value)) throw webidl.errors.exception({ - header: 'Dictionary', - message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.` - }); - dict[key] = value; - } - } - return dict; - }; - }; - webidl.nullableConverter = function(converter) { - return (V)=>{ - if (null === V) return V; - return converter(V); - }; - }; - webidl.converters.DOMString = function(V, opts = {}) { - if (null === V && opts.legacyNullToEmptyString) return ''; - if ('symbol' == typeof V) throw new TypeError('Could not convert argument of type symbol to string.'); - return String(V); - }; - webidl.converters.ByteString = function(V) { - const x = webidl.converters.DOMString(V); - for(let index = 0; index < x.length; index++)if (x.charCodeAt(index) > 255) throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.`); - return x; - }; - webidl.converters.USVString = toUSVString; - webidl.converters.boolean = function(V) { - const x = Boolean(V); - return x; - }; - webidl.converters.any = function(V) { - return V; - }; - webidl.converters['long long'] = function(V) { - const x = webidl.util.ConvertToInt(V, 64, 'signed'); - return x; - }; - webidl.converters['unsigned long long'] = function(V) { - const x = webidl.util.ConvertToInt(V, 64, 'unsigned'); - return x; - }; - webidl.converters['unsigned long'] = function(V) { - const x = webidl.util.ConvertToInt(V, 32, 'unsigned'); - return x; - }; - webidl.converters['unsigned short'] = function(V, opts) { - const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts); - return x; - }; - webidl.converters.ArrayBuffer = function(V, opts = {}) { - if ('Object' !== webidl.util.Type(V) || !types.isAnyArrayBuffer(V)) throw webidl.errors.conversionFailed({ - prefix: `${V}`, - argument: `${V}`, - types: [ - 'ArrayBuffer' - ] - }); - if (false === opts.allowShared && types.isSharedArrayBuffer(V)) throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }); - return V; - }; - webidl.converters.TypedArray = function(V, T, opts = {}) { - if ('Object' !== webidl.util.Type(V) || !types.isTypedArray(V) || V.constructor.name !== T.name) throw webidl.errors.conversionFailed({ - prefix: `${T.name}`, - argument: `${V}`, - types: [ - T.name - ] - }); - if (false === opts.allowShared && types.isSharedArrayBuffer(V.buffer)) throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }); - return V; - }; - webidl.converters.DataView = function(V, opts = {}) { - if ('Object' !== webidl.util.Type(V) || !types.isDataView(V)) throw webidl.errors.exception({ - header: 'DataView', - message: 'Object is not a DataView.' - }); - if (false === opts.allowShared && types.isSharedArrayBuffer(V.buffer)) throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }); - return V; - }; - webidl.converters.BufferSource = function(V, opts = {}) { - if (types.isAnyArrayBuffer(V)) return webidl.converters.ArrayBuffer(V, opts); - if (types.isTypedArray(V)) return webidl.converters.TypedArray(V, V.constructor); - if (types.isDataView(V)) return webidl.converters.DataView(V, opts); - throw new TypeError(`Could not convert ${V} to a BufferSource.`); - }; - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.ByteString); - webidl.converters['sequence>'] = webidl.sequenceConverter(webidl.converters['sequence']); - webidl.converters['record'] = webidl.recordConverter(webidl.converters.ByteString, webidl.converters.ByteString); - module.exports = { - webidl - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/encoding.js" (module) { - "use strict"; - function getEncoding(label) { - if (!label) return 'failure'; - switch(label.trim().toLowerCase()){ - case 'unicode-1-1-utf-8': - case 'unicode11utf8': - case 'unicode20utf8': - case 'utf-8': - case 'utf8': - case 'x-unicode20utf8': - return 'UTF-8'; - case '866': - case 'cp866': - case 'csibm866': - case 'ibm866': - return 'IBM866'; - case 'csisolatin2': - case 'iso-8859-2': - case 'iso-ir-101': - case 'iso8859-2': - case 'iso88592': - case 'iso_8859-2': - case 'iso_8859-2:1987': - case 'l2': - case 'latin2': - return 'ISO-8859-2'; - case 'csisolatin3': - case 'iso-8859-3': - case 'iso-ir-109': - case 'iso8859-3': - case 'iso88593': - case 'iso_8859-3': - case 'iso_8859-3:1988': - case 'l3': - case 'latin3': - return 'ISO-8859-3'; - case 'csisolatin4': - case 'iso-8859-4': - case 'iso-ir-110': - case 'iso8859-4': - case 'iso88594': - case 'iso_8859-4': - case 'iso_8859-4:1988': - case 'l4': - case 'latin4': - return 'ISO-8859-4'; - case 'csisolatincyrillic': - case 'cyrillic': - case 'iso-8859-5': - case 'iso-ir-144': - case 'iso8859-5': - case 'iso88595': - case 'iso_8859-5': - case 'iso_8859-5:1988': - return 'ISO-8859-5'; - case 'arabic': - case 'asmo-708': - case 'csiso88596e': - case 'csiso88596i': - case 'csisolatinarabic': - case 'ecma-114': - case 'iso-8859-6': - case 'iso-8859-6-e': - case 'iso-8859-6-i': - case 'iso-ir-127': - case 'iso8859-6': - case 'iso88596': - case 'iso_8859-6': - case 'iso_8859-6:1987': - return 'ISO-8859-6'; - case 'csisolatingreek': - case 'ecma-118': - case 'elot_928': - case 'greek': - case 'greek8': - case 'iso-8859-7': - case 'iso-ir-126': - case 'iso8859-7': - case 'iso88597': - case 'iso_8859-7': - case 'iso_8859-7:1987': - case 'sun_eu_greek': - return 'ISO-8859-7'; - case 'csiso88598e': - case 'csisolatinhebrew': - case 'hebrew': - case 'iso-8859-8': - case 'iso-8859-8-e': - case 'iso-ir-138': - case 'iso8859-8': - case 'iso88598': - case 'iso_8859-8': - case 'iso_8859-8:1988': - case 'visual': - return 'ISO-8859-8'; - case 'csiso88598i': - case 'iso-8859-8-i': - case 'logical': - return 'ISO-8859-8-I'; - case 'csisolatin6': - case 'iso-8859-10': - case 'iso-ir-157': - case 'iso8859-10': - case 'iso885910': - case 'l6': - case 'latin6': - return 'ISO-8859-10'; - case 'iso-8859-13': - case 'iso8859-13': - case 'iso885913': - return 'ISO-8859-13'; - case 'iso-8859-14': - case 'iso8859-14': - case 'iso885914': - return 'ISO-8859-14'; - case 'csisolatin9': - case 'iso-8859-15': - case 'iso8859-15': - case 'iso885915': - case 'iso_8859-15': - case 'l9': - return 'ISO-8859-15'; - case 'iso-8859-16': - return 'ISO-8859-16'; - case 'cskoi8r': - case 'koi': - case 'koi8': - case 'koi8-r': - case 'koi8_r': - return 'KOI8-R'; - case 'koi8-ru': - case 'koi8-u': - return 'KOI8-U'; - case 'csmacintosh': - case 'mac': - case 'macintosh': - case 'x-mac-roman': - return 'macintosh'; - case 'iso-8859-11': - case 'iso8859-11': - case 'iso885911': - case 'tis-620': - case 'windows-874': - return 'windows-874'; - case 'cp1250': - case 'windows-1250': - case 'x-cp1250': - return 'windows-1250'; - case 'cp1251': - case 'windows-1251': - case 'x-cp1251': - return 'windows-1251'; - case 'ansi_x3.4-1968': - case 'ascii': - case 'cp1252': - case 'cp819': - case 'csisolatin1': - case 'ibm819': - case 'iso-8859-1': - case 'iso-ir-100': - case 'iso8859-1': - case 'iso88591': - case 'iso_8859-1': - case 'iso_8859-1:1987': - case 'l1': - case 'latin1': - case 'us-ascii': - case 'windows-1252': - case 'x-cp1252': - return 'windows-1252'; - case 'cp1253': - case 'windows-1253': - case 'x-cp1253': - return 'windows-1253'; - case 'cp1254': - case 'csisolatin5': - case 'iso-8859-9': - case 'iso-ir-148': - case 'iso8859-9': - case 'iso88599': - case 'iso_8859-9': - case 'iso_8859-9:1989': - case 'l5': - case 'latin5': - case 'windows-1254': - case 'x-cp1254': - return 'windows-1254'; - case 'cp1255': - case 'windows-1255': - case 'x-cp1255': - return 'windows-1255'; - case 'cp1256': - case 'windows-1256': - case 'x-cp1256': - return 'windows-1256'; - case 'cp1257': - case 'windows-1257': - case 'x-cp1257': - return 'windows-1257'; - case 'cp1258': - case 'windows-1258': - case 'x-cp1258': - return 'windows-1258'; - case 'x-mac-cyrillic': - case 'x-mac-ukrainian': - return 'x-mac-cyrillic'; - case 'chinese': - case 'csgb2312': - case 'csiso58gb231280': - case 'gb2312': - case 'gb_2312': - case 'gb_2312-80': - case 'gbk': - case 'iso-ir-58': - case 'x-gbk': - return 'GBK'; - case 'gb18030': - return 'gb18030'; - case 'big5': - case 'big5-hkscs': - case 'cn-big5': - case 'csbig5': - case 'x-x-big5': - return 'Big5'; - case 'cseucpkdfmtjapanese': - case 'euc-jp': - case 'x-euc-jp': - return 'EUC-JP'; - case 'csiso2022jp': - case 'iso-2022-jp': - return 'ISO-2022-JP'; - case 'csshiftjis': - case 'ms932': - case 'ms_kanji': - case 'shift-jis': - case 'shift_jis': - case 'sjis': - case 'windows-31j': - case 'x-sjis': - return 'Shift_JIS'; - case 'cseuckr': - case 'csksc56011987': - case 'euc-kr': - case 'iso-ir-149': - case 'korean': - case 'ks_c_5601-1987': - case 'ks_c_5601-1989': - case 'ksc5601': - case 'ksc_5601': - case 'windows-949': - return 'EUC-KR'; - case 'csiso2022kr': - case 'hz-gb-2312': - case 'iso-2022-cn': - case 'iso-2022-cn-ext': - case 'iso-2022-kr': - case 'replacement': - return 'replacement'; - case 'unicodefffe': - case 'utf-16be': - return 'UTF-16BE'; - case 'csunicode': - case 'iso-10646-ucs-2': - case 'ucs-2': - case 'unicode': - case 'unicodefeff': - case 'utf-16': - case 'utf-16le': - return 'UTF-16LE'; - case 'x-user-defined': - return 'x-user-defined'; - default: - return 'failure'; - } - } - module.exports = { - getEncoding - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/filereader.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { staticPropertyDescriptors, readOperation, fireAProgressEvent } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/util.js"); - const { kState, kError, kResult, kEvents, kAborted } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/symbols.js"); - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - class FileReader extends EventTarget { - constructor(){ - super(); - this[kState] = 'empty'; - this[kResult] = null; - this[kError] = null; - this[kEvents] = { - loadend: null, - error: null, - abort: null, - load: null, - progress: null, - loadstart: null - }; - } - readAsArrayBuffer(blob) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FileReader.readAsArrayBuffer' - }); - blob = webidl.converters.Blob(blob, { - strict: false - }); - readOperation(this, blob, 'ArrayBuffer'); - } - readAsBinaryString(blob) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FileReader.readAsBinaryString' - }); - blob = webidl.converters.Blob(blob, { - strict: false - }); - readOperation(this, blob, 'BinaryString'); - } - readAsText(blob, encoding) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FileReader.readAsText' - }); - blob = webidl.converters.Blob(blob, { - strict: false - }); - if (void 0 !== encoding) encoding = webidl.converters.DOMString(encoding); - readOperation(this, blob, 'Text', encoding); - } - readAsDataURL(blob) { - webidl.brandCheck(this, FileReader); - webidl.argumentLengthCheck(arguments, 1, { - header: 'FileReader.readAsDataURL' - }); - blob = webidl.converters.Blob(blob, { - strict: false - }); - readOperation(this, blob, 'DataURL'); - } - abort() { - if ('empty' === this[kState] || 'done' === this[kState]) { - this[kResult] = null; - return; - } - if ('loading' === this[kState]) { - this[kState] = 'done'; - this[kResult] = null; - } - this[kAborted] = true; - fireAProgressEvent('abort', this); - if ('loading' !== this[kState]) fireAProgressEvent('loadend', this); - } - get readyState() { - webidl.brandCheck(this, FileReader); - switch(this[kState]){ - case 'empty': - return this.EMPTY; - case 'loading': - return this.LOADING; - case 'done': - return this.DONE; - } - } - get result() { - webidl.brandCheck(this, FileReader); - return this[kResult]; - } - get error() { - webidl.brandCheck(this, FileReader); - return this[kError]; - } - get onloadend() { - webidl.brandCheck(this, FileReader); - return this[kEvents].loadend; - } - set onloadend(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].loadend) this.removeEventListener('loadend', this[kEvents].loadend); - if ('function' == typeof fn) { - this[kEvents].loadend = fn; - this.addEventListener('loadend', fn); - } else this[kEvents].loadend = null; - } - get onerror() { - webidl.brandCheck(this, FileReader); - return this[kEvents].error; - } - set onerror(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].error) this.removeEventListener('error', this[kEvents].error); - if ('function' == typeof fn) { - this[kEvents].error = fn; - this.addEventListener('error', fn); - } else this[kEvents].error = null; - } - get onloadstart() { - webidl.brandCheck(this, FileReader); - return this[kEvents].loadstart; - } - set onloadstart(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].loadstart) this.removeEventListener('loadstart', this[kEvents].loadstart); - if ('function' == typeof fn) { - this[kEvents].loadstart = fn; - this.addEventListener('loadstart', fn); - } else this[kEvents].loadstart = null; - } - get onprogress() { - webidl.brandCheck(this, FileReader); - return this[kEvents].progress; - } - set onprogress(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].progress) this.removeEventListener('progress', this[kEvents].progress); - if ('function' == typeof fn) { - this[kEvents].progress = fn; - this.addEventListener('progress', fn); - } else this[kEvents].progress = null; - } - get onload() { - webidl.brandCheck(this, FileReader); - return this[kEvents].load; - } - set onload(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].load) this.removeEventListener('load', this[kEvents].load); - if ('function' == typeof fn) { - this[kEvents].load = fn; - this.addEventListener('load', fn); - } else this[kEvents].load = null; - } - get onabort() { - webidl.brandCheck(this, FileReader); - return this[kEvents].abort; - } - set onabort(fn) { - webidl.brandCheck(this, FileReader); - if (this[kEvents].abort) this.removeEventListener('abort', this[kEvents].abort); - if ('function' == typeof fn) { - this[kEvents].abort = fn; - this.addEventListener('abort', fn); - } else this[kEvents].abort = null; - } - } - FileReader.EMPTY = FileReader.prototype.EMPTY = 0; - FileReader.LOADING = FileReader.prototype.LOADING = 1; - FileReader.DONE = FileReader.prototype.DONE = 2; - Object.defineProperties(FileReader.prototype, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors, - readAsArrayBuffer: kEnumerableProperty, - readAsBinaryString: kEnumerableProperty, - readAsText: kEnumerableProperty, - readAsDataURL: kEnumerableProperty, - abort: kEnumerableProperty, - readyState: kEnumerableProperty, - result: kEnumerableProperty, - error: kEnumerableProperty, - onloadstart: kEnumerableProperty, - onprogress: kEnumerableProperty, - onload: kEnumerableProperty, - onabort: kEnumerableProperty, - onerror: kEnumerableProperty, - onloadend: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'FileReader', - writable: false, - enumerable: false, - configurable: true - } - }); - Object.defineProperties(FileReader, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors - }); - module.exports = { - FileReader - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/progressevent.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const kState = Symbol('ProgressEvent state'); - class ProgressEvent extends Event { - constructor(type, eventInitDict = {}){ - type = webidl.converters.DOMString(type); - eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}); - super(type, eventInitDict); - this[kState] = { - lengthComputable: eventInitDict.lengthComputable, - loaded: eventInitDict.loaded, - total: eventInitDict.total - }; - } - get lengthComputable() { - webidl.brandCheck(this, ProgressEvent); - return this[kState].lengthComputable; - } - get loaded() { - webidl.brandCheck(this, ProgressEvent); - return this[kState].loaded; - } - get total() { - webidl.brandCheck(this, ProgressEvent); - return this[kState].total; - } - } - webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ - { - key: 'lengthComputable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'loaded', - converter: webidl.converters['unsigned long long'], - defaultValue: 0 - }, - { - key: 'total', - converter: webidl.converters['unsigned long long'], - defaultValue: 0 - }, - { - key: 'bubbles', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'cancelable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'composed', - converter: webidl.converters.boolean, - defaultValue: false - } - ]); - module.exports = { - ProgressEvent - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/symbols.js" (module) { - "use strict"; - module.exports = { - kState: Symbol('FileReader state'), - kResult: Symbol('FileReader result'), - kError: Symbol('FileReader error'), - kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'), - kEvents: Symbol('FileReader events'), - kAborted: Symbol('FileReader aborted') - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/util.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kState, kError, kResult, kAborted, kLastProgressEventFired } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/symbols.js"); - const { ProgressEvent } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/progressevent.js"); - const { getEncoding } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fileapi/encoding.js"); - const { DOMException: DOMException1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { serializeAMimeType, parseMIMEType } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { types } = __webpack_require__("util"); - const { StringDecoder } = __webpack_require__("string_decoder"); - const { btoa } = __webpack_require__("buffer"); - const staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false - }; - function readOperation(fr, blob, type, encodingName) { - if ('loading' === fr[kState]) throw new DOMException1('Invalid state', 'InvalidStateError'); - fr[kState] = 'loading'; - fr[kResult] = null; - fr[kError] = null; - const stream = blob.stream(); - const reader = stream.getReader(); - const bytes = []; - let chunkPromise = reader.read(); - let isFirstChunk = true; - (async ()=>{ - while(!fr[kAborted])try { - const { done, value } = await chunkPromise; - if (isFirstChunk && !fr[kAborted]) queueMicrotask(()=>{ - fireAProgressEvent('loadstart', fr); - }); - isFirstChunk = false; - if (!done && types.isUint8Array(value)) { - bytes.push(value); - if ((void 0 === fr[kLastProgressEventFired] || Date.now() - fr[kLastProgressEventFired] >= 50) && !fr[kAborted]) { - fr[kLastProgressEventFired] = Date.now(); - queueMicrotask(()=>{ - fireAProgressEvent('progress', fr); - }); - } - chunkPromise = reader.read(); - } else if (done) { - queueMicrotask(()=>{ - fr[kState] = 'done'; - try { - const result = packageData(bytes, type, blob.type, encodingName); - if (fr[kAborted]) return; - fr[kResult] = result; - fireAProgressEvent('load', fr); - } catch (error) { - fr[kError] = error; - fireAProgressEvent('error', fr); - } - if ('loading' !== fr[kState]) fireAProgressEvent('loadend', fr); - }); - break; - } - } catch (error) { - if (fr[kAborted]) return; - queueMicrotask(()=>{ - fr[kState] = 'done'; - fr[kError] = error; - fireAProgressEvent('error', fr); - if ('loading' !== fr[kState]) fireAProgressEvent('loadend', fr); - }); - break; - } - })(); - } - function fireAProgressEvent(e, reader) { - const event = new ProgressEvent(e, { - bubbles: false, - cancelable: false - }); - reader.dispatchEvent(event); - } - function packageData(bytes, type, mimeType, encodingName) { - switch(type){ - case 'DataURL': - { - let dataURL = 'data:'; - const parsed = parseMIMEType(mimeType || 'application/octet-stream'); - if ('failure' !== parsed) dataURL += serializeAMimeType(parsed); - dataURL += ';base64,'; - const decoder = new StringDecoder('latin1'); - for (const chunk of bytes)dataURL += btoa(decoder.write(chunk)); - dataURL += btoa(decoder.end()); - return dataURL; - } - case 'Text': - { - let encoding = 'failure'; - if (encodingName) encoding = getEncoding(encodingName); - if ('failure' === encoding && mimeType) { - const type = parseMIMEType(mimeType); - if ('failure' !== type) encoding = getEncoding(type.parameters.get('charset')); - } - if ('failure' === encoding) encoding = 'UTF-8'; - return decode(bytes, encoding); - } - case 'ArrayBuffer': - { - const sequence = combineByteSequences(bytes); - return sequence.buffer; - } - case 'BinaryString': - { - let binaryString = ''; - const decoder = new StringDecoder('latin1'); - for (const chunk of bytes)binaryString += decoder.write(chunk); - binaryString += decoder.end(); - return binaryString; - } - } - } - function decode(ioQueue, encoding) { - const bytes = combineByteSequences(ioQueue); - const BOMEncoding = BOMSniffing(bytes); - let slice = 0; - if (null !== BOMEncoding) { - encoding = BOMEncoding; - slice = 'UTF-8' === BOMEncoding ? 3 : 2; - } - const sliced = bytes.slice(slice); - return new TextDecoder(encoding).decode(sliced); - } - function BOMSniffing(ioQueue) { - const [a, b, c] = ioQueue; - if (0xEF === a && 0xBB === b && 0xBF === c) return 'UTF-8'; - if (0xFE === a && 0xFF === b) return 'UTF-16BE'; - if (0xFF === a && 0xFE === b) return 'UTF-16LE'; - return null; - } - function combineByteSequences(sequences) { - const size = sequences.reduce((a, b)=>a + b.byteLength, 0); - let offset = 0; - return sequences.reduce((a, b)=>{ - a.set(b, offset); - offset += b.byteLength; - return a; - }, new Uint8Array(size)); - } - module.exports = { - staticPropertyDescriptors, - readOperation, - fireAProgressEvent - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const globalDispatcher = Symbol.for('undici.globalDispatcher.1'); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const Agent = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/agent.js"); - if (void 0 === getGlobalDispatcher()) setGlobalDispatcher(new Agent()); - function setGlobalDispatcher(agent) { - if (!agent || 'function' != typeof agent.dispatch) throw new InvalidArgumentError('Argument agent must implement Agent'); - Object.defineProperty(globalThis, globalDispatcher, { - value: agent, - writable: true, - enumerable: false, - configurable: false - }); - } - function getGlobalDispatcher() { - return globalThis[globalDispatcher]; - } - module.exports = { - setGlobalDispatcher, - getGlobalDispatcher - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/DecoratorHandler.js" (module) { - "use strict"; - module.exports = class { - constructor(handler){ - this.handler = handler; - } - onConnect(...args) { - return this.handler.onConnect(...args); - } - onError(...args) { - return this.handler.onError(...args); - } - onUpgrade(...args) { - return this.handler.onUpgrade(...args); - } - onHeaders(...args) { - return this.handler.onHeaders(...args); - } - onData(...args) { - return this.handler.onData(...args); - } - onComplete(...args) { - return this.handler.onComplete(...args); - } - onBodySent(...args) { - return this.handler.onBodySent(...args); - } - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/RedirectHandler.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { kBodyUsed } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const assert = __webpack_require__("assert"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const EE = __webpack_require__("events"); - const redirectableStatusCodes = [ - 300, - 301, - 302, - 303, - 307, - 308 - ]; - const kBody = Symbol('body'); - class BodyAsyncIterable { - constructor(body){ - this[kBody] = body; - this[kBodyUsed] = false; - } - async *[Symbol.asyncIterator]() { - assert(!this[kBodyUsed], 'disturbed'); - this[kBodyUsed] = true; - yield* this[kBody]; - } - } - class RedirectHandler { - constructor(dispatch, maxRedirections, opts, handler){ - if (null != maxRedirections && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) throw new InvalidArgumentError('maxRedirections must be a positive number'); - util.validateHandler(handler, opts.method, opts.upgrade); - this.dispatch = dispatch; - this.location = null; - this.abort = null; - this.opts = { - ...opts, - maxRedirections: 0 - }; - this.maxRedirections = maxRedirections; - this.handler = handler; - this.history = []; - if (util.isStream(this.opts.body)) { - if (0 === util.bodyLength(this.opts.body)) this.opts.body.on('data', function() { - assert(false); - }); - if ('boolean' != typeof this.opts.body.readableDidRead) { - this.opts.body[kBodyUsed] = false; - EE.prototype.on.call(this.opts.body, 'data', function() { - this[kBodyUsed] = true; - }); - } - } else if (this.opts.body && 'function' == typeof this.opts.body.pipeTo) this.opts.body = new BodyAsyncIterable(this.opts.body); - else if (this.opts.body && 'string' != typeof this.opts.body && !ArrayBuffer.isView(this.opts.body) && util.isIterable(this.opts.body)) this.opts.body = new BodyAsyncIterable(this.opts.body); - } - onConnect(abort) { - this.abort = abort; - this.handler.onConnect(abort, { - history: this.history - }); - } - onUpgrade(statusCode, headers, socket) { - this.handler.onUpgrade(statusCode, headers, socket); - } - onError(error) { - this.handler.onError(error); - } - onHeaders(statusCode, headers, resume, statusText) { - this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body) ? null : parseLocation(statusCode, headers); - if (this.opts.origin) this.history.push(new URL(this.opts.path, this.opts.origin)); - if (!this.location) return this.handler.onHeaders(statusCode, headers, resume, statusText); - const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))); - const path = search ? `${pathname}${search}` : pathname; - this.opts.headers = cleanRequestHeaders(this.opts.headers, 303 === statusCode, this.opts.origin !== origin); - this.opts.path = path; - this.opts.origin = origin; - this.opts.maxRedirections = 0; - this.opts.query = null; - if (303 === statusCode && 'HEAD' !== this.opts.method) { - this.opts.method = 'GET'; - this.opts.body = null; - } - } - onData(chunk) { - if (!this.location) return this.handler.onData(chunk); - } - onComplete(trailers) { - if (this.location) { - this.location = null; - this.abort = null; - this.dispatch(this.opts, this); - } else this.handler.onComplete(trailers); - } - onBodySent(chunk) { - if (this.handler.onBodySent) this.handler.onBodySent(chunk); - } - } - function parseLocation(statusCode, headers) { - if (-1 === redirectableStatusCodes.indexOf(statusCode)) return null; - for(let i = 0; i < headers.length; i += 2)if ('location' === headers[i].toString().toLowerCase()) return headers[i + 1]; - } - function shouldRemoveHeader(header, removeContent, unknownOrigin) { - if (4 === header.length) return 'host' === util.headerNameToString(header); - if (removeContent && util.headerNameToString(header).startsWith('content-')) return true; - if (unknownOrigin && (13 === header.length || 6 === header.length || 19 === header.length)) { - const name = util.headerNameToString(header); - return 'authorization' === name || 'cookie' === name || 'proxy-authorization' === name; - } - return false; - } - function cleanRequestHeaders(headers, removeContent, unknownOrigin) { - const ret = []; - if (Array.isArray(headers)) { - for(let i = 0; i < headers.length; i += 2)if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) ret.push(headers[i], headers[i + 1]); - } else if (headers && 'object' == typeof headers) { - for (const key of Object.keys(headers))if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) ret.push(key, headers[key]); - } else assert(null == headers, 'headers must be an object or an array'); - return ret; - } - module.exports = RedirectHandler; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/RetryHandler.js" (module, __unused_rspack_exports, __webpack_require__) { - const assert = __webpack_require__("assert"); - const { kRetryHandlerDefaultRetry } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { RequestRetryError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { isDisturbed, parseHeaders, parseRangeHeader } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - function calculateRetryAfterHeader(retryAfter) { - const current = Date.now(); - const diff = new Date(retryAfter).getTime() - current; - return diff; - } - class RetryHandler { - constructor(opts, handlers){ - const { retryOptions, ...dispatchOpts } = opts; - const { retry: retryFn, maxRetries, maxTimeout, minTimeout, timeoutFactor, methods, errorCodes, retryAfter, statusCodes } = retryOptions ?? {}; - this.dispatch = handlers.dispatch; - this.handler = handlers.handler; - this.opts = dispatchOpts; - this.abort = null; - this.aborted = false; - this.retryOpts = { - retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry], - retryAfter: retryAfter ?? true, - maxTimeout: maxTimeout ?? 30000, - timeout: minTimeout ?? 500, - timeoutFactor: timeoutFactor ?? 2, - maxRetries: maxRetries ?? 5, - methods: methods ?? [ - 'GET', - 'HEAD', - 'OPTIONS', - 'PUT', - 'DELETE', - 'TRACE' - ], - statusCodes: statusCodes ?? [ - 500, - 502, - 503, - 504, - 429 - ], - errorCodes: errorCodes ?? [ - 'ECONNRESET', - 'ECONNREFUSED', - 'ENOTFOUND', - 'ENETDOWN', - 'ENETUNREACH', - 'EHOSTDOWN', - 'EHOSTUNREACH', - 'EPIPE' - ] - }; - this.retryCount = 0; - this.start = 0; - this.end = null; - this.etag = null; - this.resume = null; - this.handler.onConnect((reason)=>{ - this.aborted = true; - if (this.abort) this.abort(reason); - else this.reason = reason; - }); - } - onRequestSent() { - if (this.handler.onRequestSent) this.handler.onRequestSent(); - } - onUpgrade(statusCode, headers, socket) { - if (this.handler.onUpgrade) this.handler.onUpgrade(statusCode, headers, socket); - } - onConnect(abort) { - if (this.aborted) abort(this.reason); - else this.abort = abort; - } - onBodySent(chunk) { - if (this.handler.onBodySent) return this.handler.onBodySent(chunk); - } - static [kRetryHandlerDefaultRetry](err, { state, opts }, cb) { - const { statusCode, code, headers } = err; - const { method, retryOptions } = opts; - const { maxRetries, timeout, maxTimeout, timeoutFactor, statusCodes, errorCodes, methods } = retryOptions; - let { counter, currentTimeout } = state; - currentTimeout = null != currentTimeout && currentTimeout > 0 ? currentTimeout : timeout; - if (code && 'UND_ERR_REQ_RETRY' !== code && 'UND_ERR_SOCKET' !== code && !errorCodes.includes(code)) return void cb(err); - if (Array.isArray(methods) && !methods.includes(method)) return void cb(err); - if (null != statusCode && Array.isArray(statusCodes) && !statusCodes.includes(statusCode)) return void cb(err); - if (counter > maxRetries) return void cb(err); - let retryAfterHeader = null != headers && headers['retry-after']; - if (retryAfterHeader) { - retryAfterHeader = Number(retryAfterHeader); - retryAfterHeader = isNaN(retryAfterHeader) ? calculateRetryAfterHeader(retryAfterHeader) : 1e3 * retryAfterHeader; - } - const retryTimeout = retryAfterHeader > 0 ? Math.min(retryAfterHeader, maxTimeout) : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout); - state.currentTimeout = retryTimeout; - setTimeout(()=>cb(null), retryTimeout); - } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { - const headers = parseHeaders(rawHeaders); - this.retryCount += 1; - if (statusCode >= 300) { - this.abort(new RequestRetryError('Request failed', statusCode, { - headers, - count: this.retryCount - })); - return false; - } - if (null != this.resume) { - this.resume = null; - if (206 !== statusCode) return true; - const contentRange = parseRangeHeader(headers['content-range']); - if (!contentRange) { - this.abort(new RequestRetryError('Content-Range mismatch', statusCode, { - headers, - count: this.retryCount - })); - return false; - } - if (null != this.etag && this.etag !== headers.etag) { - this.abort(new RequestRetryError('ETag mismatch', statusCode, { - headers, - count: this.retryCount - })); - return false; - } - const { start, size, end = size } = contentRange; - assert(this.start === start, 'content-range mismatch'); - assert(null == this.end || this.end === end, 'content-range mismatch'); - this.resume = resume; - return true; - } - if (null == this.end) { - if (206 === statusCode) { - const range = parseRangeHeader(headers['content-range']); - if (null == range) return this.handler.onHeaders(statusCode, rawHeaders, resume, statusMessage); - const { start, size, end = size } = range; - assert(null != start && Number.isFinite(start) && this.start !== start, 'content-range mismatch'); - assert(Number.isFinite(start)); - assert(null != end && Number.isFinite(end) && this.end !== end, 'invalid content-length'); - this.start = start; - this.end = end; - } - if (null == this.end) { - const contentLength = headers['content-length']; - this.end = null != contentLength ? Number(contentLength) : null; - } - assert(Number.isFinite(this.start)); - assert(null == this.end || Number.isFinite(this.end), 'invalid content-length'); - this.resume = resume; - this.etag = null != headers.etag ? headers.etag : null; - return this.handler.onHeaders(statusCode, rawHeaders, resume, statusMessage); - } - const err = new RequestRetryError('Request failed', statusCode, { - headers, - count: this.retryCount - }); - this.abort(err); - return false; - } - onData(chunk) { - this.start += chunk.length; - return this.handler.onData(chunk); - } - onComplete(rawTrailers) { - this.retryCount = 0; - return this.handler.onComplete(rawTrailers); - } - onError(err) { - if (this.aborted || isDisturbed(this.opts.body)) return this.handler.onError(err); - this.retryOpts.retry(err, { - state: { - counter: this.retryCount++, - currentTimeout: this.retryAfter - }, - opts: { - retryOptions: this.retryOpts, - ...this.opts - } - }, onRetry.bind(this)); - function onRetry(err) { - if (null != err || this.aborted || isDisturbed(this.opts.body)) return this.handler.onError(err); - if (0 !== this.start) this.opts = { - ...this.opts, - headers: { - ...this.opts.headers, - range: `bytes=${this.start}-${this.end ?? ''}` - } - }; - try { - this.dispatch(this.opts, this); - } catch (err) { - this.handler.onError(err); - } - } - } - } - module.exports = RetryHandler; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/interceptor/redirectInterceptor.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const RedirectHandler = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/handler/RedirectHandler.js"); - function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) { - return (dispatch)=>function(opts, handler) { - const { maxRedirections = defaultMaxRedirections } = opts; - if (!maxRedirections) return dispatch(opts, handler); - const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler); - opts = { - ...opts, - maxRedirections: 0 - }; - return dispatch(opts, redirectHandler); - }; - } - module.exports = createRedirectInterceptor; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/constants.js" (__unused_rspack_module, exports1, __webpack_require__) { - "use strict"; - exports1.ww = exports1.oC = exports1.GP = exports1.e9 = exports1.l5 = exports1.Xc = exports1.M$ = exports1.N_ = exports1.pF = exports1.Y6 = exports1.Nh = exports1.CV = exports1.KO = exports1.XV = exports1.J8 = exports1.W4 = exports1.Wg = exports1.TYPE = exports1.ERROR = void 0; - const utils_1 = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/utils.js"); - (function(ERROR) { - ERROR[ERROR["OK"] = 0] = "OK"; - ERROR[ERROR["INTERNAL"] = 1] = "INTERNAL"; - ERROR[ERROR["STRICT"] = 2] = "STRICT"; - ERROR[ERROR["LF_EXPECTED"] = 3] = "LF_EXPECTED"; - ERROR[ERROR["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; - ERROR[ERROR["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; - ERROR[ERROR["INVALID_METHOD"] = 6] = "INVALID_METHOD"; - ERROR[ERROR["INVALID_URL"] = 7] = "INVALID_URL"; - ERROR[ERROR["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; - ERROR[ERROR["INVALID_VERSION"] = 9] = "INVALID_VERSION"; - ERROR[ERROR["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; - ERROR[ERROR["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; - ERROR[ERROR["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; - ERROR[ERROR["INVALID_STATUS"] = 13] = "INVALID_STATUS"; - ERROR[ERROR["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; - ERROR[ERROR["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; - ERROR[ERROR["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; - ERROR[ERROR["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; - ERROR[ERROR["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; - ERROR[ERROR["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; - ERROR[ERROR["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; - ERROR[ERROR["PAUSED"] = 21] = "PAUSED"; - ERROR[ERROR["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; - ERROR[ERROR["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; - ERROR[ERROR["USER"] = 24] = "USER"; - })(exports1.ERROR || (exports1.ERROR = {})); - (function(TYPE) { - TYPE[TYPE["BOTH"] = 0] = "BOTH"; - TYPE[TYPE["REQUEST"] = 1] = "REQUEST"; - TYPE[TYPE["RESPONSE"] = 2] = "RESPONSE"; - })(exports1.TYPE || (exports1.TYPE = {})); - (function(FLAGS) { - FLAGS[FLAGS["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; - FLAGS[FLAGS["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; - FLAGS[FLAGS["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; - FLAGS[FLAGS["CHUNKED"] = 8] = "CHUNKED"; - FLAGS[FLAGS["UPGRADE"] = 16] = "UPGRADE"; - FLAGS[FLAGS["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; - FLAGS[FLAGS["SKIPBODY"] = 64] = "SKIPBODY"; - FLAGS[FLAGS["TRAILING"] = 128] = "TRAILING"; - FLAGS[FLAGS["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; - })(exports1.Wg || (exports1.Wg = {})); - (function(LENIENT_FLAGS) { - LENIENT_FLAGS[LENIENT_FLAGS["HEADERS"] = 1] = "HEADERS"; - LENIENT_FLAGS[LENIENT_FLAGS["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; - LENIENT_FLAGS[LENIENT_FLAGS["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; - })(exports1.W4 || (exports1.W4 = {})); - var METHODS; - (function(METHODS) { - METHODS[METHODS["DELETE"] = 0] = "DELETE"; - METHODS[METHODS["GET"] = 1] = "GET"; - METHODS[METHODS["HEAD"] = 2] = "HEAD"; - METHODS[METHODS["POST"] = 3] = "POST"; - METHODS[METHODS["PUT"] = 4] = "PUT"; - METHODS[METHODS["CONNECT"] = 5] = "CONNECT"; - METHODS[METHODS["OPTIONS"] = 6] = "OPTIONS"; - METHODS[METHODS["TRACE"] = 7] = "TRACE"; - METHODS[METHODS["COPY"] = 8] = "COPY"; - METHODS[METHODS["LOCK"] = 9] = "LOCK"; - METHODS[METHODS["MKCOL"] = 10] = "MKCOL"; - METHODS[METHODS["MOVE"] = 11] = "MOVE"; - METHODS[METHODS["PROPFIND"] = 12] = "PROPFIND"; - METHODS[METHODS["PROPPATCH"] = 13] = "PROPPATCH"; - METHODS[METHODS["SEARCH"] = 14] = "SEARCH"; - METHODS[METHODS["UNLOCK"] = 15] = "UNLOCK"; - METHODS[METHODS["BIND"] = 16] = "BIND"; - METHODS[METHODS["REBIND"] = 17] = "REBIND"; - METHODS[METHODS["UNBIND"] = 18] = "UNBIND"; - METHODS[METHODS["ACL"] = 19] = "ACL"; - METHODS[METHODS["REPORT"] = 20] = "REPORT"; - METHODS[METHODS["MKACTIVITY"] = 21] = "MKACTIVITY"; - METHODS[METHODS["CHECKOUT"] = 22] = "CHECKOUT"; - METHODS[METHODS["MERGE"] = 23] = "MERGE"; - METHODS[METHODS["M-SEARCH"] = 24] = "M-SEARCH"; - METHODS[METHODS["NOTIFY"] = 25] = "NOTIFY"; - METHODS[METHODS["SUBSCRIBE"] = 26] = "SUBSCRIBE"; - METHODS[METHODS["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; - METHODS[METHODS["PATCH"] = 28] = "PATCH"; - METHODS[METHODS["PURGE"] = 29] = "PURGE"; - METHODS[METHODS["MKCALENDAR"] = 30] = "MKCALENDAR"; - METHODS[METHODS["LINK"] = 31] = "LINK"; - METHODS[METHODS["UNLINK"] = 32] = "UNLINK"; - METHODS[METHODS["SOURCE"] = 33] = "SOURCE"; - METHODS[METHODS["PRI"] = 34] = "PRI"; - METHODS[METHODS["DESCRIBE"] = 35] = "DESCRIBE"; - METHODS[METHODS["ANNOUNCE"] = 36] = "ANNOUNCE"; - METHODS[METHODS["SETUP"] = 37] = "SETUP"; - METHODS[METHODS["PLAY"] = 38] = "PLAY"; - METHODS[METHODS["PAUSE"] = 39] = "PAUSE"; - METHODS[METHODS["TEARDOWN"] = 40] = "TEARDOWN"; - METHODS[METHODS["GET_PARAMETER"] = 41] = "GET_PARAMETER"; - METHODS[METHODS["SET_PARAMETER"] = 42] = "SET_PARAMETER"; - METHODS[METHODS["REDIRECT"] = 43] = "REDIRECT"; - METHODS[METHODS["RECORD"] = 44] = "RECORD"; - METHODS[METHODS["FLUSH"] = 45] = "FLUSH"; - })(METHODS = exports1.J8 || (exports1.J8 = {})); - METHODS.DELETE, METHODS.GET, METHODS.HEAD, METHODS.POST, METHODS.PUT, METHODS.CONNECT, METHODS.OPTIONS, METHODS.TRACE, METHODS.COPY, METHODS.LOCK, METHODS.MKCOL, METHODS.MOVE, METHODS.PROPFIND, METHODS.PROPPATCH, METHODS.SEARCH, METHODS.UNLOCK, METHODS.BIND, METHODS.REBIND, METHODS.UNBIND, METHODS.ACL, METHODS.REPORT, METHODS.MKACTIVITY, METHODS.CHECKOUT, METHODS.MERGE, METHODS['M-SEARCH'], METHODS.NOTIFY, METHODS.SUBSCRIBE, METHODS.UNSUBSCRIBE, METHODS.PATCH, METHODS.PURGE, METHODS.MKCALENDAR, METHODS.LINK, METHODS.UNLINK, METHODS.PRI, METHODS.SOURCE; - METHODS.SOURCE; - METHODS.OPTIONS, METHODS.DESCRIBE, METHODS.ANNOUNCE, METHODS.SETUP, METHODS.PLAY, METHODS.PAUSE, METHODS.TEARDOWN, METHODS.GET_PARAMETER, METHODS.SET_PARAMETER, METHODS.REDIRECT, METHODS.RECORD, METHODS.FLUSH, METHODS.GET, METHODS.POST; - exports1.XV = utils_1.enumToMap(METHODS); - exports1.KO = {}; - Object.keys(exports1.XV).forEach((key)=>{ - if (/^H/.test(key)) exports1.KO[key] = exports1.XV[key]; - }); - (function(FINISH) { - FINISH[FINISH["SAFE"] = 0] = "SAFE"; - FINISH[FINISH["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; - FINISH[FINISH["UNSAFE"] = 2] = "UNSAFE"; - })(exports1.CV || (exports1.CV = {})); - exports1.Nh = []; - for(let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++){ - exports1.Nh.push(String.fromCharCode(i)); - exports1.Nh.push(String.fromCharCode(i + 0x20)); - } - exports1.Y6 = { - 0: 0, - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - 7: 7, - 8: 8, - 9: 9 - }; - exports1.pF = [ - '0', - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9' - ]; - exports1.N_ = exports1.Nh.concat(exports1.pF); - exports1.M$ = [ - '-', - '_', - '.', - '!', - '~', - '*', - '\'', - '(', - ')' - ]; - exports1.N_.concat(exports1.M$).concat([ - '%', - ';', - ':', - '&', - '=', - '+', - '$', - ',' - ]); - exports1.Xc = [ - '!', - '"', - '$', - '%', - '&', - '\'', - '(', - ')', - '*', - '+', - ',', - '-', - '.', - '/', - ':', - ';', - '<', - '=', - '>', - '@', - '[', - '\\', - ']', - '^', - '_', - '`', - '{', - '|', - '}', - '~' - ].concat(exports1.N_); - exports1.l5 = exports1.Xc.concat([ - '\t', - '\f' - ]); - for(let i = 0x80; i <= 0xff; i++)exports1.l5.push(i); - exports1.pF.concat([ - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'A', - 'B', - 'C', - 'D', - 'E', - 'F' - ]); - exports1.e9 = [ - '!', - '#', - '$', - '%', - '&', - '\'', - '*', - '+', - '-', - '.', - '^', - '_', - '`', - '|', - '~' - ].concat(exports1.N_); - exports1.e9.concat([ - ' ' - ]); - exports1.GP = [ - '\t' - ]; - for(let i = 32; i <= 255; i++)if (127 !== i) exports1.GP.push(i); - exports1.GP.filter((c)=>44 !== c); - exports1.oC = exports1.Y6; - exports1.oC; - var HEADER_STATE; - (function(HEADER_STATE) { - HEADER_STATE[HEADER_STATE["GENERAL"] = 0] = "GENERAL"; - HEADER_STATE[HEADER_STATE["CONNECTION"] = 1] = "CONNECTION"; - HEADER_STATE[HEADER_STATE["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; - HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; - HEADER_STATE[HEADER_STATE["UPGRADE"] = 4] = "UPGRADE"; - HEADER_STATE[HEADER_STATE["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; - HEADER_STATE[HEADER_STATE["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; - HEADER_STATE[HEADER_STATE["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; - HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; - })(HEADER_STATE = exports1.ww || (exports1.ww = {})); - HEADER_STATE.CONNECTION, HEADER_STATE.CONTENT_LENGTH, HEADER_STATE.CONNECTION, HEADER_STATE.TRANSFER_ENCODING, HEADER_STATE.UPGRADE; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/llhttp-wasm.js" (module) { - module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js" (module) { - module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/llhttp/utils.js" (__unused_rspack_module, exports1) { - "use strict"; - exports1.enumToMap = void 0; - function enumToMap(obj) { - const res = {}; - Object.keys(obj).forEach((key)=>{ - const value = obj[key]; - if ('number' == typeof value) res[key] = value; - }); - return res; - } - exports1.enumToMap = enumToMap; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-agent.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kClients } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const Agent = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/agent.js"); - const { kAgent, kMockAgentSet, kMockAgentGet, kDispatches, kIsMockActive, kNetConnect, kGetNetConnect, kOptions, kFactory } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js"); - const MockClient = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-client.js"); - const MockPool = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-pool.js"); - const { matchValue, buildMockOptions } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-utils.js"); - const { InvalidArgumentError, UndiciError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const Dispatcher = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher.js"); - const Pluralizer = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/pluralizer.js"); - const PendingInterceptorsFormatter = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js"); - class FakeWeakRef { - constructor(value){ - this.value = value; - } - deref() { - return this.value; - } - } - class MockAgent extends Dispatcher { - constructor(opts){ - super(opts); - this[kNetConnect] = true; - this[kIsMockActive] = true; - if (opts && opts.agent && 'function' != typeof opts.agent.dispatch) throw new InvalidArgumentError('Argument opts.agent must implement Agent'); - const agent = opts && opts.agent ? opts.agent : new Agent(opts); - this[kAgent] = agent; - this[kClients] = agent[kClients]; - this[kOptions] = buildMockOptions(opts); - } - get(origin) { - let dispatcher = this[kMockAgentGet](origin); - if (!dispatcher) { - dispatcher = this[kFactory](origin); - this[kMockAgentSet](origin, dispatcher); - } - return dispatcher; - } - dispatch(opts, handler) { - this.get(opts.origin); - return this[kAgent].dispatch(opts, handler); - } - async close() { - await this[kAgent].close(); - this[kClients].clear(); - } - deactivate() { - this[kIsMockActive] = false; - } - activate() { - this[kIsMockActive] = true; - } - enableNetConnect(matcher) { - if ('string' == typeof matcher || 'function' == typeof matcher || matcher instanceof RegExp) if (Array.isArray(this[kNetConnect])) this[kNetConnect].push(matcher); - else this[kNetConnect] = [ - matcher - ]; - else if (void 0 === matcher) this[kNetConnect] = true; - else throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.'); - } - disableNetConnect() { - this[kNetConnect] = false; - } - get isMockActive() { - return this[kIsMockActive]; - } - [kMockAgentSet](origin, dispatcher) { - this[kClients].set(origin, new FakeWeakRef(dispatcher)); - } - [kFactory](origin) { - const mockOptions = Object.assign({ - agent: this - }, this[kOptions]); - return this[kOptions] && 1 === this[kOptions].connections ? new MockClient(origin, mockOptions) : new MockPool(origin, mockOptions); - } - [kMockAgentGet](origin) { - const ref = this[kClients].get(origin); - if (ref) return ref.deref(); - if ('string' != typeof origin) { - const dispatcher = this[kFactory]('http://localhost:9999'); - this[kMockAgentSet](origin, dispatcher); - return dispatcher; - } - for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])){ - const nonExplicitDispatcher = nonExplicitRef.deref(); - if (nonExplicitDispatcher && 'string' != typeof keyMatcher && matchValue(keyMatcher, origin)) { - const dispatcher = this[kFactory](origin); - this[kMockAgentSet](origin, dispatcher); - dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]; - return dispatcher; - } - } - } - [kGetNetConnect]() { - return this[kNetConnect]; - } - pendingInterceptors() { - const mockAgentClients = this[kClients]; - return Array.from(mockAgentClients.entries()).flatMap(([origin, scope])=>scope.deref()[kDispatches].map((dispatch)=>({ - ...dispatch, - origin - }))).filter(({ pending })=>pending); - } - assertNoPendingInterceptors({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { - const pending = this.pendingInterceptors(); - if (0 === pending.length) return; - const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length); - throw new UndiciError(` -${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: - -${pendingInterceptorsFormatter.format(pending)} -`.trim()); - } - } - module.exports = MockAgent; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-client.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { promisify } = __webpack_require__("util"); - const Client = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/client.js"); - const { buildMockDispatch } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-utils.js"); - const { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js"); - const { MockInterceptor } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-interceptor.js"); - const Symbols = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - class MockClient extends Client { - constructor(origin, opts){ - super(origin, opts); - if (!opts || !opts.agent || 'function' != typeof opts.agent.dispatch) throw new InvalidArgumentError('Argument opts.agent must implement Agent'); - this[kMockAgent] = opts.agent; - this[kOrigin] = origin; - this[kDispatches] = []; - this[kConnected] = 1; - this[kOriginalDispatch] = this.dispatch; - this[kOriginalClose] = this.close.bind(this); - this.dispatch = buildMockDispatch.call(this); - this.close = this[kClose]; - } - get [Symbols.kConnected]() { - return this[kConnected]; - } - intercept(opts) { - return new MockInterceptor(opts, this[kDispatches]); - } - async [kClose]() { - await promisify(this[kOriginalClose])(); - this[kConnected] = 0; - this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); - } - } - module.exports = MockClient; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-errors.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { UndiciError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - class MockNotMatchedError extends UndiciError { - constructor(message){ - super(message); - Error.captureStackTrace(this, MockNotMatchedError); - this.name = 'MockNotMatchedError'; - this.message = message || 'The request does not match any registered mock dispatches'; - this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'; - } - } - module.exports = { - MockNotMatchedError - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-interceptor.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { getResponseData, buildKey, addMockDispatch } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-utils.js"); - const { kDispatches, kDispatchKey, kDefaultHeaders, kDefaultTrailers, kContentLength, kMockDispatch } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const { buildURL } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - class MockScope { - constructor(mockDispatch){ - this[kMockDispatch] = mockDispatch; - } - delay(waitInMs) { - if ('number' != typeof waitInMs || !Number.isInteger(waitInMs) || waitInMs <= 0) throw new InvalidArgumentError('waitInMs must be a valid integer > 0'); - this[kMockDispatch].delay = waitInMs; - return this; - } - persist() { - this[kMockDispatch].persist = true; - return this; - } - times(repeatTimes) { - if ('number' != typeof repeatTimes || !Number.isInteger(repeatTimes) || repeatTimes <= 0) throw new InvalidArgumentError('repeatTimes must be a valid integer > 0'); - this[kMockDispatch].times = repeatTimes; - return this; - } - } - class MockInterceptor { - constructor(opts, mockDispatches){ - if ('object' != typeof opts) throw new InvalidArgumentError('opts must be an object'); - if (void 0 === opts.path) throw new InvalidArgumentError('opts.path must be defined'); - if (void 0 === opts.method) opts.method = 'GET'; - if ('string' == typeof opts.path) if (opts.query) opts.path = buildURL(opts.path, opts.query); - else { - const parsedURL = new URL(opts.path, 'data://'); - opts.path = parsedURL.pathname + parsedURL.search; - } - if ('string' == typeof opts.method) opts.method = opts.method.toUpperCase(); - this[kDispatchKey] = buildKey(opts); - this[kDispatches] = mockDispatches; - this[kDefaultHeaders] = {}; - this[kDefaultTrailers] = {}; - this[kContentLength] = false; - } - createMockScopeDispatchData(statusCode, data, responseOptions = {}) { - const responseData = getResponseData(data); - const contentLength = this[kContentLength] ? { - 'content-length': responseData.length - } : {}; - const headers = { - ...this[kDefaultHeaders], - ...contentLength, - ...responseOptions.headers - }; - const trailers = { - ...this[kDefaultTrailers], - ...responseOptions.trailers - }; - return { - statusCode, - data, - headers, - trailers - }; - } - validateReplyParameters(statusCode, data, responseOptions) { - if (void 0 === statusCode) throw new InvalidArgumentError('statusCode must be defined'); - if (void 0 === data) throw new InvalidArgumentError('data must be defined'); - if ('object' != typeof responseOptions) throw new InvalidArgumentError('responseOptions must be an object'); - } - reply(replyData) { - if ('function' == typeof replyData) { - const wrappedDefaultsCallback = (opts)=>{ - const resolvedData = replyData(opts); - if ('object' != typeof resolvedData) throw new InvalidArgumentError('reply options callback must return an object'); - const { statusCode, data = '', responseOptions = {} } = resolvedData; - this.validateReplyParameters(statusCode, data, responseOptions); - return { - ...this.createMockScopeDispatchData(statusCode, data, responseOptions) - }; - }; - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback); - return new MockScope(newMockDispatch); - } - const [statusCode, data = '', responseOptions = {}] = [ - ...arguments - ]; - this.validateReplyParameters(statusCode, data, responseOptions); - const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions); - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData); - return new MockScope(newMockDispatch); - } - replyWithError(error) { - if (void 0 === error) throw new InvalidArgumentError('error must be defined'); - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { - error - }); - return new MockScope(newMockDispatch); - } - defaultReplyHeaders(headers) { - if (void 0 === headers) throw new InvalidArgumentError('headers must be defined'); - this[kDefaultHeaders] = headers; - return this; - } - defaultReplyTrailers(trailers) { - if (void 0 === trailers) throw new InvalidArgumentError('trailers must be defined'); - this[kDefaultTrailers] = trailers; - return this; - } - replyContentLength() { - this[kContentLength] = true; - return this; - } - } - module.exports.MockInterceptor = MockInterceptor; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-pool.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { promisify } = __webpack_require__("util"); - const Pool = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js"); - const { buildMockDispatch } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-utils.js"); - const { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js"); - const { MockInterceptor } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-interceptor.js"); - const Symbols = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - class MockPool extends Pool { - constructor(origin, opts){ - super(origin, opts); - if (!opts || !opts.agent || 'function' != typeof opts.agent.dispatch) throw new InvalidArgumentError('Argument opts.agent must implement Agent'); - this[kMockAgent] = opts.agent; - this[kOrigin] = origin; - this[kDispatches] = []; - this[kConnected] = 1; - this[kOriginalDispatch] = this.dispatch; - this[kOriginalClose] = this.close.bind(this); - this.dispatch = buildMockDispatch.call(this); - this.close = this[kClose]; - } - get [Symbols.kConnected]() { - return this[kConnected]; - } - intercept(opts) { - return new MockInterceptor(opts, this[kDispatches]); - } - async [kClose]() { - await promisify(this[kOriginalClose])(); - this[kConnected] = 0; - this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); - } - } - module.exports = MockPool; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js" (module) { - "use strict"; - module.exports = { - kAgent: Symbol('agent'), - kOptions: Symbol('options'), - kFactory: Symbol('factory'), - kDispatches: Symbol('dispatches'), - kDispatchKey: Symbol('dispatch key'), - kDefaultHeaders: Symbol('default headers'), - kDefaultTrailers: Symbol('default trailers'), - kContentLength: Symbol('content length'), - kMockAgent: Symbol('mock agent'), - kMockAgentSet: Symbol('mock agent set'), - kMockAgentGet: Symbol('mock agent get'), - kMockDispatch: Symbol('mock dispatch'), - kClose: Symbol('close'), - kOriginalClose: Symbol('original agent close'), - kOrigin: Symbol('origin'), - kIsMockActive: Symbol('is mock active'), - kNetConnect: Symbol('net connect'), - kGetNetConnect: Symbol('get net connect'), - kConnected: Symbol('connected') - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-utils.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { MockNotMatchedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-errors.js"); - const { kDispatches, kMockAgent, kOriginalDispatch, kOrigin, kGetNetConnect } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/mock-symbols.js"); - const { buildURL, nop } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { STATUS_CODES } = __webpack_require__("http"); - const { types: { isPromise } } = __webpack_require__("util"); - function matchValue(match, value) { - if ('string' == typeof match) return match === value; - if (match instanceof RegExp) return match.test(value); - if ('function' == typeof match) return true === match(value); - return false; - } - function lowerCaseEntries(headers) { - return Object.fromEntries(Object.entries(headers).map(([headerName, headerValue])=>[ - headerName.toLocaleLowerCase(), - headerValue - ])); - } - function getHeaderByName(headers, key) { - if (Array.isArray(headers)) { - for(let i = 0; i < headers.length; i += 2)if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) return headers[i + 1]; - return; - } - if ('function' == typeof headers.get) return headers.get(key); - return lowerCaseEntries(headers)[key.toLocaleLowerCase()]; - } - function buildHeadersFromArray(headers) { - const clone = headers.slice(); - const entries = []; - for(let index = 0; index < clone.length; index += 2)entries.push([ - clone[index], - clone[index + 1] - ]); - return Object.fromEntries(entries); - } - function matchHeaders(mockDispatch, headers) { - if ('function' == typeof mockDispatch.headers) { - if (Array.isArray(headers)) headers = buildHeadersFromArray(headers); - return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {}); - } - if (void 0 === mockDispatch.headers) return true; - if ('object' != typeof headers || 'object' != typeof mockDispatch.headers) return false; - for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)){ - const headerValue = getHeaderByName(headers, matchHeaderName); - if (!matchValue(matchHeaderValue, headerValue)) return false; - } - return true; - } - function safeUrl(path) { - if ('string' != typeof path) return path; - const pathSegments = path.split('?'); - if (2 !== pathSegments.length) return path; - const qp = new URLSearchParams(pathSegments.pop()); - qp.sort(); - return [ - ...pathSegments, - qp.toString() - ].join('?'); - } - function matchKey(mockDispatch, { path, method, body, headers }) { - const pathMatch = matchValue(mockDispatch.path, path); - const methodMatch = matchValue(mockDispatch.method, method); - const bodyMatch = void 0 !== mockDispatch.body ? matchValue(mockDispatch.body, body) : true; - const headersMatch = matchHeaders(mockDispatch, headers); - return pathMatch && methodMatch && bodyMatch && headersMatch; - } - function getResponseData(data) { - if (Buffer.isBuffer(data)) return data; - if ('object' == typeof data) return JSON.stringify(data); - return data.toString(); - } - function getMockDispatch(mockDispatches, key) { - const basePath = key.query ? buildURL(key.path, key.query) : key.path; - const resolvedPath = 'string' == typeof basePath ? safeUrl(basePath) : basePath; - let matchedMockDispatches = mockDispatches.filter(({ consumed })=>!consumed).filter(({ path })=>matchValue(safeUrl(path), resolvedPath)); - if (0 === matchedMockDispatches.length) throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`); - matchedMockDispatches = matchedMockDispatches.filter(({ method })=>matchValue(method, key.method)); - if (0 === matchedMockDispatches.length) throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`); - matchedMockDispatches = matchedMockDispatches.filter(({ body })=>void 0 !== body ? matchValue(body, key.body) : true); - if (0 === matchedMockDispatches.length) throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`); - matchedMockDispatches = matchedMockDispatches.filter((mockDispatch)=>matchHeaders(mockDispatch, key.headers)); - if (0 === matchedMockDispatches.length) throw new MockNotMatchedError(`Mock dispatch not matched for headers '${'object' == typeof key.headers ? JSON.stringify(key.headers) : key.headers}'`); - return matchedMockDispatches[0]; - } - function addMockDispatch(mockDispatches, key, data) { - const baseData = { - timesInvoked: 0, - times: 1, - persist: false, - consumed: false - }; - const replyData = 'function' == typeof data ? { - callback: data - } : { - ...data - }; - const newMockDispatch = { - ...baseData, - ...key, - pending: true, - data: { - error: null, - ...replyData - } - }; - mockDispatches.push(newMockDispatch); - return newMockDispatch; - } - function deleteMockDispatch(mockDispatches, key) { - const index = mockDispatches.findIndex((dispatch)=>{ - if (!dispatch.consumed) return false; - return matchKey(dispatch, key); - }); - if (-1 !== index) mockDispatches.splice(index, 1); - } - function buildKey(opts) { - const { path, method, body, headers, query } = opts; - return { - path, - method, - body, - headers, - query - }; - } - function generateKeyValues(data) { - return Object.entries(data).reduce((keyValuePairs, [key, value])=>[ - ...keyValuePairs, - Buffer.from(`${key}`), - Array.isArray(value) ? value.map((x)=>Buffer.from(`${x}`)) : Buffer.from(`${value}`) - ], []); - } - function getStatusText(statusCode) { - return STATUS_CODES[statusCode] || 'unknown'; - } - async function getResponse(body) { - const buffers = []; - for await (const data of body)buffers.push(data); - return Buffer.concat(buffers).toString('utf8'); - } - function mockDispatch(opts, handler) { - const key = buildKey(opts); - const mockDispatch = getMockDispatch(this[kDispatches], key); - mockDispatch.timesInvoked++; - if (mockDispatch.data.callback) mockDispatch.data = { - ...mockDispatch.data, - ...mockDispatch.data.callback(opts) - }; - const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch; - const { timesInvoked, times } = mockDispatch; - mockDispatch.consumed = !persist && timesInvoked >= times; - mockDispatch.pending = timesInvoked < times; - if (null !== error) { - deleteMockDispatch(this[kDispatches], key); - handler.onError(error); - return true; - } - if ('number' == typeof delay && delay > 0) setTimeout(()=>{ - handleReply(this[kDispatches]); - }, delay); - else handleReply(this[kDispatches]); - function handleReply(mockDispatches, _data = data) { - const optsHeaders = Array.isArray(opts.headers) ? buildHeadersFromArray(opts.headers) : opts.headers; - const body = 'function' == typeof _data ? _data({ - ...opts, - headers: optsHeaders - }) : _data; - if (isPromise(body)) return void body.then((newData)=>handleReply(mockDispatches, newData)); - const responseData = getResponseData(body); - const responseHeaders = generateKeyValues(headers); - const responseTrailers = generateKeyValues(trailers); - handler.abort = nop; - handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode)); - handler.onData(Buffer.from(responseData)); - handler.onComplete(responseTrailers); - deleteMockDispatch(mockDispatches, key); - } - function resume() {} - return true; - } - function buildMockDispatch() { - const agent = this[kMockAgent]; - const origin = this[kOrigin]; - const originalDispatch = this[kOriginalDispatch]; - return function(opts, handler) { - if (agent.isMockActive) try { - mockDispatch.call(this, opts, handler); - } catch (error) { - if (error instanceof MockNotMatchedError) { - const netConnect = agent[kGetNetConnect](); - if (false === netConnect) throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`); - if (checkNetConnect(netConnect, origin)) originalDispatch.call(this, opts, handler); - else throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`); - } else throw error; - } - else originalDispatch.call(this, opts, handler); - }; - } - function checkNetConnect(netConnect, origin) { - const url = new URL(origin); - if (true === netConnect) return true; - if (Array.isArray(netConnect) && netConnect.some((matcher)=>matchValue(matcher, url.host))) return true; - return false; - } - function buildMockOptions(opts) { - if (opts) { - const { agent, ...mockOptions } = opts; - return mockOptions; - } - } - module.exports = { - getResponseData, - getMockDispatch, - addMockDispatch, - deleteMockDispatch, - buildKey, - generateKeyValues, - matchValue, - getResponse, - getStatusText, - mockDispatch, - buildMockDispatch, - checkNetConnect, - buildMockOptions, - getHeaderByName - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Transform } = __webpack_require__("stream"); - const { Console } = __webpack_require__("console"); - module.exports = class { - constructor({ disableColors } = {}){ - this.transform = new Transform({ - transform (chunk, _enc, cb) { - cb(null, chunk); - } - }); - this.logger = new Console({ - stdout: this.transform, - inspectOptions: { - colors: !disableColors && !process.env.CI - } - }); - } - format(pendingInterceptors) { - const withPrettyHeaders = pendingInterceptors.map(({ method, path, data: { statusCode }, persist, times, timesInvoked, origin })=>({ - Method: method, - Origin: origin, - Path: path, - 'Status code': statusCode, - Persistent: persist ? '✅' : '❌', - Invocations: timesInvoked, - Remaining: persist ? 1 / 0 : times - timesInvoked - })); - this.logger.table(withPrettyHeaders); - return this.transform.read().toString(); - } - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/mock/pluralizer.js" (module) { - "use strict"; - const singulars = { - pronoun: 'it', - is: 'is', - was: 'was', - this: 'this' - }; - const plurals = { - pronoun: 'they', - is: 'are', - was: 'were', - this: 'these' - }; - module.exports = class { - constructor(singular, plural){ - this.singular = singular; - this.plural = plural; - } - pluralize(count) { - const one = 1 === count; - const keys = one ? singulars : plurals; - const noun = one ? this.singular : this.plural; - return { - ...keys, - count, - noun - }; - } - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/node/fixed-queue.js" (module) { - "use strict"; - const kSize = 2048; - const kMask = kSize - 1; - class FixedCircularBuffer { - constructor(){ - this.bottom = 0; - this.top = 0; - this.list = new Array(kSize); - this.next = null; - } - isEmpty() { - return this.top === this.bottom; - } - isFull() { - return (this.top + 1 & kMask) === this.bottom; - } - push(data) { - this.list[this.top] = data; - this.top = this.top + 1 & kMask; - } - shift() { - const nextItem = this.list[this.bottom]; - if (void 0 === nextItem) return null; - this.list[this.bottom] = void 0; - this.bottom = this.bottom + 1 & kMask; - return nextItem; - } - } - module.exports = class { - constructor(){ - this.head = this.tail = new FixedCircularBuffer(); - } - isEmpty() { - return this.head.isEmpty(); - } - push(data) { - if (this.head.isFull()) this.head = this.head.next = new FixedCircularBuffer(); - this.head.push(data); - } - shift() { - const tail = this.tail; - const next = tail.shift(); - if (tail.isEmpty() && null !== tail.next) this.tail = tail.next; - return next; - } - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool-base.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const DispatcherBase = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher-base.js"); - const FixedQueue = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/node/fixed-queue.js"); - const { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const PoolStats = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool-stats.js"); - const kClients = Symbol('clients'); - const kNeedDrain = Symbol('needDrain'); - const kQueue = Symbol('queue'); - const kClosedResolve = Symbol('closed resolve'); - const kOnDrain = Symbol('onDrain'); - const kOnConnect = Symbol('onConnect'); - const kOnDisconnect = Symbol('onDisconnect'); - const kOnConnectionError = Symbol('onConnectionError'); - const kGetDispatcher = Symbol('get dispatcher'); - const kAddClient = Symbol('add client'); - const kRemoveClient = Symbol('remove client'); - const kStats = Symbol('stats'); - class PoolBase extends DispatcherBase { - constructor(){ - super(); - this[kQueue] = new FixedQueue(); - this[kClients] = []; - this[kQueued] = 0; - const pool = this; - this[kOnDrain] = function(origin, targets) { - const queue = pool[kQueue]; - let needDrain = false; - while(!needDrain){ - const item = queue.shift(); - if (!item) break; - pool[kQueued]--; - needDrain = !this.dispatch(item.opts, item.handler); - } - this[kNeedDrain] = needDrain; - if (!this[kNeedDrain] && pool[kNeedDrain]) { - pool[kNeedDrain] = false; - pool.emit('drain', origin, [ - pool, - ...targets - ]); - } - if (pool[kClosedResolve] && queue.isEmpty()) Promise.all(pool[kClients].map((c)=>c.close())).then(pool[kClosedResolve]); - }; - this[kOnConnect] = (origin, targets)=>{ - pool.emit('connect', origin, [ - pool, - ...targets - ]); - }; - this[kOnDisconnect] = (origin, targets, err)=>{ - pool.emit('disconnect', origin, [ - pool, - ...targets - ], err); - }; - this[kOnConnectionError] = (origin, targets, err)=>{ - pool.emit('connectionError', origin, [ - pool, - ...targets - ], err); - }; - this[kStats] = new PoolStats(this); - } - get [kBusy]() { - return this[kNeedDrain]; - } - get [kConnected]() { - return this[kClients].filter((client)=>client[kConnected]).length; - } - get [kFree]() { - return this[kClients].filter((client)=>client[kConnected] && !client[kNeedDrain]).length; - } - get [kPending]() { - let ret = this[kQueued]; - for (const { [kPending]: pending } of this[kClients])ret += pending; - return ret; - } - get [kRunning]() { - let ret = 0; - for (const { [kRunning]: running } of this[kClients])ret += running; - return ret; - } - get [kSize]() { - let ret = this[kQueued]; - for (const { [kSize]: size } of this[kClients])ret += size; - return ret; - } - get stats() { - return this[kStats]; - } - async [kClose]() { - if (this[kQueue].isEmpty()) return Promise.all(this[kClients].map((c)=>c.close())); - return new Promise((resolve)=>{ - this[kClosedResolve] = resolve; - }); - } - async [kDestroy](err) { - while(true){ - const item = this[kQueue].shift(); - if (!item) break; - item.handler.onError(err); - } - return Promise.all(this[kClients].map((c)=>c.destroy(err))); - } - [kDispatch](opts, handler) { - const dispatcher = this[kGetDispatcher](); - if (dispatcher) { - if (!dispatcher.dispatch(opts, handler)) { - dispatcher[kNeedDrain] = true; - this[kNeedDrain] = !this[kGetDispatcher](); - } - } else { - this[kNeedDrain] = true; - this[kQueue].push({ - opts, - handler - }); - this[kQueued]++; - } - return !this[kNeedDrain]; - } - [kAddClient](client) { - client.on('drain', this[kOnDrain]).on('connect', this[kOnConnect]).on('disconnect', this[kOnDisconnect]).on('connectionError', this[kOnConnectionError]); - this[kClients].push(client); - if (this[kNeedDrain]) process.nextTick(()=>{ - if (this[kNeedDrain]) this[kOnDrain](client[kUrl], [ - this, - client - ]); - }); - return this; - } - [kRemoveClient](client) { - client.close(()=>{ - const idx = this[kClients].indexOf(client); - if (-1 !== idx) this[kClients].splice(idx, 1); - }); - this[kNeedDrain] = this[kClients].some((dispatcher)=>!dispatcher[kNeedDrain] && true !== dispatcher.closed && true !== dispatcher.destroyed); - } - } - module.exports = { - PoolBase, - kClients, - kNeedDrain, - kAddClient, - kRemoveClient, - kGetDispatcher - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool-stats.js" (module, __unused_rspack_exports, __webpack_require__) { - const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const kPool = Symbol('pool'); - class PoolStats { - constructor(pool){ - this[kPool] = pool; - } - get connected() { - return this[kPool][kConnected]; - } - get free() { - return this[kPool][kFree]; - } - get pending() { - return this[kPool][kPending]; - } - get queued() { - return this[kPool][kQueued]; - } - get running() { - return this[kPool][kRunning]; - } - get size() { - return this[kPool][kSize]; - } - } - module.exports = PoolStats; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { PoolBase, kClients, kNeedDrain, kAddClient, kGetDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool-base.js"); - const Client = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/client.js"); - const { InvalidArgumentError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const util = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { kUrl, kInterceptors } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const buildConnector = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/connect.js"); - const kOptions = Symbol('options'); - const kConnections = Symbol('connections'); - const kFactory = Symbol('factory'); - function defaultFactory(origin, opts) { - return new Client(origin, opts); - } - class Pool extends PoolBase { - constructor(origin, { connections, factory = defaultFactory, connect, connectTimeout, tls, maxCachedSessions, socketPath, autoSelectFamily, autoSelectFamilyAttemptTimeout, allowH2, ...options } = {}){ - super(); - if (null != connections && (!Number.isFinite(connections) || connections < 0)) throw new InvalidArgumentError('invalid connections'); - if ('function' != typeof factory) throw new InvalidArgumentError('factory must be a function.'); - if (null != connect && 'function' != typeof connect && 'object' != typeof connect) throw new InvalidArgumentError('connect must be a function or an object'); - if ('function' != typeof connect) connect = buildConnector({ - ...tls, - maxCachedSessions, - allowH2, - socketPath, - timeout: connectTimeout, - ...util.nodeHasAutoSelectFamily && autoSelectFamily ? { - autoSelectFamily, - autoSelectFamilyAttemptTimeout - } : void 0, - ...connect - }); - this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool) ? options.interceptors.Pool : []; - this[kConnections] = connections || null; - this[kUrl] = util.parseOrigin(origin); - this[kOptions] = { - ...util.deepClone(options), - connect, - allowH2 - }; - this[kOptions].interceptors = options.interceptors ? { - ...options.interceptors - } : void 0; - this[kFactory] = factory; - this.on('connectionError', (origin, targets, error)=>{ - for (const target of targets){ - const idx = this[kClients].indexOf(target); - if (-1 !== idx) this[kClients].splice(idx, 1); - } - }); - } - [kGetDispatcher]() { - let dispatcher = this[kClients].find((dispatcher)=>!dispatcher[kNeedDrain]); - if (dispatcher) return dispatcher; - if (!this[kConnections] || this[kClients].length < this[kConnections]) { - dispatcher = this[kFactory](this[kUrl], this[kOptions]); - this[kAddClient](dispatcher); - } - return dispatcher; - } - } - module.exports = Pool; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/proxy-agent.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kProxy, kClose, kDestroy, kInterceptors } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const { URL: URL1 } = __webpack_require__("url"); - const Agent = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/agent.js"); - const Pool = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/pool.js"); - const DispatcherBase = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/dispatcher-base.js"); - const { InvalidArgumentError, RequestAbortedError } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/errors.js"); - const buildConnector = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/connect.js"); - const kAgent = Symbol('proxy agent'); - const kClient = Symbol('proxy client'); - const kProxyHeaders = Symbol('proxy headers'); - const kRequestTls = Symbol('request tls settings'); - const kProxyTls = Symbol('proxy tls settings'); - const kConnectEndpoint = Symbol('connect endpoint function'); - function defaultProtocolPort(protocol) { - return 'https:' === protocol ? 443 : 80; - } - function buildProxyOptions(opts) { - if ('string' == typeof opts) opts = { - uri: opts - }; - if (!opts || !opts.uri) throw new InvalidArgumentError('Proxy opts.uri is mandatory'); - return { - uri: opts.uri, - protocol: opts.protocol || 'https' - }; - } - function defaultFactory(origin, opts) { - return new Pool(origin, opts); - } - class ProxyAgent extends DispatcherBase { - constructor(opts){ - super(opts); - this[kProxy] = buildProxyOptions(opts); - this[kAgent] = new Agent(opts); - this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) ? opts.interceptors.ProxyAgent : []; - if ('string' == typeof opts) opts = { - uri: opts - }; - if (!opts || !opts.uri) throw new InvalidArgumentError('Proxy opts.uri is mandatory'); - const { clientFactory = defaultFactory } = opts; - if ('function' != typeof clientFactory) throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.'); - this[kRequestTls] = opts.requestTls; - this[kProxyTls] = opts.proxyTls; - this[kProxyHeaders] = opts.headers || {}; - const resolvedUrl = new URL1(opts.uri); - const { origin, port, host, username, password } = resolvedUrl; - if (opts.auth && opts.token) throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token'); - if (opts.auth) this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`; - else if (opts.token) this[kProxyHeaders]['proxy-authorization'] = opts.token; - else if (username && password) this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}`; - const connect = buildConnector({ - ...opts.proxyTls - }); - this[kConnectEndpoint] = buildConnector({ - ...opts.requestTls - }); - this[kClient] = clientFactory(resolvedUrl, { - connect - }); - this[kAgent] = new Agent({ - ...opts, - connect: async (opts, callback)=>{ - let requestedHost = opts.host; - if (!opts.port) requestedHost += `:${defaultProtocolPort(opts.protocol)}`; - try { - const { socket, statusCode } = await this[kClient].connect({ - origin, - port, - path: requestedHost, - signal: opts.signal, - headers: { - ...this[kProxyHeaders], - host - } - }); - if (200 !== statusCode) { - socket.on('error', ()=>{}).destroy(); - callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)); - } - if ('https:' !== opts.protocol) return void callback(null, socket); - let servername; - servername = this[kRequestTls] ? this[kRequestTls].servername : opts.servername; - this[kConnectEndpoint]({ - ...opts, - servername, - httpSocket: socket - }, callback); - } catch (err) { - callback(err); - } - } - }); - } - dispatch(opts, handler) { - const { host } = new URL1(opts.origin); - const headers = buildHeaders(opts.headers); - throwIfProxyAuthIsSent(headers); - return this[kAgent].dispatch({ - ...opts, - headers: { - ...headers, - host - } - }, handler); - } - async [kClose]() { - await this[kAgent].close(); - await this[kClient].close(); - } - async [kDestroy]() { - await this[kAgent].destroy(); - await this[kClient].destroy(); - } - } - function buildHeaders(headers) { - if (Array.isArray(headers)) { - const headersPair = {}; - for(let i = 0; i < headers.length; i += 2)headersPair[headers[i]] = headers[i + 1]; - return headersPair; - } - return headers; - } - function throwIfProxyAuthIsSent(headers) { - const existProxyAuth = headers && Object.keys(headers).find((key)=>'proxy-authorization' === key.toLowerCase()); - if (existProxyAuth) throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor'); - } - module.exports = ProxyAgent; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/timers.js" (module) { - "use strict"; - let fastNow = Date.now(); - let fastNowTimeout; - const fastTimers = []; - function onTimeout() { - fastNow = Date.now(); - let len = fastTimers.length; - let idx = 0; - while(idx < len){ - const timer = fastTimers[idx]; - if (0 === timer.state) timer.state = fastNow + timer.delay; - else if (timer.state > 0 && fastNow >= timer.state) { - timer.state = -1; - timer.callback(timer.opaque); - } - if (-1 === timer.state) { - timer.state = -2; - if (idx !== len - 1) fastTimers[idx] = fastTimers.pop(); - else fastTimers.pop(); - len -= 1; - } else idx += 1; - } - if (fastTimers.length > 0) refreshTimeout(); - } - function refreshTimeout() { - if (fastNowTimeout && fastNowTimeout.refresh) fastNowTimeout.refresh(); - else { - clearTimeout(fastNowTimeout); - fastNowTimeout = setTimeout(onTimeout, 1e3); - if (fastNowTimeout.unref) fastNowTimeout.unref(); - } - } - class Timeout { - constructor(callback, delay, opaque){ - this.callback = callback; - this.delay = delay; - this.opaque = opaque; - this.state = -2; - this.refresh(); - } - refresh() { - if (-2 === this.state) { - fastTimers.push(this); - if (!fastNowTimeout || 1 === fastTimers.length) refreshTimeout(); - } - this.state = 0; - } - clear() { - this.state = -1; - } - } - module.exports = { - setTimeout (callback, delay, opaque) { - return delay < 1e3 ? setTimeout(callback, delay, opaque) : new Timeout(callback, delay, opaque); - }, - clearTimeout (timeout) { - if (timeout instanceof Timeout) timeout.clear(); - else clearTimeout(timeout); - } - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/connection.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const diagnosticsChannel = __webpack_require__("diagnostics_channel"); - const { uid, states } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js"); - const { kReadyState, kSentClose, kByteParser, kReceivedClose } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/symbols.js"); - const { fireEvent, failWebsocketConnection } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/util.js"); - const { CloseEvent } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/events.js"); - const { makeRequest } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/request.js"); - const { fetching } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/index.js"); - const { Headers } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/headers.js"); - const { getGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js"); - const { kHeadersList } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/symbols.js"); - const channels = {}; - channels.open = diagnosticsChannel.channel('undici:websocket:open'); - channels.close = diagnosticsChannel.channel('undici:websocket:close'); - channels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error'); - let crypto; - try { - crypto = __webpack_require__("crypto"); - } catch {} - function establishWebSocketConnection(url, protocols, ws, onEstablish, options) { - const requestURL = url; - requestURL.protocol = 'ws:' === url.protocol ? 'http:' : 'https:'; - const request = makeRequest({ - urlList: [ - requestURL - ], - serviceWorkers: 'none', - referrer: 'no-referrer', - mode: 'websocket', - credentials: 'include', - cache: 'no-store', - redirect: 'error' - }); - if (options.headers) { - const headersList = new Headers(options.headers)[kHeadersList]; - request.headersList = headersList; - } - const keyValue = crypto.randomBytes(16).toString('base64'); - request.headersList.append('sec-websocket-key', keyValue); - request.headersList.append('sec-websocket-version', '13'); - for (const protocol of protocols)request.headersList.append('sec-websocket-protocol', protocol); - const permessageDeflate = ''; - const controller = fetching({ - request, - useParallelQueue: true, - dispatcher: options.dispatcher ?? getGlobalDispatcher(), - processResponse (response) { - if ('error' === response.type || 101 !== response.status) return void failWebsocketConnection(ws, 'Received network error or non-101 status code.'); - if (0 !== protocols.length && !response.headersList.get('Sec-WebSocket-Protocol')) return void failWebsocketConnection(ws, 'Server did not respond with sent protocols.'); - if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') return void failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".'); - if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') return void failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".'); - const secWSAccept = response.headersList.get('Sec-WebSocket-Accept'); - const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64'); - if (secWSAccept !== digest) return void failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.'); - const secExtension = response.headersList.get('Sec-WebSocket-Extensions'); - if (null !== secExtension && secExtension !== permessageDeflate) return void failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.'); - const secProtocol = response.headersList.get('Sec-WebSocket-Protocol'); - if (null !== secProtocol && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) return void failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.'); - response.socket.on('data', onSocketData); - response.socket.on('close', onSocketClose); - response.socket.on('error', onSocketError); - if (channels.open.hasSubscribers) channels.open.publish({ - address: response.socket.address(), - protocol: secProtocol, - extensions: secExtension - }); - onEstablish(response); - } - }); - return controller; - } - function onSocketData(chunk) { - if (!this.ws[kByteParser].write(chunk)) this.pause(); - } - function onSocketClose() { - const { ws } = this; - const wasClean = ws[kSentClose] && ws[kReceivedClose]; - let code = 1005; - let reason = ''; - const result = ws[kByteParser].closingInfo; - if (result) { - code = result.code ?? 1005; - reason = result.reason; - } else if (!ws[kSentClose]) code = 1006; - ws[kReadyState] = states.CLOSED; - fireEvent('close', ws, CloseEvent, { - wasClean, - code, - reason - }); - if (channels.close.hasSubscribers) channels.close.publish({ - websocket: ws, - code, - reason - }); - } - function onSocketError(error) { - const { ws } = this; - ws[kReadyState] = states.CLOSING; - if (channels.socketError.hasSubscribers) channels.socketError.publish(error); - this.destroy(); - } - module.exports = { - establishWebSocketConnection - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js" (module) { - "use strict"; - const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'; - const staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false - }; - const states = { - CONNECTING: 0, - OPEN: 1, - CLOSING: 2, - CLOSED: 3 - }; - const opcodes = { - CONTINUATION: 0x0, - TEXT: 0x1, - BINARY: 0x2, - CLOSE: 0x8, - PING: 0x9, - PONG: 0xA - }; - const maxUnsigned16Bit = 2 ** 16 - 1; - const parserStates = { - INFO: 0, - PAYLOADLENGTH_16: 2, - PAYLOADLENGTH_64: 3, - READ_DATA: 4 - }; - const emptyBuffer = Buffer.allocUnsafe(0); - module.exports = { - uid, - staticPropertyDescriptors, - states, - opcodes, - maxUnsigned16Bit, - parserStates, - emptyBuffer - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/events.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { kEnumerableProperty } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { MessagePort } = __webpack_require__("worker_threads"); - class MessageEvent extends Event { - #eventInit; - constructor(type, eventInitDict = {}){ - webidl.argumentLengthCheck(arguments, 1, { - header: 'MessageEvent constructor' - }); - type = webidl.converters.DOMString(type); - eventInitDict = webidl.converters.MessageEventInit(eventInitDict); - super(type, eventInitDict); - this.#eventInit = eventInitDict; - } - get data() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.data; - } - get origin() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.origin; - } - get lastEventId() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.lastEventId; - } - get source() { - webidl.brandCheck(this, MessageEvent); - return this.#eventInit.source; - } - get ports() { - webidl.brandCheck(this, MessageEvent); - if (!Object.isFrozen(this.#eventInit.ports)) Object.freeze(this.#eventInit.ports); - return this.#eventInit.ports; - } - initMessageEvent(type, bubbles = false, cancelable = false, data = null, origin = '', lastEventId = '', source = null, ports = []) { - webidl.brandCheck(this, MessageEvent); - webidl.argumentLengthCheck(arguments, 1, { - header: 'MessageEvent.initMessageEvent' - }); - return new MessageEvent(type, { - bubbles, - cancelable, - data, - origin, - lastEventId, - source, - ports - }); - } - } - class CloseEvent extends Event { - #eventInit; - constructor(type, eventInitDict = {}){ - webidl.argumentLengthCheck(arguments, 1, { - header: 'CloseEvent constructor' - }); - type = webidl.converters.DOMString(type); - eventInitDict = webidl.converters.CloseEventInit(eventInitDict); - super(type, eventInitDict); - this.#eventInit = eventInitDict; - } - get wasClean() { - webidl.brandCheck(this, CloseEvent); - return this.#eventInit.wasClean; - } - get code() { - webidl.brandCheck(this, CloseEvent); - return this.#eventInit.code; - } - get reason() { - webidl.brandCheck(this, CloseEvent); - return this.#eventInit.reason; - } - } - class ErrorEvent extends Event { - #eventInit; - constructor(type, eventInitDict){ - webidl.argumentLengthCheck(arguments, 1, { - header: 'ErrorEvent constructor' - }); - super(type, eventInitDict); - type = webidl.converters.DOMString(type); - eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}); - this.#eventInit = eventInitDict; - } - get message() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.message; - } - get filename() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.filename; - } - get lineno() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.lineno; - } - get colno() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.colno; - } - get error() { - webidl.brandCheck(this, ErrorEvent); - return this.#eventInit.error; - } - } - Object.defineProperties(MessageEvent.prototype, { - [Symbol.toStringTag]: { - value: 'MessageEvent', - configurable: true - }, - data: kEnumerableProperty, - origin: kEnumerableProperty, - lastEventId: kEnumerableProperty, - source: kEnumerableProperty, - ports: kEnumerableProperty, - initMessageEvent: kEnumerableProperty - }); - Object.defineProperties(CloseEvent.prototype, { - [Symbol.toStringTag]: { - value: 'CloseEvent', - configurable: true - }, - reason: kEnumerableProperty, - code: kEnumerableProperty, - wasClean: kEnumerableProperty - }); - Object.defineProperties(ErrorEvent.prototype, { - [Symbol.toStringTag]: { - value: 'ErrorEvent', - configurable: true - }, - message: kEnumerableProperty, - filename: kEnumerableProperty, - lineno: kEnumerableProperty, - colno: kEnumerableProperty, - error: kEnumerableProperty - }); - webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort); - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.MessagePort); - const eventInit = [ - { - key: 'bubbles', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'cancelable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'composed', - converter: webidl.converters.boolean, - defaultValue: false - } - ]; - webidl.converters.MessageEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'data', - converter: webidl.converters.any, - defaultValue: null - }, - { - key: 'origin', - converter: webidl.converters.USVString, - defaultValue: '' - }, - { - key: 'lastEventId', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'source', - converter: webidl.nullableConverter(webidl.converters.MessagePort), - defaultValue: null - }, - { - key: 'ports', - converter: webidl.converters['sequence'], - get defaultValue () { - return []; - } - } - ]); - webidl.converters.CloseEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'wasClean', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'code', - converter: webidl.converters['unsigned short'], - defaultValue: 0 - }, - { - key: 'reason', - converter: webidl.converters.USVString, - defaultValue: '' - } - ]); - webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'message', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'filename', - converter: webidl.converters.USVString, - defaultValue: '' - }, - { - key: 'lineno', - converter: webidl.converters['unsigned long'], - defaultValue: 0 - }, - { - key: 'colno', - converter: webidl.converters['unsigned long'], - defaultValue: 0 - }, - { - key: 'error', - converter: webidl.converters.any - } - ]); - module.exports = { - MessageEvent, - CloseEvent, - ErrorEvent - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/frame.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { maxUnsigned16Bit } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js"); - let crypto; - try { - crypto = __webpack_require__("crypto"); - } catch {} - class WebsocketFrameSend { - constructor(data){ - this.frameData = data; - this.maskKey = crypto.randomBytes(4); - } - createFrame(opcode) { - const bodyLength = this.frameData?.byteLength ?? 0; - let payloadLength = bodyLength; - let offset = 6; - if (bodyLength > maxUnsigned16Bit) { - offset += 8; - payloadLength = 127; - } else if (bodyLength > 125) { - offset += 2; - payloadLength = 126; - } - const buffer = Buffer.allocUnsafe(bodyLength + offset); - buffer[0] = buffer[1] = 0; - buffer[0] |= 0x80; - buffer[0] = (0xF0 & buffer[0]) + opcode; - /*! ws. MIT License. Einar Otto Stangvik */ buffer[offset - 4] = this.maskKey[0]; - buffer[offset - 3] = this.maskKey[1]; - buffer[offset - 2] = this.maskKey[2]; - buffer[offset - 1] = this.maskKey[3]; - buffer[1] = payloadLength; - if (126 === payloadLength) buffer.writeUInt16BE(bodyLength, 2); - else if (127 === payloadLength) { - buffer[2] = buffer[3] = 0; - buffer.writeUIntBE(bodyLength, 4, 6); - } - buffer[1] |= 0x80; - for(let i = 0; i < bodyLength; i++)buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]; - return buffer; - } - } - module.exports = { - WebsocketFrameSend - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/receiver.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { Writable } = __webpack_require__("stream"); - const diagnosticsChannel = __webpack_require__("diagnostics_channel"); - const { parserStates, opcodes, states, emptyBuffer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js"); - const { kReadyState, kSentClose, kResponse, kReceivedClose } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/symbols.js"); - const { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/util.js"); - const { WebsocketFrameSend } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/frame.js"); - const channels = {}; - channels.ping = diagnosticsChannel.channel('undici:websocket:ping'); - channels.pong = diagnosticsChannel.channel('undici:websocket:pong'); - class ByteParser extends Writable { - #buffers = []; - #byteOffset = 0; - #state = parserStates.INFO; - #info = {}; - #fragments = []; - constructor(ws){ - super(); - this.ws = ws; - } - _write(chunk, _, callback) { - this.#buffers.push(chunk); - this.#byteOffset += chunk.length; - this.run(callback); - } - run(callback) { - while(true){ - if (this.#state === parserStates.INFO) { - if (this.#byteOffset < 2) return callback(); - const buffer = this.consume(2); - this.#info.fin = (0x80 & buffer[0]) !== 0; - this.#info.opcode = 0x0F & buffer[0]; - this.#info.originalOpcode ??= this.#info.opcode; - this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION; - if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) return void failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.'); - const payloadLength = 0x7F & buffer[1]; - if (payloadLength <= 125) { - this.#info.payloadLength = payloadLength; - this.#state = parserStates.READ_DATA; - } else if (126 === payloadLength) this.#state = parserStates.PAYLOADLENGTH_16; - else if (127 === payloadLength) this.#state = parserStates.PAYLOADLENGTH_64; - if (this.#info.fragmented && payloadLength > 125) return void failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.'); - if ((this.#info.opcode === opcodes.PING || this.#info.opcode === opcodes.PONG || this.#info.opcode === opcodes.CLOSE) && payloadLength > 125) return void failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.'); - if (this.#info.opcode === opcodes.CLOSE) { - if (1 === payloadLength) return void failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.'); - const body = this.consume(payloadLength); - this.#info.closeInfo = this.parseCloseBody(false, body); - if (!this.ws[kSentClose]) { - const body = Buffer.allocUnsafe(2); - body.writeUInt16BE(this.#info.closeInfo.code, 0); - const closeFrame = new WebsocketFrameSend(body); - this.ws[kResponse].socket.write(closeFrame.createFrame(opcodes.CLOSE), (err)=>{ - if (!err) this.ws[kSentClose] = true; - }); - } - this.ws[kReadyState] = states.CLOSING; - this.ws[kReceivedClose] = true; - this.end(); - return; - } else if (this.#info.opcode === opcodes.PING) { - const body = this.consume(payloadLength); - if (!this.ws[kReceivedClose]) { - const frame = new WebsocketFrameSend(body); - this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)); - if (channels.ping.hasSubscribers) channels.ping.publish({ - payload: body - }); - } - this.#state = parserStates.INFO; - if (this.#byteOffset > 0) continue; - return void callback(); - } else if (this.#info.opcode === opcodes.PONG) { - const body = this.consume(payloadLength); - if (channels.pong.hasSubscribers) channels.pong.publish({ - payload: body - }); - if (this.#byteOffset > 0) continue; - return void callback(); - } - } else if (this.#state === parserStates.PAYLOADLENGTH_16) { - if (this.#byteOffset < 2) return callback(); - const buffer = this.consume(2); - this.#info.payloadLength = buffer.readUInt16BE(0); - this.#state = parserStates.READ_DATA; - } else if (this.#state === parserStates.PAYLOADLENGTH_64) { - if (this.#byteOffset < 8) return callback(); - const buffer = this.consume(8); - const upper = buffer.readUInt32BE(0); - if (upper > 2 ** 31 - 1) return void failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.'); - const lower = buffer.readUInt32BE(4); - this.#info.payloadLength = (upper << 8) + lower; - this.#state = parserStates.READ_DATA; - } else if (this.#state === parserStates.READ_DATA) { - if (this.#byteOffset < this.#info.payloadLength) return callback(); - else if (this.#byteOffset >= this.#info.payloadLength) { - const body = this.consume(this.#info.payloadLength); - this.#fragments.push(body); - if (!this.#info.fragmented || this.#info.fin && this.#info.opcode === opcodes.CONTINUATION) { - const fullMessage = Buffer.concat(this.#fragments); - websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage); - this.#info = {}; - this.#fragments.length = 0; - } - this.#state = parserStates.INFO; - } - } - if (this.#byteOffset > 0) continue; - callback(); - break; - } - } - consume(n) { - if (n > this.#byteOffset) return null; - if (0 === n) return emptyBuffer; - if (this.#buffers[0].length === n) { - this.#byteOffset -= this.#buffers[0].length; - return this.#buffers.shift(); - } - const buffer = Buffer.allocUnsafe(n); - let offset = 0; - while(offset !== n){ - const next = this.#buffers[0]; - const { length } = next; - if (length + offset === n) { - buffer.set(this.#buffers.shift(), offset); - break; - } - if (length + offset > n) { - buffer.set(next.subarray(0, n - offset), offset); - this.#buffers[0] = next.subarray(n - offset); - break; - } - buffer.set(this.#buffers.shift(), offset); - offset += next.length; - } - this.#byteOffset -= n; - return buffer; - } - parseCloseBody(onlyCode, data) { - let code; - if (data.length >= 2) code = data.readUInt16BE(0); - if (onlyCode) { - if (!isValidStatusCode(code)) return null; - return { - code - }; - } - let reason = data.subarray(2); - if (0xEF === reason[0] && 0xBB === reason[1] && 0xBF === reason[2]) reason = reason.subarray(3); - if (void 0 !== code && !isValidStatusCode(code)) return null; - try { - reason = new TextDecoder('utf-8', { - fatal: true - }).decode(reason); - } catch { - return null; - } - return { - code, - reason - }; - } - get closingInfo() { - return this.#info.closeInfo; - } - } - module.exports = { - ByteParser - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/symbols.js" (module) { - "use strict"; - module.exports = { - kWebSocketURL: Symbol('url'), - kReadyState: Symbol('ready state'), - kController: Symbol('controller'), - kResponse: Symbol('response'), - kBinaryType: Symbol('binary type'), - kSentClose: Symbol('sent close'), - kReceivedClose: Symbol('received close'), - kByteParser: Symbol('byte parser') - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/util.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/symbols.js"); - const { states, opcodes } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js"); - const { MessageEvent, ErrorEvent } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/events.js"); - function isEstablished(ws) { - return ws[kReadyState] === states.OPEN; - } - function isClosing(ws) { - return ws[kReadyState] === states.CLOSING; - } - function isClosed(ws) { - return ws[kReadyState] === states.CLOSED; - } - function fireEvent(e, target, eventConstructor = Event, eventInitDict) { - const event = new eventConstructor(e, eventInitDict); - target.dispatchEvent(event); - } - function websocketMessageReceived(ws, type, data) { - if (ws[kReadyState] !== states.OPEN) return; - let dataForEvent; - if (type === opcodes.TEXT) try { - dataForEvent = new TextDecoder('utf-8', { - fatal: true - }).decode(data); - } catch { - failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.'); - return; - } - else if (type === opcodes.BINARY) dataForEvent = 'blob' === ws[kBinaryType] ? new Blob([ - data - ]) : new Uint8Array(data).buffer; - fireEvent('message', ws, MessageEvent, { - origin: ws[kWebSocketURL].origin, - data: dataForEvent - }); - } - function isValidSubprotocol(protocol) { - if (0 === protocol.length) return false; - for (const char of protocol){ - const code = char.charCodeAt(0); - if (code < 0x21 || code > 0x7E || '(' === char || ')' === char || '<' === char || '>' === char || '@' === char || ',' === char || ';' === char || ':' === char || '\\' === char || '"' === char || '/' === char || '[' === char || ']' === char || '?' === char || '=' === char || '{' === char || '}' === char || 32 === code || 9 === code) return false; - } - return true; - } - function isValidStatusCode(code) { - if (code >= 1000 && code < 1015) return 1004 !== code && 1005 !== code && 1006 !== code; - return code >= 3000 && code <= 4999; - } - function failWebsocketConnection(ws, reason) { - const { [kController]: controller, [kResponse]: response } = ws; - controller.abort(); - if (response?.socket && !response.socket.destroyed) response.socket.destroy(); - if (reason) fireEvent('error', ws, ErrorEvent, { - error: new Error(reason) - }); - } - module.exports = { - isEstablished, - isClosing, - isClosed, - fireEvent, - isValidSubprotocol, - isValidStatusCode, - failWebsocketConnection, - websocketMessageReceived - }; - }, - "../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/websocket.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const { webidl } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/webidl.js"); - const { DOMException: DOMException1 } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/constants.js"); - const { URLSerializer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/dataURL.js"); - const { getGlobalOrigin } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/fetch/global.js"); - const { staticPropertyDescriptors, states, opcodes, emptyBuffer } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/constants.js"); - const { kWebSocketURL, kReadyState, kController, kBinaryType, kResponse, kSentClose, kByteParser } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/symbols.js"); - const { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/util.js"); - const { establishWebSocketConnection } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/connection.js"); - const { WebsocketFrameSend } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/frame.js"); - const { ByteParser } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/websocket/receiver.js"); - const { kEnumerableProperty, isBlobLike } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/core/util.js"); - const { getGlobalDispatcher } = __webpack_require__("../node_modules/.pnpm/undici@5.29.0/node_modules/undici/lib/global.js"); - const { types } = __webpack_require__("util"); - let experimentalWarned = false; - class WebSocket extends EventTarget { - #events = { - open: null, - error: null, - close: null, - message: null - }; - #bufferedAmount = 0; - #protocol = ''; - #extensions = ''; - constructor(url, protocols = []){ - super(); - webidl.argumentLengthCheck(arguments, 1, { - header: 'WebSocket constructor' - }); - if (!experimentalWarned) { - experimentalWarned = true; - process.emitWarning('WebSockets are experimental, expect them to change at any time.', { - code: 'UNDICI-WS' - }); - } - const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols); - url = webidl.converters.USVString(url); - protocols = options.protocols; - const baseURL = getGlobalOrigin(); - let urlRecord; - try { - urlRecord = new URL(url, baseURL); - } catch (e) { - throw new DOMException1(e, 'SyntaxError'); - } - if ('http:' === urlRecord.protocol) urlRecord.protocol = 'ws:'; - else if ('https:' === urlRecord.protocol) urlRecord.protocol = 'wss:'; - if ('ws:' !== urlRecord.protocol && 'wss:' !== urlRecord.protocol) throw new DOMException1(`Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, 'SyntaxError'); - if (urlRecord.hash || urlRecord.href.endsWith('#')) throw new DOMException1('Got fragment', 'SyntaxError'); - if ('string' == typeof protocols) protocols = [ - protocols - ]; - if (protocols.length !== new Set(protocols.map((p)=>p.toLowerCase())).size) throw new DOMException1('Invalid Sec-WebSocket-Protocol value', 'SyntaxError'); - if (protocols.length > 0 && !protocols.every((p)=>isValidSubprotocol(p))) throw new DOMException1('Invalid Sec-WebSocket-Protocol value', 'SyntaxError'); - this[kWebSocketURL] = new URL(urlRecord.href); - this[kController] = establishWebSocketConnection(urlRecord, protocols, this, (response)=>this.#onConnectionEstablished(response), options); - this[kReadyState] = WebSocket.CONNECTING; - this[kBinaryType] = 'blob'; - } - close(code, reason) { - webidl.brandCheck(this, WebSocket); - if (void 0 !== code) code = webidl.converters['unsigned short'](code, { - clamp: true - }); - if (void 0 !== reason) reason = webidl.converters.USVString(reason); - if (void 0 !== code) { - if (1000 !== code && (code < 3000 || code > 4999)) throw new DOMException1('invalid code', 'InvalidAccessError'); - } - let reasonByteLength = 0; - if (void 0 !== reason) { - reasonByteLength = Buffer.byteLength(reason); - if (reasonByteLength > 123) throw new DOMException1(`Reason must be less than 123 bytes; received ${reasonByteLength}`, 'SyntaxError'); - } - if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) ; - else if (isEstablished(this)) if (isClosing(this)) this[kReadyState] = WebSocket.CLOSING; - else { - const frame = new WebsocketFrameSend(); - if (void 0 !== code && void 0 === reason) { - frame.frameData = Buffer.allocUnsafe(2); - frame.frameData.writeUInt16BE(code, 0); - } else if (void 0 !== code && void 0 !== reason) { - frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength); - frame.frameData.writeUInt16BE(code, 0); - frame.frameData.write(reason, 2, 'utf-8'); - } else frame.frameData = emptyBuffer; - const socket = this[kResponse].socket; - socket.write(frame.createFrame(opcodes.CLOSE), (err)=>{ - if (!err) this[kSentClose] = true; - }); - this[kReadyState] = states.CLOSING; - } - else { - failWebsocketConnection(this, 'Connection was closed before it was established.'); - this[kReadyState] = WebSocket.CLOSING; - } - } - send(data) { - webidl.brandCheck(this, WebSocket); - webidl.argumentLengthCheck(arguments, 1, { - header: 'WebSocket.send' - }); - data = webidl.converters.WebSocketSendData(data); - if (this[kReadyState] === WebSocket.CONNECTING) throw new DOMException1('Sent before connected.', 'InvalidStateError'); - if (!isEstablished(this) || isClosing(this)) return; - const socket = this[kResponse].socket; - if ('string' == typeof data) { - const value = Buffer.from(data); - const frame = new WebsocketFrameSend(value); - const buffer = frame.createFrame(opcodes.TEXT); - this.#bufferedAmount += value.byteLength; - socket.write(buffer, ()=>{ - this.#bufferedAmount -= value.byteLength; - }); - } else if (types.isArrayBuffer(data)) { - const value = Buffer.from(data); - const frame = new WebsocketFrameSend(value); - const buffer = frame.createFrame(opcodes.BINARY); - this.#bufferedAmount += value.byteLength; - socket.write(buffer, ()=>{ - this.#bufferedAmount -= value.byteLength; - }); - } else if (ArrayBuffer.isView(data)) { - const ab = Buffer.from(data, data.byteOffset, data.byteLength); - const frame = new WebsocketFrameSend(ab); - const buffer = frame.createFrame(opcodes.BINARY); - this.#bufferedAmount += ab.byteLength; - socket.write(buffer, ()=>{ - this.#bufferedAmount -= ab.byteLength; - }); - } else if (isBlobLike(data)) { - const frame = new WebsocketFrameSend(); - data.arrayBuffer().then((ab)=>{ - const value = Buffer.from(ab); - frame.frameData = value; - const buffer = frame.createFrame(opcodes.BINARY); - this.#bufferedAmount += value.byteLength; - socket.write(buffer, ()=>{ - this.#bufferedAmount -= value.byteLength; - }); - }); - } - } - get readyState() { - webidl.brandCheck(this, WebSocket); - return this[kReadyState]; - } - get bufferedAmount() { - webidl.brandCheck(this, WebSocket); - return this.#bufferedAmount; - } - get url() { - webidl.brandCheck(this, WebSocket); - return URLSerializer(this[kWebSocketURL]); - } - get extensions() { - webidl.brandCheck(this, WebSocket); - return this.#extensions; - } - get protocol() { - webidl.brandCheck(this, WebSocket); - return this.#protocol; - } - get onopen() { - webidl.brandCheck(this, WebSocket); - return this.#events.open; - } - set onopen(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.open) this.removeEventListener('open', this.#events.open); - if ('function' == typeof fn) { - this.#events.open = fn; - this.addEventListener('open', fn); - } else this.#events.open = null; - } - get onerror() { - webidl.brandCheck(this, WebSocket); - return this.#events.error; - } - set onerror(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.error) this.removeEventListener('error', this.#events.error); - if ('function' == typeof fn) { - this.#events.error = fn; - this.addEventListener('error', fn); - } else this.#events.error = null; - } - get onclose() { - webidl.brandCheck(this, WebSocket); - return this.#events.close; - } - set onclose(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.close) this.removeEventListener('close', this.#events.close); - if ('function' == typeof fn) { - this.#events.close = fn; - this.addEventListener('close', fn); - } else this.#events.close = null; - } - get onmessage() { - webidl.brandCheck(this, WebSocket); - return this.#events.message; - } - set onmessage(fn) { - webidl.brandCheck(this, WebSocket); - if (this.#events.message) this.removeEventListener('message', this.#events.message); - if ('function' == typeof fn) { - this.#events.message = fn; - this.addEventListener('message', fn); - } else this.#events.message = null; - } - get binaryType() { - webidl.brandCheck(this, WebSocket); - return this[kBinaryType]; - } - set binaryType(type) { - webidl.brandCheck(this, WebSocket); - if ('blob' !== type && 'arraybuffer' !== type) this[kBinaryType] = 'blob'; - else this[kBinaryType] = type; - } - #onConnectionEstablished(response) { - this[kResponse] = response; - const parser = new ByteParser(this); - parser.on('drain', function() { - this.ws[kResponse].socket.resume(); - }); - response.socket.ws = this; - this[kByteParser] = parser; - this[kReadyState] = states.OPEN; - const extensions = response.headersList.get('sec-websocket-extensions'); - if (null !== extensions) this.#extensions = extensions; - const protocol = response.headersList.get('sec-websocket-protocol'); - if (null !== protocol) this.#protocol = protocol; - fireEvent('open', this); - } - } - WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING; - WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN; - WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING; - WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED; - Object.defineProperties(WebSocket.prototype, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors, - url: kEnumerableProperty, - readyState: kEnumerableProperty, - bufferedAmount: kEnumerableProperty, - onopen: kEnumerableProperty, - onerror: kEnumerableProperty, - onclose: kEnumerableProperty, - close: kEnumerableProperty, - onmessage: kEnumerableProperty, - binaryType: kEnumerableProperty, - send: kEnumerableProperty, - extensions: kEnumerableProperty, - protocol: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'WebSocket', - writable: false, - enumerable: false, - configurable: true - } - }); - Object.defineProperties(WebSocket, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors - }); - webidl.converters['sequence'] = webidl.sequenceConverter(webidl.converters.DOMString); - webidl.converters['DOMString or sequence'] = function(V) { - if ('Object' === webidl.util.Type(V) && Symbol.iterator in V) return webidl.converters['sequence'](V); - return webidl.converters.DOMString(V); - }; - webidl.converters.WebSocketInit = webidl.dictionaryConverter([ - { - key: 'protocols', - converter: webidl.converters['DOMString or sequence'], - get defaultValue () { - return []; - } - }, - { - key: 'dispatcher', - converter: (V)=>V, - get defaultValue () { - return getGlobalDispatcher(); } - }, - { - key: 'headers', - converter: webidl.nullableConverter(webidl.converters.HeadersInit) - } - ]); - webidl.converters['DOMString or sequence or WebSocketInit'] = function(V) { - if ('Object' === webidl.util.Type(V) && !(Symbol.iterator in V)) return webidl.converters.WebSocketInit(V); - return { - protocols: webidl.converters['DOMString or sequence'](V) - }; - }; - webidl.converters.WebSocketSendData = function(V) { - if ('Object' === webidl.util.Type(V)) { - if (isBlobLike(V)) return webidl.converters.Blob(V, { - strict: false - }); - if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) return webidl.converters.BufferSource(V); } - return webidl.converters.USVString(V); - }; - module.exports = { - WebSocket - }; + return target; + } + var debug; + debug = process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG) ? function() { + var args = Array.prototype.slice.call(arguments); + if ('string' == typeof args[0]) args[0] = 'TUNNEL: ' + args[0]; + else args.unshift('TUNNEL:'); + console.error.apply(console, args); + } : function() {}; + exports1.debug = debug; }, "../node_modules/.pnpm/undici@6.24.1/node_modules/undici/index.js" (module, __unused_rspack_exports, __webpack_require__) { "use strict"; @@ -17350,7 +1135,7 @@ ${pendingInterceptorsFormatter.format(pending)} __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/pool.js"); __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/balanced-pool.js"); __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/agent.js"); - __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/proxy-agent.js"); + const ProxyAgent = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/proxy-agent.js"); __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"); __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/dispatcher/retry-agent.js"); const errors = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/core/errors.js"); @@ -17368,6 +1153,7 @@ ${pendingInterceptorsFormatter.format(pending)} __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/handler/redirect-handler.js"); __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/interceptor/redirect-interceptor.js"); Object.assign(Dispatcher.prototype, api); + module.exports.ProxyAgent = ProxyAgent; __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/interceptor/redirect.js"), __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/interceptor/retry.js"), __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/interceptor/dump.js"), __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/interceptor/dns.js"); util.parseHeaders, util.headerNameToString; function makeDispatcher(fn) { @@ -17397,7 +1183,15 @@ ${pendingInterceptorsFormatter.format(pending)} }, handler); }; } - __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/index.js").fetch; + const fetchImpl = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/index.js").fetch; + module.exports.hd = async function(init, options) { + try { + return await fetchImpl(init, options); + } catch (err) { + if (err && 'object' == typeof err) Error.captureStackTrace(err); + throw err; + } + }; __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/headers.js").Headers; __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/response.js").Response; __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/lib/web/fetch/request.js").Request; @@ -31566,55 +15360,14 @@ ${pendingInterceptorsFormatter.format(pending)} module.exports = which; which.sync = whichSync; }, - "../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js" (module) { - module.exports = wrappy; - function wrappy(fn, cb) { - if (fn && cb) return wrappy(fn)(cb); - if ('function' != typeof fn) 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 i = 0; i < args.length; i++)args[i] = arguments[i]; - var ret = fn.apply(this, args); - var cb = args[args.length - 1]; - if ('function' == typeof ret && ret !== cb) Object.keys(cb).forEach(function(k) { - ret[k] = cb[k]; - }); - return ret; - } - } - }, assert (module) { "use strict"; module.exports = require("assert"); }, - async_hooks (module) { - "use strict"; - module.exports = require("async_hooks"); - }, - buffer (module) { - "use strict"; - module.exports = require("buffer"); - }, child_process (module) { "use strict"; module.exports = require("child_process"); }, - console (module) { - "use strict"; - module.exports = require("console"); - }, - crypto (module) { - "use strict"; - module.exports = require("crypto"); - }, - diagnostics_channel (module) { - "use strict"; - module.exports = require("diagnostics_channel"); - }, events (module) { "use strict"; module.exports = require("events"); @@ -31627,10 +15380,6 @@ ${pendingInterceptorsFormatter.format(pending)} "use strict"; module.exports = require("http"); }, - http2 (module) { - "use strict"; - module.exports = require("http2"); - }, https (module) { "use strict"; module.exports = require("https"); @@ -31655,1769 +15404,180 @@ ${pendingInterceptorsFormatter.format(pending)} "use strict"; module.exports = require("node:console"); }, - "node:crypto" (module) { - "use strict"; - module.exports = require("node:crypto"); - }, - "node:diagnostics_channel" (module) { - "use strict"; - module.exports = require("node:diagnostics_channel"); - }, - "node:dns" (module) { - "use strict"; - module.exports = require("node:dns"); - }, - "node:events" (module) { - "use strict"; - module.exports = require("node:events"); - }, - "node:http" (module) { - "use strict"; - module.exports = require("node:http"); - }, - "node:http2" (module) { - "use strict"; - module.exports = require("node:http2"); - }, - "node:net" (module) { - "use strict"; - module.exports = require("node:net"); - }, - "node:perf_hooks" (module) { - "use strict"; - module.exports = require("node:perf_hooks"); - }, - "node:querystring" (module) { - "use strict"; - module.exports = require("node:querystring"); - }, - "node:stream" (module) { - "use strict"; - module.exports = require("node:stream"); - }, - "node:tls" (module) { - "use strict"; - module.exports = require("node:tls"); - }, - "node:url" (module) { - "use strict"; - module.exports = require("node:url"); - }, - "node:util" (module) { - "use strict"; - module.exports = require("node:util"); - }, - "node:util/types" (module) { - "use strict"; - module.exports = require("node:util/types"); - }, - "node:worker_threads" (module) { - "use strict"; - module.exports = require("node:worker_threads"); - }, - "node:zlib" (module) { - "use strict"; - module.exports = require("node:zlib"); - }, - os (module) { - "use strict"; - module.exports = require("os"); - }, - path (module) { - "use strict"; - module.exports = require("path"); - }, - perf_hooks (module) { - "use strict"; - module.exports = require("perf_hooks"); - }, - querystring (module) { - "use strict"; - module.exports = require("querystring"); - }, - stream (module) { - "use strict"; - module.exports = require("stream"); - }, - "stream/web" (module) { - "use strict"; - module.exports = require("stream/web"); - }, - string_decoder (module) { - "use strict"; - module.exports = require("string_decoder"); - }, - tls (module) { - "use strict"; - module.exports = require("tls"); - }, - url (module) { - "use strict"; - module.exports = require("url"); - }, - util (module) { - "use strict"; - module.exports = require("util"); - }, - "util/types" (module) { - "use strict"; - module.exports = require("util/types"); - }, - worker_threads (module) { - "use strict"; - module.exports = require("worker_threads"); - }, - zlib (module) { - "use strict"; - module.exports = require("zlib"); - }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js" (module, __unused_rspack_exports, __webpack_require__) { - "use strict"; - const WritableStream = __webpack_require__("node:stream").Writable; - const inherits = __webpack_require__("node:util").inherits; - const StreamSearch = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/streamsearch/sbmh.js"); - const PartStream = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js"); - const HeaderParser = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js"); - const DASH = 45; - const B_ONEDASH = Buffer.from('-'); - const B_CRLF = Buffer.from('\r\n'); - const EMPTY_FN = function() {}; - function Dicer(cfg) { - if (!(this instanceof Dicer)) return new Dicer(cfg); - WritableStream.call(this, cfg); - if (!cfg || !cfg.headerFirst && 'string' != typeof cfg.boundary) throw new TypeError('Boundary required'); - if ('string' == typeof cfg.boundary) this.setBoundary(cfg.boundary); - else this._bparser = void 0; - this._headerFirst = cfg.headerFirst; - this._dashes = 0; - this._parts = 0; - this._finished = false; - this._realFinish = false; - this._isPreamble = true; - this._justMatched = false; - this._firstWrite = true; - this._inHeader = true; - this._part = void 0; - this._cb = void 0; - this._ignoreData = false; - this._partOpts = { - highWaterMark: cfg.partHwm - }; - this._pause = false; - const self = this; - this._hparser = new HeaderParser(cfg); - this._hparser.on('header', function(header) { - self._inHeader = false; - self._part.emit('header', header); - }); - } - inherits(Dicer, WritableStream); - Dicer.prototype.emit = function(ev) { - if ('finish' !== ev || this._realFinish) WritableStream.prototype.emit.apply(this, arguments); - else if (!this._finished) { - const self = this; - process.nextTick(function() { - self.emit('error', new Error('Unexpected end of multipart data')); - if (self._part && !self._ignoreData) { - const type = self._isPreamble ? 'Preamble' : 'Part'; - self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data')); - self._part.push(null); - process.nextTick(function() { - self._realFinish = true; - self.emit('finish'); - self._realFinish = false; - }); - return; - } - self._realFinish = true; - self.emit('finish'); - self._realFinish = false; - }); - } - }; - Dicer.prototype._write = function(data, encoding, cb) { - if (!this._hparser && !this._bparser) return cb(); - if (this._headerFirst && this._isPreamble) { - if (!this._part) { - this._part = new PartStream(this._partOpts); - if (0 !== this.listenerCount('preamble')) this.emit('preamble', this._part); - else this._ignore(); - } - const r = this._hparser.push(data); - if (!!this._inHeader || void 0 === r || !(r < data.length)) return cb(); - data = data.slice(r); - } - if (this._firstWrite) { - this._bparser.push(B_CRLF); - this._firstWrite = false; - } - this._bparser.push(data); - if (this._pause) this._cb = cb; - else cb(); - }; - Dicer.prototype.reset = function() { - this._part = void 0; - this._bparser = void 0; - this._hparser = void 0; - }; - Dicer.prototype.setBoundary = function(boundary) { - const self = this; - this._bparser = new StreamSearch('\r\n--' + boundary); - this._bparser.on('info', function(isMatch, data, start, end) { - self._oninfo(isMatch, data, start, end); - }); - }; - Dicer.prototype._ignore = function() { - if (this._part && !this._ignoreData) { - this._ignoreData = true; - this._part.on('error', EMPTY_FN); - this._part.resume(); - } - }; - Dicer.prototype._oninfo = function(isMatch, data, start, end) { - let buf; - const self = this; - let i = 0; - let r; - let shouldWriteMore = true; - if (!this._part && this._justMatched && data) { - while(this._dashes < 2 && start + i < end)if (data[start + i] === DASH) { - ++i; - ++this._dashes; - } else { - if (this._dashes) buf = B_ONEDASH; - this._dashes = 0; - break; - } - if (2 === this._dashes) { - if (start + i < end && 0 !== this.listenerCount('trailer')) this.emit('trailer', data.slice(start + i, end)); - this.reset(); - this._finished = true; - if (0 === self._parts) { - self._realFinish = true; - self.emit('finish'); - self._realFinish = false; - } - } - if (this._dashes) return; - } - if (this._justMatched) this._justMatched = false; - if (!this._part) { - this._part = new PartStream(this._partOpts); - this._part._read = function(n) { - self._unpause(); - }; - if (this._isPreamble && 0 !== this.listenerCount('preamble')) this.emit('preamble', this._part); - else if (true !== this._isPreamble && 0 !== this.listenerCount('part')) this.emit('part', this._part); - else this._ignore(); - if (!this._isPreamble) this._inHeader = true; - } - if (data && start < end && !this._ignoreData) { - if (this._isPreamble || !this._inHeader) { - if (buf) shouldWriteMore = this._part.push(buf); - shouldWriteMore = this._part.push(data.slice(start, end)); - if (!shouldWriteMore) this._pause = true; - } else if (!this._isPreamble && this._inHeader) { - if (buf) this._hparser.push(buf); - r = this._hparser.push(data.slice(start, end)); - if (!this._inHeader && void 0 !== r && r < end) this._oninfo(false, data, start + r, end); - } - } - if (isMatch) { - this._hparser.reset(); - if (this._isPreamble) this._isPreamble = false; - else if (start !== end) { - ++this._parts; - this._part.on('end', function() { - if (0 === --self._parts) if (self._finished) { - self._realFinish = true; - self.emit('finish'); - self._realFinish = false; - } else self._unpause(); - }); - } - this._part.push(null); - this._part = void 0; - this._ignoreData = false; - this._justMatched = true; - this._dashes = 0; - } - }; - Dicer.prototype._unpause = function() { - if (!this._pause) return; - this._pause = false; - if (this._cb) { - const cb = this._cb; - this._cb = void 0; - cb(); - } - }; - module.exports = Dicer; + "node:crypto" (module) { + "use strict"; + module.exports = require("node:crypto"); }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js" (module, __unused_rspack_exports, __webpack_require__) { + "node:diagnostics_channel" (module) { "use strict"; - const EventEmitter = __webpack_require__("node:events").EventEmitter; - const inherits = __webpack_require__("node:util").inherits; - const getLimit = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/getLimit.js"); - const StreamSearch = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/streamsearch/sbmh.js"); - const B_DCRLF = Buffer.from('\r\n\r\n'); - const RE_CRLF = /\r\n/g; - const RE_HDR = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/; - function HeaderParser(cfg) { - EventEmitter.call(this); - cfg = cfg || {}; - const self = this; - this.nread = 0; - this.maxed = false; - this.npairs = 0; - this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000); - this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 81920); - this.buffer = ''; - this.header = {}; - this.finished = false; - this.ss = new StreamSearch(B_DCRLF); - this.ss.on('info', function(isMatch, data, start, end) { - if (data && !self.maxed) { - if (self.nread + end - start >= self.maxHeaderSize) { - end = self.maxHeaderSize - self.nread + start; - self.nread = self.maxHeaderSize; - self.maxed = true; - } else self.nread += end - start; - self.buffer += data.toString('binary', start, end); - } - if (isMatch) self._finish(); - }); - } - inherits(HeaderParser, EventEmitter); - HeaderParser.prototype.push = function(data) { - const r = this.ss.push(data); - if (this.finished) return r; - }; - HeaderParser.prototype.reset = function() { - this.finished = false; - this.buffer = ''; - this.header = {}; - this.ss.reset(); - }; - HeaderParser.prototype._finish = function() { - if (this.buffer) this._parseHeader(); - this.ss.matches = this.ss.maxMatches; - const header = this.header; - this.header = {}; - this.buffer = ''; - this.finished = true; - this.nread = this.npairs = 0; - this.maxed = false; - this.emit('header', header); - }; - HeaderParser.prototype._parseHeader = function() { - if (this.npairs === this.maxHeaderPairs) return; - const lines = this.buffer.split(RE_CRLF); - const len = lines.length; - let m, h; - for(var i = 0; i < len; ++i){ - if (0 === lines[i].length) continue; - if ('\t' === lines[i][0] || ' ' === lines[i][0]) { - if (h) { - this.header[h][this.header[h].length - 1] += lines[i]; - continue; - } - } - const posColon = lines[i].indexOf(':'); - if (-1 === posColon || 0 === posColon) return; - m = RE_HDR.exec(lines[i]); - h = m[1].toLowerCase(); - this.header[h] = this.header[h] || []; - this.header[h].push(m[2] || ''); - if (++this.npairs === this.maxHeaderPairs) break; - } - }; - module.exports = HeaderParser; + module.exports = require("node:diagnostics_channel"); }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js" (module, __unused_rspack_exports, __webpack_require__) { + "node:dns" (module) { "use strict"; - const inherits = __webpack_require__("node:util").inherits; - const ReadableStream1 = __webpack_require__("node:stream").Readable; - function PartStream(opts) { - ReadableStream1.call(this, opts); - } - inherits(PartStream, ReadableStream1); - PartStream.prototype._read = function(n) {}; - module.exports = PartStream; + module.exports = require("node:dns"); }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/streamsearch/sbmh.js" (module, __unused_rspack_exports, __webpack_require__) { + "node:events" (module) { "use strict"; - const EventEmitter = __webpack_require__("node:events").EventEmitter; - const inherits = __webpack_require__("node:util").inherits; - function SBMH(needle) { - if ('string' == typeof needle) needle = Buffer.from(needle); - if (!Buffer.isBuffer(needle)) throw new TypeError('The needle has to be a String or a Buffer.'); - const needleLength = needle.length; - if (0 === needleLength) throw new Error('The needle cannot be an empty String/Buffer.'); - if (needleLength > 256) throw new Error('The needle cannot have a length bigger than 256.'); - this.maxMatches = 1 / 0; - this.matches = 0; - this._occ = new Array(256).fill(needleLength); - this._lookbehind_size = 0; - this._needle = needle; - this._bufpos = 0; - this._lookbehind = Buffer.alloc(needleLength); - for(var i = 0; i < needleLength - 1; ++i)this._occ[needle[i]] = needleLength - 1 - i; - } - inherits(SBMH, EventEmitter); - SBMH.prototype.reset = function() { - this._lookbehind_size = 0; - this.matches = 0; - this._bufpos = 0; - }; - SBMH.prototype.push = function(chunk, pos) { - if (!Buffer.isBuffer(chunk)) chunk = Buffer.from(chunk, 'binary'); - const chlen = chunk.length; - this._bufpos = pos || 0; - let r; - while(r !== chlen && this.matches < this.maxMatches)r = this._sbmh_feed(chunk); - return r; - }; - SBMH.prototype._sbmh_feed = function(data) { - const len = data.length; - const needle = this._needle; - const needleLength = needle.length; - const lastNeedleChar = needle[needleLength - 1]; - let pos = -this._lookbehind_size; - let ch; - if (pos < 0) { - while(pos < 0 && pos <= len - needleLength){ - ch = this._sbmh_lookup_char(data, pos + needleLength - 1); - if (ch === lastNeedleChar && this._sbmh_memcmp(data, pos, needleLength - 1)) { - this._lookbehind_size = 0; - ++this.matches; - this.emit('info', true); - return this._bufpos = pos + needleLength; - } - pos += this._occ[ch]; - } - if (pos < 0) while(pos < 0 && !this._sbmh_memcmp(data, pos, len - pos))++pos; - if (pos >= 0) { - this.emit('info', false, this._lookbehind, 0, this._lookbehind_size); - this._lookbehind_size = 0; - } else { - const bytesToCutOff = this._lookbehind_size + pos; - if (bytesToCutOff > 0) this.emit('info', false, this._lookbehind, 0, bytesToCutOff); - this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff, this._lookbehind_size - bytesToCutOff); - this._lookbehind_size -= bytesToCutOff; - data.copy(this._lookbehind, this._lookbehind_size); - this._lookbehind_size += len; - this._bufpos = len; - return len; - } - } - pos += (pos >= 0) * this._bufpos; - if (-1 !== data.indexOf(needle, pos)) { - pos = data.indexOf(needle, pos); - ++this.matches; - if (pos > 0) this.emit('info', true, data, this._bufpos, pos); - else this.emit('info', true); - return this._bufpos = pos + needleLength; - } - pos = len - needleLength; - while(pos < len && (data[pos] !== needle[0] || 0 !== Buffer.compare(data.subarray(pos, pos + len - pos), needle.subarray(0, len - pos))))++pos; - if (pos < len) { - data.copy(this._lookbehind, 0, pos, pos + (len - pos)); - this._lookbehind_size = len - pos; - } - if (pos > 0) this.emit('info', false, data, this._bufpos, pos < len ? pos : len); - this._bufpos = len; - return len; - }; - SBMH.prototype._sbmh_lookup_char = function(data, pos) { - return pos < 0 ? this._lookbehind[this._lookbehind_size + pos] : data[pos]; - }; - SBMH.prototype._sbmh_memcmp = function(data, pos, len) { - for(var i = 0; i < len; ++i)if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) return false; - return true; - }; - module.exports = SBMH; + module.exports = require("node:events"); }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/main.js" (module, __unused_rspack_exports, __webpack_require__) { + "node:http" (module) { "use strict"; - const WritableStream = __webpack_require__("node:stream").Writable; - const { inherits } = __webpack_require__("node:util"); - const Dicer = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js"); - const MultipartParser = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/multipart.js"); - const UrlencodedParser = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/urlencoded.js"); - const parseParams = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/parseParams.js"); - function Busboy(opts) { - if (!(this instanceof Busboy)) return new Busboy(opts); - if ('object' != typeof opts) throw new TypeError('Busboy expected an options-Object.'); - if ('object' != typeof opts.headers) throw new TypeError('Busboy expected an options-Object with headers-attribute.'); - if ('string' != typeof opts.headers['content-type']) throw new TypeError('Missing Content-Type-header.'); - const { headers, ...streamOptions } = opts; - this.opts = { - autoDestroy: false, - ...streamOptions - }; - WritableStream.call(this, this.opts); - this._done = false; - this._parser = this.getParserByHeaders(headers); - this._finished = false; - } - inherits(Busboy, WritableStream); - Busboy.prototype.emit = function(ev) { - if ('finish' === ev) { - if (!this._done) return void this._parser?.end(); - if (this._finished) return; - this._finished = true; - } - WritableStream.prototype.emit.apply(this, arguments); - }; - Busboy.prototype.getParserByHeaders = function(headers) { - const parsed = parseParams(headers['content-type']); - const cfg = { - defCharset: this.opts.defCharset, - fileHwm: this.opts.fileHwm, - headers, - highWaterMark: this.opts.highWaterMark, - isPartAFile: this.opts.isPartAFile, - limits: this.opts.limits, - parsedConType: parsed, - preservePath: this.opts.preservePath - }; - if (MultipartParser.detect.test(parsed[0])) return new MultipartParser(this, cfg); - if (UrlencodedParser.detect.test(parsed[0])) return new UrlencodedParser(this, cfg); - throw new Error('Unsupported Content-Type.'); - }; - Busboy.prototype._write = function(chunk, encoding, cb) { - this._parser.write(chunk, cb); - }; - module.exports = Busboy; - module.exports["default"] = Busboy; - module.exports.Busboy = Busboy; - module.exports.Dicer = Dicer; + module.exports = require("node:http"); }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/multipart.js" (module, __unused_rspack_exports, __webpack_require__) { + "node:http2" (module) { "use strict"; - const { Readable } = __webpack_require__("node:stream"); - const { inherits } = __webpack_require__("node:util"); - const Dicer = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js"); - const parseParams = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/parseParams.js"); - const decodeText = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/decodeText.js"); - const basename = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/basename.js"); - const getLimit = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/getLimit.js"); - const RE_BOUNDARY = /^boundary$/i; - const RE_FIELD = /^form-data$/i; - const RE_CHARSET = /^charset$/i; - const RE_FILENAME = /^filename$/i; - const RE_NAME = /^name$/i; - Multipart.detect = /^multipart\/form-data/i; - function Multipart(boy, cfg) { - let i; - let len; - const self = this; - let boundary; - const limits = cfg.limits; - const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName)=>'application/octet-stream' === contentType || void 0 !== fileName); - const parsedConType = cfg.parsedConType || []; - const defCharset = cfg.defCharset || 'utf8'; - const preservePath = cfg.preservePath; - const fileOpts = { - highWaterMark: cfg.fileHwm - }; - for(i = 0, len = parsedConType.length; i < len; ++i)if (Array.isArray(parsedConType[i]) && RE_BOUNDARY.test(parsedConType[i][0])) { - boundary = parsedConType[i][1]; - break; - } - function checkFinished() { - if (0 === nends && finished && !boy._done) { - finished = false; - self.end(); - } - } - if ('string' != typeof boundary) throw new Error('Multipart: Boundary not found'); - const fieldSizeLimit = getLimit(limits, 'fieldSize', 1048576); - const fileSizeLimit = getLimit(limits, 'fileSize', 1 / 0); - const filesLimit = getLimit(limits, 'files', 1 / 0); - const fieldsLimit = getLimit(limits, 'fields', 1 / 0); - const partsLimit = getLimit(limits, 'parts', 1 / 0); - const headerPairsLimit = getLimit(limits, 'headerPairs', 2000); - const headerSizeLimit = getLimit(limits, 'headerSize', 81920); - let nfiles = 0; - let nfields = 0; - let nends = 0; - let curFile; - let curField; - let finished = false; - this._needDrain = false; - this._pause = false; - this._cb = void 0; - this._nparts = 0; - this._boy = boy; - const parserCfg = { - boundary, - maxHeaderPairs: headerPairsLimit, - maxHeaderSize: headerSizeLimit, - partHwm: fileOpts.highWaterMark, - highWaterMark: cfg.highWaterMark - }; - this.parser = new Dicer(parserCfg); - this.parser.on('drain', function() { - self._needDrain = false; - if (self._cb && !self._pause) { - const cb = self._cb; - self._cb = void 0; - cb(); - } - }).on('part', function onPart(part) { - if (++self._nparts > partsLimit) { - self.parser.removeListener('part', onPart); - self.parser.on('part', skipPart); - boy.hitPartsLimit = true; - boy.emit('partsLimit'); - return skipPart(part); - } - if (curField) { - const field = curField; - field.emit('end'); - field.removeAllListeners('end'); - } - part.on('header', function(header) { - let contype; - let fieldname; - let parsed; - let charset; - let encoding; - let filename; - let nsize = 0; - if (header['content-type']) { - parsed = parseParams(header['content-type'][0]); - if (parsed[0]) { - contype = parsed[0].toLowerCase(); - for(i = 0, len = parsed.length; i < len; ++i)if (RE_CHARSET.test(parsed[i][0])) { - charset = parsed[i][1].toLowerCase(); - break; - } - } - } - if (void 0 === contype) contype = 'text/plain'; - if (void 0 === charset) charset = defCharset; - if (!header['content-disposition']) return skipPart(part); - parsed = parseParams(header['content-disposition'][0]); - if (!RE_FIELD.test(parsed[0])) return skipPart(part); - for(i = 0, len = parsed.length; i < len; ++i)if (RE_NAME.test(parsed[i][0])) fieldname = parsed[i][1]; - else if (RE_FILENAME.test(parsed[i][0])) { - filename = parsed[i][1]; - if (!preservePath) filename = basename(filename); - } - encoding = header['content-transfer-encoding'] ? header['content-transfer-encoding'][0].toLowerCase() : '7bit'; - let onData, onEnd; - if (isPartAFile(fieldname, contype, filename)) { - if (nfiles === filesLimit) { - if (!boy.hitFilesLimit) { - boy.hitFilesLimit = true; - boy.emit('filesLimit'); - } - return skipPart(part); - } - ++nfiles; - if (0 === boy.listenerCount('file')) return void self.parser._ignore(); - ++nends; - const file = new FileStream(fileOpts); - curFile = file; - file.on('end', function() { - --nends; - self._pause = false; - checkFinished(); - if (self._cb && !self._needDrain) { - const cb = self._cb; - self._cb = void 0; - cb(); - } - }); - file._read = function(n) { - if (!self._pause) return; - self._pause = false; - if (self._cb && !self._needDrain) { - const cb = self._cb; - self._cb = void 0; - cb(); - } - }; - boy.emit('file', fieldname, file, filename, encoding, contype); - onData = function(data) { - if ((nsize += data.length) > fileSizeLimit) { - const extralen = fileSizeLimit - nsize + data.length; - if (extralen > 0) file.push(data.slice(0, extralen)); - file.truncated = true; - file.bytesRead = fileSizeLimit; - part.removeAllListeners('data'); - file.emit('limit'); - return; - } - if (!file.push(data)) self._pause = true; - file.bytesRead = nsize; - }; - onEnd = function() { - curFile = void 0; - file.push(null); - }; - } else { - if (nfields === fieldsLimit) { - if (!boy.hitFieldsLimit) { - boy.hitFieldsLimit = true; - boy.emit('fieldsLimit'); - } - return skipPart(part); - } - ++nfields; - ++nends; - let buffer = ''; - let truncated = false; - curField = part; - onData = function(data) { - if ((nsize += data.length) > fieldSizeLimit) { - const extralen = fieldSizeLimit - (nsize - data.length); - buffer += data.toString('binary', 0, extralen); - truncated = true; - part.removeAllListeners('data'); - } else buffer += data.toString('binary'); - }; - onEnd = function() { - curField = void 0; - if (buffer.length) buffer = decodeText(buffer, 'binary', charset); - boy.emit('field', fieldname, buffer, false, truncated, encoding, contype); - --nends; - checkFinished(); - }; - } - part._readableState.sync = false; - part.on('data', onData); - part.on('end', onEnd); - }).on('error', function(err) { - if (curFile) curFile.emit('error', err); - }); - }).on('error', function(err) { - boy.emit('error', err); - }).on('finish', function() { - finished = true; - checkFinished(); - }); - } - Multipart.prototype.write = function(chunk, cb) { - const r = this.parser.write(chunk); - if (r && !this._pause) cb(); - else { - this._needDrain = !r; - this._cb = cb; - } - }; - Multipart.prototype.end = function() { - const self = this; - if (self.parser.writable) self.parser.end(); - else if (!self._boy._done) process.nextTick(function() { - self._boy._done = true; - self._boy.emit('finish'); - }); - }; - function skipPart(part) { - part.resume(); - } - function FileStream(opts) { - Readable.call(this, opts); - this.bytesRead = 0; - this.truncated = false; - } - inherits(FileStream, Readable); - FileStream.prototype._read = function(n) {}; - module.exports = Multipart; + module.exports = require("node:http2"); }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/types/urlencoded.js" (module, __unused_rspack_exports, __webpack_require__) { + "node:net" (module) { "use strict"; - const Decoder = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/Decoder.js"); - const decodeText = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/decodeText.js"); - const getLimit = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/getLimit.js"); - const RE_CHARSET = /^charset$/i; - UrlEncoded.detect = /^application\/x-www-form-urlencoded/i; - function UrlEncoded(boy, cfg) { - const limits = cfg.limits; - const parsedConType = cfg.parsedConType; - this.boy = boy; - this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1048576); - this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100); - this.fieldsLimit = getLimit(limits, 'fields', 1 / 0); - let charset; - for(var i = 0, len = parsedConType.length; i < len; ++i)if (Array.isArray(parsedConType[i]) && RE_CHARSET.test(parsedConType[i][0])) { - charset = parsedConType[i][1].toLowerCase(); - break; - } - if (void 0 === charset) charset = cfg.defCharset || 'utf8'; - this.decoder = new Decoder(); - this.charset = charset; - this._fields = 0; - this._state = 'key'; - this._checkingBytes = true; - this._bytesKey = 0; - this._bytesVal = 0; - this._key = ''; - this._val = ''; - this._keyTrunc = false; - this._valTrunc = false; - this._hitLimit = false; - } - UrlEncoded.prototype.write = function(data, cb) { - if (this._fields === this.fieldsLimit) { - if (!this.boy.hitFieldsLimit) { - this.boy.hitFieldsLimit = true; - this.boy.emit('fieldsLimit'); - } - return cb(); - } - let idxeq; - let idxamp; - let i; - let p = 0; - const len = data.length; - while(p < len)if ('key' === this._state) { - idxeq = idxamp = void 0; - for(i = p; i < len; ++i){ - if (!this._checkingBytes) ++p; - if (0x3D === data[i]) { - idxeq = i; - break; - } - if (0x26 === data[i]) { - idxamp = i; - break; - } - if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) { - this._hitLimit = true; - break; - } - if (this._checkingBytes) ++this._bytesKey; - } - if (void 0 !== idxeq) { - if (idxeq > p) this._key += this.decoder.write(data.toString('binary', p, idxeq)); - this._state = 'val'; - this._hitLimit = false; - this._checkingBytes = true; - this._val = ''; - this._bytesVal = 0; - this._valTrunc = false; - this.decoder.reset(); - p = idxeq + 1; - } else if (void 0 !== idxamp) { - ++this._fields; - let key; - const keyTrunc = this._keyTrunc; - key = idxamp > p ? this._key += this.decoder.write(data.toString('binary', p, idxamp)) : this._key; - this._hitLimit = false; - this._checkingBytes = true; - this._key = ''; - this._bytesKey = 0; - this._keyTrunc = false; - this.decoder.reset(); - if (key.length) this.boy.emit('field', decodeText(key, 'binary', this.charset), '', keyTrunc, false); - p = idxamp + 1; - if (this._fields === this.fieldsLimit) return cb(); - } else if (this._hitLimit) { - if (i > p) this._key += this.decoder.write(data.toString('binary', p, i)); - p = i; - if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) { - this._checkingBytes = false; - this._keyTrunc = true; - } - } else { - if (p < len) this._key += this.decoder.write(data.toString('binary', p)); - p = len; - } - } else { - idxamp = void 0; - for(i = p; i < len; ++i){ - if (!this._checkingBytes) ++p; - if (0x26 === data[i]) { - idxamp = i; - break; - } - if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) { - this._hitLimit = true; - break; - } - if (this._checkingBytes) ++this._bytesVal; - } - if (void 0 !== idxamp) { - ++this._fields; - if (idxamp > p) this._val += this.decoder.write(data.toString('binary', p, idxamp)); - this.boy.emit('field', decodeText(this._key, 'binary', this.charset), decodeText(this._val, 'binary', this.charset), this._keyTrunc, this._valTrunc); - this._state = 'key'; - this._hitLimit = false; - this._checkingBytes = true; - this._key = ''; - this._bytesKey = 0; - this._keyTrunc = false; - this.decoder.reset(); - p = idxamp + 1; - if (this._fields === this.fieldsLimit) return cb(); - } else if (this._hitLimit) { - if (i > p) this._val += this.decoder.write(data.toString('binary', p, i)); - p = i; - if ('' === this._val && 0 === this.fieldSizeLimit || (this._bytesVal = this._val.length) === this.fieldSizeLimit) { - this._checkingBytes = false; - this._valTrunc = true; - } - } else { - if (p < len) this._val += this.decoder.write(data.toString('binary', p)); - p = len; - } - } - cb(); - }; - UrlEncoded.prototype.end = function() { - if (this.boy._done) return; - if ('key' === this._state && this._key.length > 0) this.boy.emit('field', decodeText(this._key, 'binary', this.charset), '', this._keyTrunc, false); - else if ('val' === this._state) this.boy.emit('field', decodeText(this._key, 'binary', this.charset), decodeText(this._val, 'binary', this.charset), this._keyTrunc, this._valTrunc); - this.boy._done = true; - this.boy.emit('finish'); - }; - module.exports = UrlEncoded; + module.exports = require("node:net"); }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/Decoder.js" (module) { + "node:perf_hooks" (module) { "use strict"; - const RE_PLUS = /\+/g; - const HEX = [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ]; - function Decoder() { - this.buffer = void 0; - } - Decoder.prototype.write = function(str) { - str = str.replace(RE_PLUS, ' '); - let res = ''; - let i = 0; - let p = 0; - const len = str.length; - for(; i < len; ++i)if (void 0 !== this.buffer) if (HEX[str.charCodeAt(i)]) { - this.buffer += str[i]; - ++p; - if (2 === this.buffer.length) { - res += String.fromCharCode(parseInt(this.buffer, 16)); - this.buffer = void 0; - } - } else { - res += '%' + this.buffer; - this.buffer = void 0; - --i; - } - else if ('%' === str[i]) { - if (i > p) { - res += str.substring(p, i); - p = i; - } - this.buffer = ''; - ++p; - } - if (p < len && void 0 === this.buffer) res += str.substring(p); - return res; - }; - Decoder.prototype.reset = function() { - this.buffer = void 0; - }; - module.exports = Decoder; + module.exports = require("node:perf_hooks"); + }, + "node:querystring" (module) { + "use strict"; + module.exports = require("node:querystring"); + }, + "node:stream" (module) { + "use strict"; + module.exports = require("node:stream"); + }, + "node:tls" (module) { + "use strict"; + module.exports = require("node:tls"); }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/basename.js" (module) { + "node:url" (module) { "use strict"; - module.exports = function(path) { - if ('string' != typeof path) return ''; - for(var i = path.length - 1; i >= 0; --i)switch(path.charCodeAt(i)){ - case 0x2F: - case 0x5C: - path = path.slice(i + 1); - return '..' === path || '.' === path ? '' : path; - } - return '..' === path || '.' === path ? '' : path; - }; + module.exports = require("node:url"); }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/decodeText.js" (module) { + "node:util" (module) { "use strict"; - const utf8Decoder = new TextDecoder('utf-8'); - const textDecoders = new Map([ - [ - 'utf-8', - utf8Decoder - ], - [ - 'utf8', - utf8Decoder - ] - ]); - function getDecoder(charset) { - let lc; - while(true)switch(charset){ - case 'utf-8': - case 'utf8': - return decoders.utf8; - case 'latin1': - case 'ascii': - case 'us-ascii': - case 'iso-8859-1': - case 'iso8859-1': - case 'iso88591': - case 'iso_8859-1': - case 'windows-1252': - case 'iso_8859-1:1987': - case 'cp1252': - case 'x-cp1252': - return decoders.latin1; - case 'utf16le': - case 'utf-16le': - case 'ucs2': - case 'ucs-2': - return decoders.utf16le; - case 'base64': - return decoders.base64; - default: - if (void 0 === lc) { - lc = true; - charset = charset.toLowerCase(); - continue; - } - return decoders.other.bind(charset); - } - } - const decoders = { - utf8: (data, sourceEncoding)=>{ - if (0 === data.length) return ''; - if ('string' == typeof data) data = Buffer.from(data, sourceEncoding); - return data.utf8Slice(0, data.length); - }, - latin1: (data, sourceEncoding)=>{ - if (0 === data.length) return ''; - if ('string' == typeof data) return data; - return data.latin1Slice(0, data.length); - }, - utf16le: (data, sourceEncoding)=>{ - if (0 === data.length) return ''; - if ('string' == typeof data) data = Buffer.from(data, sourceEncoding); - return data.ucs2Slice(0, data.length); - }, - base64: (data, sourceEncoding)=>{ - if (0 === data.length) return ''; - if ('string' == typeof data) data = Buffer.from(data, sourceEncoding); - return data.base64Slice(0, data.length); - }, - other: (data, sourceEncoding)=>{ - if (0 === data.length) return ''; - if ('string' == typeof data) data = Buffer.from(data, sourceEncoding); - if (textDecoders.has(this.toString())) try { - return textDecoders.get(this).decode(data); - } catch {} - return 'string' == typeof data ? data : data.toString(); - } - }; - function decodeText(text, sourceEncoding, destEncoding) { - if (text) return getDecoder(destEncoding)(text, sourceEncoding); - return text; - } - module.exports = decodeText; + module.exports = require("node:util"); }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/getLimit.js" (module) { + "node:util/types" (module) { "use strict"; - module.exports = function(limits, name, defaultLimit) { - if (!limits || void 0 === limits[name] || null === limits[name]) return defaultLimit; - if ('number' != typeof limits[name] || isNaN(limits[name])) throw new TypeError('Limit ' + name + ' is not a valid number'); - return limits[name]; - }; + module.exports = require("node:util/types"); }, - "../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/parseParams.js" (module, __unused_rspack_exports, __webpack_require__) { + "node:worker_threads" (module) { "use strict"; - const decodeText = __webpack_require__("../node_modules/.pnpm/@fastify+busboy@2.1.1/node_modules/@fastify/busboy/lib/utils/decodeText.js"); - const RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g; - const EncodedLookup = { - '%00': '\x00', - '%01': '\x01', - '%02': '\x02', - '%03': '\x03', - '%04': '\x04', - '%05': '\x05', - '%06': '\x06', - '%07': '\x07', - '%08': '\x08', - '%09': '\x09', - '%0a': '\x0a', - '%0A': '\x0a', - '%0b': '\x0b', - '%0B': '\x0b', - '%0c': '\x0c', - '%0C': '\x0c', - '%0d': '\x0d', - '%0D': '\x0d', - '%0e': '\x0e', - '%0E': '\x0e', - '%0f': '\x0f', - '%0F': '\x0f', - '%10': '\x10', - '%11': '\x11', - '%12': '\x12', - '%13': '\x13', - '%14': '\x14', - '%15': '\x15', - '%16': '\x16', - '%17': '\x17', - '%18': '\x18', - '%19': '\x19', - '%1a': '\x1a', - '%1A': '\x1a', - '%1b': '\x1b', - '%1B': '\x1b', - '%1c': '\x1c', - '%1C': '\x1c', - '%1d': '\x1d', - '%1D': '\x1d', - '%1e': '\x1e', - '%1E': '\x1e', - '%1f': '\x1f', - '%1F': '\x1f', - '%20': '\x20', - '%21': '\x21', - '%22': '\x22', - '%23': '\x23', - '%24': '\x24', - '%25': '\x25', - '%26': '\x26', - '%27': '\x27', - '%28': '\x28', - '%29': '\x29', - '%2a': '\x2a', - '%2A': '\x2a', - '%2b': '\x2b', - '%2B': '\x2b', - '%2c': '\x2c', - '%2C': '\x2c', - '%2d': '\x2d', - '%2D': '\x2d', - '%2e': '\x2e', - '%2E': '\x2e', - '%2f': '\x2f', - '%2F': '\x2f', - '%30': '\x30', - '%31': '\x31', - '%32': '\x32', - '%33': '\x33', - '%34': '\x34', - '%35': '\x35', - '%36': '\x36', - '%37': '\x37', - '%38': '\x38', - '%39': '\x39', - '%3a': '\x3a', - '%3A': '\x3a', - '%3b': '\x3b', - '%3B': '\x3b', - '%3c': '\x3c', - '%3C': '\x3c', - '%3d': '\x3d', - '%3D': '\x3d', - '%3e': '\x3e', - '%3E': '\x3e', - '%3f': '\x3f', - '%3F': '\x3f', - '%40': '\x40', - '%41': '\x41', - '%42': '\x42', - '%43': '\x43', - '%44': '\x44', - '%45': '\x45', - '%46': '\x46', - '%47': '\x47', - '%48': '\x48', - '%49': '\x49', - '%4a': '\x4a', - '%4A': '\x4a', - '%4b': '\x4b', - '%4B': '\x4b', - '%4c': '\x4c', - '%4C': '\x4c', - '%4d': '\x4d', - '%4D': '\x4d', - '%4e': '\x4e', - '%4E': '\x4e', - '%4f': '\x4f', - '%4F': '\x4f', - '%50': '\x50', - '%51': '\x51', - '%52': '\x52', - '%53': '\x53', - '%54': '\x54', - '%55': '\x55', - '%56': '\x56', - '%57': '\x57', - '%58': '\x58', - '%59': '\x59', - '%5a': '\x5a', - '%5A': '\x5a', - '%5b': '\x5b', - '%5B': '\x5b', - '%5c': '\x5c', - '%5C': '\x5c', - '%5d': '\x5d', - '%5D': '\x5d', - '%5e': '\x5e', - '%5E': '\x5e', - '%5f': '\x5f', - '%5F': '\x5f', - '%60': '\x60', - '%61': '\x61', - '%62': '\x62', - '%63': '\x63', - '%64': '\x64', - '%65': '\x65', - '%66': '\x66', - '%67': '\x67', - '%68': '\x68', - '%69': '\x69', - '%6a': '\x6a', - '%6A': '\x6a', - '%6b': '\x6b', - '%6B': '\x6b', - '%6c': '\x6c', - '%6C': '\x6c', - '%6d': '\x6d', - '%6D': '\x6d', - '%6e': '\x6e', - '%6E': '\x6e', - '%6f': '\x6f', - '%6F': '\x6f', - '%70': '\x70', - '%71': '\x71', - '%72': '\x72', - '%73': '\x73', - '%74': '\x74', - '%75': '\x75', - '%76': '\x76', - '%77': '\x77', - '%78': '\x78', - '%79': '\x79', - '%7a': '\x7a', - '%7A': '\x7a', - '%7b': '\x7b', - '%7B': '\x7b', - '%7c': '\x7c', - '%7C': '\x7c', - '%7d': '\x7d', - '%7D': '\x7d', - '%7e': '\x7e', - '%7E': '\x7e', - '%7f': '\x7f', - '%7F': '\x7f', - '%80': '\x80', - '%81': '\x81', - '%82': '\x82', - '%83': '\x83', - '%84': '\x84', - '%85': '\x85', - '%86': '\x86', - '%87': '\x87', - '%88': '\x88', - '%89': '\x89', - '%8a': '\x8a', - '%8A': '\x8a', - '%8b': '\x8b', - '%8B': '\x8b', - '%8c': '\x8c', - '%8C': '\x8c', - '%8d': '\x8d', - '%8D': '\x8d', - '%8e': '\x8e', - '%8E': '\x8e', - '%8f': '\x8f', - '%8F': '\x8f', - '%90': '\x90', - '%91': '\x91', - '%92': '\x92', - '%93': '\x93', - '%94': '\x94', - '%95': '\x95', - '%96': '\x96', - '%97': '\x97', - '%98': '\x98', - '%99': '\x99', - '%9a': '\x9a', - '%9A': '\x9a', - '%9b': '\x9b', - '%9B': '\x9b', - '%9c': '\x9c', - '%9C': '\x9c', - '%9d': '\x9d', - '%9D': '\x9d', - '%9e': '\x9e', - '%9E': '\x9e', - '%9f': '\x9f', - '%9F': '\x9f', - '%a0': '\xa0', - '%A0': '\xa0', - '%a1': '\xa1', - '%A1': '\xa1', - '%a2': '\xa2', - '%A2': '\xa2', - '%a3': '\xa3', - '%A3': '\xa3', - '%a4': '\xa4', - '%A4': '\xa4', - '%a5': '\xa5', - '%A5': '\xa5', - '%a6': '\xa6', - '%A6': '\xa6', - '%a7': '\xa7', - '%A7': '\xa7', - '%a8': '\xa8', - '%A8': '\xa8', - '%a9': '\xa9', - '%A9': '\xa9', - '%aa': '\xaa', - '%Aa': '\xaa', - '%aA': '\xaa', - '%AA': '\xaa', - '%ab': '\xab', - '%Ab': '\xab', - '%aB': '\xab', - '%AB': '\xab', - '%ac': '\xac', - '%Ac': '\xac', - '%aC': '\xac', - '%AC': '\xac', - '%ad': '\xad', - '%Ad': '\xad', - '%aD': '\xad', - '%AD': '\xad', - '%ae': '\xae', - '%Ae': '\xae', - '%aE': '\xae', - '%AE': '\xae', - '%af': '\xaf', - '%Af': '\xaf', - '%aF': '\xaf', - '%AF': '\xaf', - '%b0': '\xb0', - '%B0': '\xb0', - '%b1': '\xb1', - '%B1': '\xb1', - '%b2': '\xb2', - '%B2': '\xb2', - '%b3': '\xb3', - '%B3': '\xb3', - '%b4': '\xb4', - '%B4': '\xb4', - '%b5': '\xb5', - '%B5': '\xb5', - '%b6': '\xb6', - '%B6': '\xb6', - '%b7': '\xb7', - '%B7': '\xb7', - '%b8': '\xb8', - '%B8': '\xb8', - '%b9': '\xb9', - '%B9': '\xb9', - '%ba': '\xba', - '%Ba': '\xba', - '%bA': '\xba', - '%BA': '\xba', - '%bb': '\xbb', - '%Bb': '\xbb', - '%bB': '\xbb', - '%BB': '\xbb', - '%bc': '\xbc', - '%Bc': '\xbc', - '%bC': '\xbc', - '%BC': '\xbc', - '%bd': '\xbd', - '%Bd': '\xbd', - '%bD': '\xbd', - '%BD': '\xbd', - '%be': '\xbe', - '%Be': '\xbe', - '%bE': '\xbe', - '%BE': '\xbe', - '%bf': '\xbf', - '%Bf': '\xbf', - '%bF': '\xbf', - '%BF': '\xbf', - '%c0': '\xc0', - '%C0': '\xc0', - '%c1': '\xc1', - '%C1': '\xc1', - '%c2': '\xc2', - '%C2': '\xc2', - '%c3': '\xc3', - '%C3': '\xc3', - '%c4': '\xc4', - '%C4': '\xc4', - '%c5': '\xc5', - '%C5': '\xc5', - '%c6': '\xc6', - '%C6': '\xc6', - '%c7': '\xc7', - '%C7': '\xc7', - '%c8': '\xc8', - '%C8': '\xc8', - '%c9': '\xc9', - '%C9': '\xc9', - '%ca': '\xca', - '%Ca': '\xca', - '%cA': '\xca', - '%CA': '\xca', - '%cb': '\xcb', - '%Cb': '\xcb', - '%cB': '\xcb', - '%CB': '\xcb', - '%cc': '\xcc', - '%Cc': '\xcc', - '%cC': '\xcc', - '%CC': '\xcc', - '%cd': '\xcd', - '%Cd': '\xcd', - '%cD': '\xcd', - '%CD': '\xcd', - '%ce': '\xce', - '%Ce': '\xce', - '%cE': '\xce', - '%CE': '\xce', - '%cf': '\xcf', - '%Cf': '\xcf', - '%cF': '\xcf', - '%CF': '\xcf', - '%d0': '\xd0', - '%D0': '\xd0', - '%d1': '\xd1', - '%D1': '\xd1', - '%d2': '\xd2', - '%D2': '\xd2', - '%d3': '\xd3', - '%D3': '\xd3', - '%d4': '\xd4', - '%D4': '\xd4', - '%d5': '\xd5', - '%D5': '\xd5', - '%d6': '\xd6', - '%D6': '\xd6', - '%d7': '\xd7', - '%D7': '\xd7', - '%d8': '\xd8', - '%D8': '\xd8', - '%d9': '\xd9', - '%D9': '\xd9', - '%da': '\xda', - '%Da': '\xda', - '%dA': '\xda', - '%DA': '\xda', - '%db': '\xdb', - '%Db': '\xdb', - '%dB': '\xdb', - '%DB': '\xdb', - '%dc': '\xdc', - '%Dc': '\xdc', - '%dC': '\xdc', - '%DC': '\xdc', - '%dd': '\xdd', - '%Dd': '\xdd', - '%dD': '\xdd', - '%DD': '\xdd', - '%de': '\xde', - '%De': '\xde', - '%dE': '\xde', - '%DE': '\xde', - '%df': '\xdf', - '%Df': '\xdf', - '%dF': '\xdf', - '%DF': '\xdf', - '%e0': '\xe0', - '%E0': '\xe0', - '%e1': '\xe1', - '%E1': '\xe1', - '%e2': '\xe2', - '%E2': '\xe2', - '%e3': '\xe3', - '%E3': '\xe3', - '%e4': '\xe4', - '%E4': '\xe4', - '%e5': '\xe5', - '%E5': '\xe5', - '%e6': '\xe6', - '%E6': '\xe6', - '%e7': '\xe7', - '%E7': '\xe7', - '%e8': '\xe8', - '%E8': '\xe8', - '%e9': '\xe9', - '%E9': '\xe9', - '%ea': '\xea', - '%Ea': '\xea', - '%eA': '\xea', - '%EA': '\xea', - '%eb': '\xeb', - '%Eb': '\xeb', - '%eB': '\xeb', - '%EB': '\xeb', - '%ec': '\xec', - '%Ec': '\xec', - '%eC': '\xec', - '%EC': '\xec', - '%ed': '\xed', - '%Ed': '\xed', - '%eD': '\xed', - '%ED': '\xed', - '%ee': '\xee', - '%Ee': '\xee', - '%eE': '\xee', - '%EE': '\xee', - '%ef': '\xef', - '%Ef': '\xef', - '%eF': '\xef', - '%EF': '\xef', - '%f0': '\xf0', - '%F0': '\xf0', - '%f1': '\xf1', - '%F1': '\xf1', - '%f2': '\xf2', - '%F2': '\xf2', - '%f3': '\xf3', - '%F3': '\xf3', - '%f4': '\xf4', - '%F4': '\xf4', - '%f5': '\xf5', - '%F5': '\xf5', - '%f6': '\xf6', - '%F6': '\xf6', - '%f7': '\xf7', - '%F7': '\xf7', - '%f8': '\xf8', - '%F8': '\xf8', - '%f9': '\xf9', - '%F9': '\xf9', - '%fa': '\xfa', - '%Fa': '\xfa', - '%fA': '\xfa', - '%FA': '\xfa', - '%fb': '\xfb', - '%Fb': '\xfb', - '%fB': '\xfb', - '%FB': '\xfb', - '%fc': '\xfc', - '%Fc': '\xfc', - '%fC': '\xfc', - '%FC': '\xfc', - '%fd': '\xfd', - '%Fd': '\xfd', - '%fD': '\xfd', - '%FD': '\xfd', - '%fe': '\xfe', - '%Fe': '\xfe', - '%fE': '\xfe', - '%FE': '\xfe', - '%ff': '\xff', - '%Ff': '\xff', - '%fF': '\xff', - '%FF': '\xff' - }; - function encodedReplacer(match) { - return EncodedLookup[match]; - } - const STATE_KEY = 0; - const STATE_VALUE = 1; - const STATE_CHARSET = 2; - const STATE_LANG = 3; - function parseParams(str) { - const res = []; - let state = STATE_KEY; - let charset = ''; - let inquote = false; - let escaping = false; - let p = 0; - let tmp = ''; - const len = str.length; - for(var i = 0; i < len; ++i){ - const char = str[i]; - if ('\\' === char && inquote) if (escaping) escaping = false; - else { - escaping = true; - continue; - } - else if ('"' === char) if (escaping) escaping = false; - else { - if (inquote) { - inquote = false; - state = STATE_KEY; - } else inquote = true; - continue; - } - else { - if (escaping && inquote) tmp += '\\'; - escaping = false; - if ((state === STATE_CHARSET || state === STATE_LANG) && "'" === char) { - if (state === STATE_CHARSET) { - state = STATE_LANG; - charset = tmp.substring(1); - } else state = STATE_VALUE; - tmp = ''; - continue; - } - if (state === STATE_KEY && ('*' === char || '=' === char) && res.length) { - state = '*' === char ? STATE_CHARSET : STATE_VALUE; - res[p] = [ - tmp, - void 0 - ]; - tmp = ''; - continue; - } - if (inquote || ';' !== char) { - if (!inquote && (' ' === char || '\t' === char)) continue; - } else { - state = STATE_KEY; - if (charset) { - if (tmp.length) tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), 'binary', charset); - charset = ''; - } else if (tmp.length) tmp = decodeText(tmp, 'binary', 'utf8'); - if (void 0 === res[p]) res[p] = tmp; - else res[p][1] = tmp; - tmp = ''; - ++p; - continue; + module.exports = require("node:worker_threads"); + }, + "node:zlib" (module) { + "use strict"; + module.exports = require("node:zlib"); + }, + path (module) { + "use strict"; + module.exports = require("path"); + }, + string_decoder (module) { + "use strict"; + module.exports = require("string_decoder"); + }, + tls (module) { + "use strict"; + module.exports = require("tls"); + }, + util (module) { + "use strict"; + module.exports = require("util"); + }, + "../node_modules/.pnpm/content-type@2.0.0/node_modules/content-type/dist/index.js" (__unused_rspack_module, exports1) { + "use strict"; + exports1.qg = parse; + const NullObject = /* @__PURE__ */ (()=>{ + const C = function() {}; + C.prototype = Object.create(null); + return C; + })(); + function parse(header, options) { + const len = header.length; + let index = skipOWS(header, 0, len); + const valueStart = index; + index = skipValue(header, index, len); + const valueEnd = trailingOWS(header, valueStart, index); + const type = header.slice(valueStart, valueEnd).toLowerCase(); + const parameters = options?.parameters === false ? new NullObject() : parseParameters(header, index, len); + return { + type, + parameters + }; + } + const SP = 32; + const HTAB = 9; + const SEMI = 59; + const EQ = 61; + const DQUOTE = 34; + const BSLASH = 92; + function parseParameters(header, index, len) { + const parameters = new NullObject(); + parameter: while(index < len){ + index = skipOWS(header, index + 1, len); + const keyStart = index; + while(index < len){ + const code = header.charCodeAt(index); + if (code === SEMI) continue parameter; + if (code === EQ) { + const keyEnd = trailingOWS(header, keyStart, index); + const key = header.slice(keyStart, keyEnd).toLowerCase(); + index = skipOWS(header, index + 1, len); + if (index < len && header.charCodeAt(index) === DQUOTE) { + index++; + let value = ""; + while(index < len){ + const code = header.charCodeAt(index++); + if (code === DQUOTE) { + index = skipValue(header, index, len); + if (void 0 === parameters[key]) parameters[key] = value; + break; + } + if (code === BSLASH && index < len) { + value += header[index++]; + continue; + } + value += String.fromCharCode(code); + } + continue parameter; + } + const valueStart = index; + index = skipValue(header, index, len); + if (void 0 === parameters[key]) { + const valueEnd = trailingOWS(header, valueStart, index); + parameters[key] = header.slice(valueStart, valueEnd); + } + continue parameter; } + index++; } - tmp += char; } - if (charset && tmp.length) tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), 'binary', charset); - else if (tmp) tmp = decodeText(tmp, 'binary', 'utf8'); - if (void 0 === res[p]) { - if (tmp) res[p] = tmp; - } else res[p][1] = tmp; - return res; + return parameters; + } + function skipValue(str, index, len) { + while(index < len){ + const char = str.charCodeAt(index); + if (char === SEMI) break; + index++; + } + return index; + } + function skipOWS(header, index, len) { + while(index < len){ + const char = header.charCodeAt(index); + if (char !== SP && char !== HTAB) break; + index++; + } + return index; + } + function trailingOWS(header, start, end) { + while(end > start){ + const char = header.charCodeAt(end - 1); + if (char !== SP && char !== HTAB) break; + end--; + } + return end; } - module.exports = parseParams; } }; var __webpack_module_cache__ = {}; @@ -33430,34 +15590,10 @@ function __webpack_require__(moduleId) { __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); return module.exports; } -(()=>{ - __webpack_require__.n = (module)=>{ - var getter = module && module.__esModule ? ()=>module['default'] : ()=>module; - __webpack_require__.d(getter, { - a: getter - }); - return getter; - }; -})(); -(()=>{ - __webpack_require__.d = (exports1, getters, values)=>{ - var define = (defs, kind)=>{ - for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, { - enumerable: true, - [kind]: defs[key] - }); - }; - define(getters, "get"); - define(values, "value"); - }; -})(); -(()=>{ - __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop); -})(); var __webpack_exports__ = {}; (()=>{ "use strict"; - var external_os_ = __webpack_require__("os"); + const external_os_namespaceObject = require("os"); function utils_toCommandValue(input) { if (null == input) return ''; if ('string' == typeof input || input instanceof String) return input; @@ -33476,7 +15612,7 @@ var __webpack_exports__ = {}; } function command_issueCommand(command, properties, message) { const cmd = new Command(command, properties, message); - process.stdout.write(cmd.toString() + external_os_.EOL); + process.stdout.write(cmd.toString() + external_os_namespaceObject.EOL); } const CMD_STRING = '::'; class Command { @@ -33510,29 +15646,29 @@ var __webpack_exports__ = {}; function escapeProperty(s) { return utils_toCommandValue(s).replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A').replace(/:/g, '%3A').replace(/,/g, '%2C'); } - var external_crypto_ = __webpack_require__("crypto"); + const external_crypto_namespaceObject = require("crypto"); var external_fs_ = __webpack_require__("fs"); function file_command_issueFileCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) throw new Error(`Unable to find environment variable for file command ${command}`); if (!external_fs_.existsSync(filePath)) throw new Error(`Missing file at path: ${filePath}`); - external_fs_.appendFileSync(filePath, `${utils_toCommandValue(message)}${external_os_.EOL}`, { + external_fs_.appendFileSync(filePath, `${utils_toCommandValue(message)}${external_os_namespaceObject.EOL}`, { encoding: 'utf8' }); } function file_command_prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${external_crypto_.randomUUID()}`; + const delimiter = `ghadelimiter_${external_crypto_namespaceObject.randomUUID()}`; const convertedValue = utils_toCommandValue(value); if (key.includes(delimiter)) throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); if (convertedValue.includes(delimiter)) throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); - return `${key}<<${delimiter}${external_os_.EOL}${convertedValue}${external_os_.EOL}${delimiter}`; + return `${key}<<${delimiter}${external_os_namespaceObject.EOL}${convertedValue}${external_os_namespaceObject.EOL}${delimiter}`; } __webpack_require__("path"); __webpack_require__("http"); __webpack_require__("https"); URL; __webpack_require__("../node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js"); - __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/index.js"); + var undici = __webpack_require__("../node_modules/.pnpm/undici@6.24.1/node_modules/undici/index.js"); var lib_HttpCodes; (function(HttpCodes) { HttpCodes[HttpCodes["OK"] = 200] = "OK"; @@ -33659,7 +15795,7 @@ var __webpack_exports__ = {}; return addEOL ? this.addEOL() : this; } addEOL() { - return this.addRaw(external_os_.EOL); + return this.addRaw(external_os_namespaceObject.EOL); } addCodeBlock(code, lang) { const attrs = Object.assign({}, lang && { @@ -33756,8 +15892,8 @@ var __webpack_exports__ = {}; process.platform; external_events_.EventEmitter; external_events_.EventEmitter; - external_os_.platform(); - external_os_.arch(); + external_os_namespaceObject.platform(); + external_os_namespaceObject.arch(); var core_ExitCode; (function(ExitCode) { ExitCode[ExitCode["Success"] = 0] = "Success"; @@ -33791,7 +15927,7 @@ var __webpack_exports__ = {}; function setOutput(name, value) { const filePath = process.env['GITHUB_OUTPUT'] || ''; if (filePath) return file_command_issueFileCommand('OUTPUT', file_command_prepareKeyValueMessage(name, value)); - process.stdout.write(external_os_.EOL); + process.stdout.write(external_os_namespaceObject.EOL); command_issueCommand('set-output', { name }, utils_toCommandValue(value)); @@ -33804,7 +15940,7 @@ var __webpack_exports__ = {}; command_issueCommand('error', utils_toCommandProperties(properties), message instanceof Error ? message.toString() : message); } function core_info(message) { - process.stdout.write(message + external_os_.EOL); + process.stdout.write(message + external_os_namespaceObject.EOL); } function isPlainObject(value) { if ('object' != typeof value || null === value) return false; @@ -34403,7 +16539,7 @@ Please set the "stdio" option to ensure that file descriptor exists.`); Object.entries(specialMainSymbols); const external_node_tty_namespaceObject = require("node:tty"); const hasColors = external_node_tty_namespaceObject?.WriteStream?.prototype?.hasColors?.() ?? false; - const format = (open, close)=>{ + const base_format = (open, close)=>{ if (!hasColors) return (input)=>input; const openCode = `\u001B[${open}m`; const closeCode = `\u001B[${close}m`; @@ -34424,47 +16560,47 @@ Please set the "stdio" option to ensure that file descriptor exists.`); return result; }; }; - format(0, 0); - const bold = format(1, 22); - format(2, 22); - format(3, 23); - format(4, 24); - format(53, 55); - format(7, 27); - format(8, 28); - format(9, 29); - format(30, 39); - format(31, 39); - format(32, 39); - format(33, 39); - format(34, 39); - format(35, 39); - format(36, 39); - format(37, 39); - const gray = format(90, 39); - format(40, 49); - format(41, 49); - format(42, 49); - format(43, 49); - format(44, 49); - format(45, 49); - format(46, 49); - format(47, 49); - format(100, 49); - const redBright = format(91, 39); - format(92, 39); - const yellowBright = format(93, 39); - format(94, 39); - format(95, 39); - format(96, 39); - format(97, 39); - format(101, 49); - format(102, 49); - format(103, 49); - format(104, 49); - format(105, 49); - format(106, 49); - format(107, 49); + base_format(0, 0); + const bold = base_format(1, 22); + base_format(2, 22); + base_format(3, 23); + base_format(4, 24); + base_format(53, 55); + base_format(7, 27); + base_format(8, 28); + base_format(9, 29); + base_format(30, 39); + base_format(31, 39); + base_format(32, 39); + base_format(33, 39); + base_format(34, 39); + base_format(35, 39); + base_format(36, 39); + base_format(37, 39); + const gray = base_format(90, 39); + base_format(40, 49); + base_format(41, 49); + base_format(42, 49); + base_format(43, 49); + base_format(44, 49); + base_format(45, 49); + base_format(46, 49); + base_format(47, 49); + base_format(100, 49); + const redBright = base_format(91, 39); + base_format(92, 39); + const yellowBright = base_format(93, 39); + base_format(94, 39); + base_format(95, 39); + base_format(96, 39); + base_format(97, 39); + base_format(101, 49); + base_format(102, 49); + base_format(103, 49); + base_format(104, 49); + base_format(105, 49); + base_format(106, 49); + base_format(107, 49); const defaultVerboseFunction = ({ type, message, timestamp, piped, commandId, result: { failed = false } = {}, options: { reject = true } })=>{ const timestampString = serializeTimestamp(timestamp); const icon = ICONS[type]({ @@ -39274,9 +21410,161 @@ Instead, \`yield\` should either be called with a value, or not be called at all if (error && !isStreamAbort(error)) stream.destroy(error); else if (isOpen) stream.destroy(); }; - const createReadable = ({ subprocess, concurrentStreams, encoding }, { from, binary: binaryOption = true, preserveNewlines = true } = {})=>{ + const createReadable = ({ subprocess, concurrentStreams, encoding }, { from, binary: binaryOption = true, preserveNewlines = true } = {})=>{ + const binary = binaryOption || BINARY_ENCODINGS.has(encoding); + const { subprocessStdout, waitReadableDestroy } = getSubprocessStdout(subprocess, from, concurrentStreams); + const { readableEncoding, readableObjectMode, readableHighWaterMark } = getReadableOptions(subprocessStdout, binary); + const { read, onStdoutDataDone } = getReadableMethods({ + subprocessStdout, + subprocess, + binary, + encoding, + preserveNewlines + }); + const readable = new external_node_stream_.Readable({ + read, + destroy: (0, external_node_util_.callbackify)(onReadableDestroy.bind(void 0, { + subprocessStdout, + subprocess, + waitReadableDestroy + })), + highWaterMark: readableHighWaterMark, + objectMode: readableObjectMode, + encoding: readableEncoding + }); + onStdoutFinished({ + subprocessStdout, + onStdoutDataDone, + readable, + subprocess + }); + return readable; + }; + const getSubprocessStdout = (subprocess, from, concurrentStreams)=>{ + const subprocessStdout = getFromStream(subprocess, from); + const waitReadableDestroy = addConcurrentStream(concurrentStreams, subprocessStdout, 'readableDestroy'); + return { + subprocessStdout, + waitReadableDestroy + }; + }; + const getReadableOptions = ({ readableEncoding, readableObjectMode, readableHighWaterMark }, binary)=>binary ? { + readableEncoding, + readableObjectMode, + readableHighWaterMark + } : { + readableEncoding, + readableObjectMode: true, + readableHighWaterMark: DEFAULT_OBJECT_HIGH_WATER_MARK + }; + const getReadableMethods = ({ subprocessStdout, subprocess, binary, encoding, preserveNewlines })=>{ + const onStdoutDataDone = createDeferred(); + const onStdoutData = iterateOnSubprocessStream({ + subprocessStdout, + subprocess, + binary, + shouldEncode: !binary, + encoding, + preserveNewlines + }); + return { + read () { + onRead(this, onStdoutData, onStdoutDataDone); + }, + onStdoutDataDone + }; + }; + const onRead = async (readable, onStdoutData, onStdoutDataDone)=>{ + try { + const { value, done } = await onStdoutData.next(); + if (done) onStdoutDataDone.resolve(); + else readable.push(value); + } catch {} + }; + const onStdoutFinished = async ({ subprocessStdout, onStdoutDataDone, readable, subprocess, subprocessStdin })=>{ + try { + await waitForSubprocessStdout(subprocessStdout); + await subprocess; + await safeWaitForSubprocessStdin(subprocessStdin); + await onStdoutDataDone; + if (readable.readable) readable.push(null); + } catch (error) { + await safeWaitForSubprocessStdin(subprocessStdin); + destroyOtherReadable(readable, error); + } + }; + const onReadableDestroy = async ({ subprocessStdout, subprocess, waitReadableDestroy }, error)=>{ + if (await waitForConcurrentStreams(waitReadableDestroy, subprocess)) { + destroyOtherReadable(subprocessStdout, error); + await waitForSubprocess(subprocess, error); + } + }; + const destroyOtherReadable = (stream, error)=>{ + destroyOtherStream(stream, stream.readable, error); + }; + const createWritable = ({ subprocess, concurrentStreams }, { to } = {})=>{ + const { subprocessStdin, waitWritableFinal, waitWritableDestroy } = getSubprocessStdin(subprocess, to, concurrentStreams); + const writable = new external_node_stream_.Writable({ + ...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal), + destroy: (0, external_node_util_.callbackify)(onWritableDestroy.bind(void 0, { + subprocessStdin, + subprocess, + waitWritableFinal, + waitWritableDestroy + })), + highWaterMark: subprocessStdin.writableHighWaterMark, + objectMode: subprocessStdin.writableObjectMode + }); + onStdinFinished(subprocessStdin, writable); + return writable; + }; + const getSubprocessStdin = (subprocess, to, concurrentStreams)=>{ + const subprocessStdin = getToStream(subprocess, to); + const waitWritableFinal = addConcurrentStream(concurrentStreams, subprocessStdin, 'writableFinal'); + const waitWritableDestroy = addConcurrentStream(concurrentStreams, subprocessStdin, 'writableDestroy'); + return { + subprocessStdin, + waitWritableFinal, + waitWritableDestroy + }; + }; + const getWritableMethods = (subprocessStdin, subprocess, waitWritableFinal)=>({ + write: onWrite.bind(void 0, subprocessStdin), + final: (0, external_node_util_.callbackify)(onWritableFinal.bind(void 0, subprocessStdin, subprocess, waitWritableFinal)) + }); + const onWrite = (subprocessStdin, chunk, encoding, done)=>{ + if (subprocessStdin.write(chunk, encoding)) done(); + else subprocessStdin.once('drain', done); + }; + const onWritableFinal = async (subprocessStdin, subprocess, waitWritableFinal)=>{ + if (await waitForConcurrentStreams(waitWritableFinal, subprocess)) { + if (subprocessStdin.writable) subprocessStdin.end(); + await subprocess; + } + }; + const onStdinFinished = async (subprocessStdin, writable, subprocessStdout)=>{ + try { + await waitForSubprocessStdin(subprocessStdin); + if (writable.writable) writable.end(); + } catch (error) { + await safeWaitForSubprocessStdout(subprocessStdout); + destroyOtherWritable(writable, error); + } + }; + const onWritableDestroy = async ({ subprocessStdin, subprocess, waitWritableFinal, waitWritableDestroy }, error)=>{ + await waitForConcurrentStreams(waitWritableFinal, subprocess); + if (await waitForConcurrentStreams(waitWritableDestroy, subprocess)) { + destroyOtherWritable(subprocessStdin, error); + await waitForSubprocess(subprocess, error); + } + }; + const destroyOtherWritable = (stream, error)=>{ + destroyOtherStream(stream, stream.writable, error); + }; + const createDuplex = ({ subprocess, concurrentStreams, encoding }, { from, to, binary: binaryOption = true, preserveNewlines = true } = {})=>{ const binary = binaryOption || BINARY_ENCODINGS.has(encoding); const { subprocessStdout, waitReadableDestroy } = getSubprocessStdout(subprocess, from, concurrentStreams); + const { subprocessStdin, waitWritableFinal, waitWritableDestroy } = getSubprocessStdin(subprocess, to, concurrentStreams); const { readableEncoding, readableObjectMode, readableHighWaterMark } = getReadableOptions(subprocessStdout, binary); const { read, onStdoutDataDone } = getReadableMethods({ subprocessStdout, @@ -39285,570 +21573,4986 @@ Instead, \`yield\` should either be called with a value, or not be called at all encoding, preserveNewlines }); - const readable = new external_node_stream_.Readable({ + const duplex = new external_node_stream_.Duplex({ read, - destroy: (0, external_node_util_.callbackify)(onReadableDestroy.bind(void 0, { + ...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal), + destroy: (0, external_node_util_.callbackify)(onDuplexDestroy.bind(void 0, { subprocessStdout, + subprocessStdin, subprocess, - waitReadableDestroy + waitReadableDestroy, + waitWritableFinal, + waitWritableDestroy })), - highWaterMark: readableHighWaterMark, - objectMode: readableObjectMode, + readableHighWaterMark, + writableHighWaterMark: subprocessStdin.writableHighWaterMark, + readableObjectMode, + writableObjectMode: subprocessStdin.writableObjectMode, encoding: readableEncoding }); onStdoutFinished({ subprocessStdout, onStdoutDataDone, - readable, - subprocess + readable: duplex, + subprocess, + subprocessStdin }); - return readable; + onStdinFinished(subprocessStdin, duplex, subprocessStdout); + return duplex; }; - const getSubprocessStdout = (subprocess, from, concurrentStreams)=>{ - const subprocessStdout = getFromStream(subprocess, from); - const waitReadableDestroy = addConcurrentStream(concurrentStreams, subprocessStdout, 'readableDestroy'); - return { - subprocessStdout, - waitReadableDestroy - }; + const onDuplexDestroy = async ({ subprocessStdout, subprocessStdin, subprocess, waitReadableDestroy, waitWritableFinal, waitWritableDestroy }, error)=>{ + await Promise.all([ + onReadableDestroy({ + subprocessStdout, + subprocess, + waitReadableDestroy + }, error), + onWritableDestroy({ + subprocessStdin, + subprocess, + waitWritableFinal, + waitWritableDestroy + }, error) + ]); }; - const getReadableOptions = ({ readableEncoding, readableObjectMode, readableHighWaterMark }, binary)=>binary ? { - readableEncoding, - readableObjectMode, - readableHighWaterMark - } : { - readableEncoding, - readableObjectMode: true, - readableHighWaterMark: DEFAULT_OBJECT_HIGH_WATER_MARK - }; - const getReadableMethods = ({ subprocessStdout, subprocess, binary, encoding, preserveNewlines })=>{ - const onStdoutDataDone = createDeferred(); + const createIterable = (subprocess, encoding, { from, binary: binaryOption = false, preserveNewlines = false } = {})=>{ + const binary = binaryOption || BINARY_ENCODINGS.has(encoding); + const subprocessStdout = getFromStream(subprocess, from); const onStdoutData = iterateOnSubprocessStream({ subprocessStdout, subprocess, binary, - shouldEncode: !binary, + shouldEncode: true, encoding, preserveNewlines }); + return iterateOnStdoutData(onStdoutData, subprocessStdout, subprocess); + }; + const iterateOnStdoutData = async function*(onStdoutData, subprocessStdout, subprocess) { + try { + yield* onStdoutData; + } finally{ + if (subprocessStdout.readable) subprocessStdout.destroy(); + await subprocess; + } + }; + const addConvertedStreams = (subprocess, { encoding })=>{ + const concurrentStreams = initializeConcurrentStreams(); + subprocess.readable = createReadable.bind(void 0, { + subprocess, + concurrentStreams, + encoding + }); + subprocess.writable = createWritable.bind(void 0, { + subprocess, + concurrentStreams + }); + subprocess.duplex = createDuplex.bind(void 0, { + subprocess, + concurrentStreams, + encoding + }); + subprocess.iterable = createIterable.bind(void 0, subprocess, encoding); + subprocess[Symbol.asyncIterator] = createIterable.bind(void 0, subprocess, encoding, {}); + }; + const mergePromise = (subprocess, promise)=>{ + for (const [property, descriptor] of descriptors){ + const value = descriptor.value.bind(promise); + Reflect.defineProperty(subprocess, property, { + ...descriptor, + value + }); + } + }; + const nativePromisePrototype = (async ()=>{})().constructor.prototype; + const descriptors = [ + 'then', + 'catch', + 'finally' + ].map((property)=>[ + property, + Reflect.getOwnPropertyDescriptor(nativePromisePrototype, property) + ]); + const execaCoreAsync = (rawFile, rawArguments, rawOptions, createNested)=>{ + const { file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors } = handleAsyncArguments(rawFile, rawArguments, rawOptions); + const { subprocess, promise } = spawnSubprocessAsync({ + file, + commandArguments, + options, + startTime, + verboseInfo, + command, + escapedCommand, + fileDescriptors + }); + subprocess.pipe = pipeToSubprocess.bind(void 0, { + source: subprocess, + sourcePromise: promise, + boundOptions: {}, + createNested + }); + mergePromise(subprocess, promise); + SUBPROCESS_OPTIONS.set(subprocess, { + options, + fileDescriptors + }); + return subprocess; + }; + const handleAsyncArguments = (rawFile, rawArguments, rawOptions)=>{ + const { command, escapedCommand, startTime, verboseInfo } = handleCommand(rawFile, rawArguments, rawOptions); + const { file, commandArguments, options: normalizedOptions } = normalizeOptions(rawFile, rawArguments, rawOptions); + const options = handleAsyncOptions(normalizedOptions); + const fileDescriptors = handleStdioAsync(options, verboseInfo); + return { + file, + commandArguments, + command, + escapedCommand, + startTime, + verboseInfo, + options, + fileDescriptors + }; + }; + const handleAsyncOptions = ({ timeout, signal, ...options })=>{ + if (void 0 !== signal) throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.'); + return { + ...options, + timeoutDuration: timeout + }; + }; + const spawnSubprocessAsync = ({ file, commandArguments, options, startTime, verboseInfo, command, escapedCommand, fileDescriptors })=>{ + let subprocess; + try { + subprocess = (0, external_node_child_process_namespaceObject.spawn)(...concatenateShell(file, commandArguments, options)); + } catch (error) { + return handleEarlyError({ + error, + command, + escapedCommand, + fileDescriptors, + options, + startTime, + verboseInfo + }); + } + const controller = new AbortController(); + (0, external_node_events_.setMaxListeners)(1 / 0, controller.signal); + const originalStreams = [ + ...subprocess.stdio + ]; + pipeOutputAsync(subprocess, fileDescriptors, controller); + cleanupOnExit(subprocess, options, controller); + const context = {}; + const onInternalError = createDeferred(); + subprocess.kill = subprocessKill.bind(void 0, { + kill: subprocess.kill.bind(subprocess), + options, + onInternalError, + context, + controller + }); + subprocess.all = makeAllStream(subprocess, options); + addConvertedStreams(subprocess, options); + addIpcMethods(subprocess, options); + const promise = handlePromise({ + subprocess, + options, + startTime, + verboseInfo, + fileDescriptors, + originalStreams, + command, + escapedCommand, + context, + onInternalError, + controller + }); + return { + subprocess, + promise + }; + }; + const handlePromise = async ({ subprocess, options, startTime, verboseInfo, fileDescriptors, originalStreams, command, escapedCommand, context, onInternalError, controller })=>{ + const [errorInfo, [exitCode, signal], stdioResults, allResult, ipcOutput] = await waitForSubprocessResult({ + subprocess, + options, + context, + verboseInfo, + fileDescriptors, + originalStreams, + onInternalError, + controller + }); + controller.abort(); + onInternalError.resolve(); + const stdio = stdioResults.map((stdioResult, fdNumber)=>stripNewline(stdioResult, options, fdNumber)); + const all = stripNewline(allResult, options, 'all'); + const result = getAsyncResult({ + errorInfo, + exitCode, + signal, + stdio, + all, + ipcOutput, + context, + options, + command, + escapedCommand, + startTime + }); + return reject_handleResult(result, verboseInfo, options); + }; + const getAsyncResult = ({ errorInfo, exitCode, signal, stdio, all, ipcOutput, context, options, command, escapedCommand, startTime })=>'error' in errorInfo ? makeError({ + error: errorInfo.error, + command, + escapedCommand, + timedOut: 'timeout' === context.terminationReason, + isCanceled: 'cancel' === context.terminationReason || 'gracefulCancel' === context.terminationReason, + isGracefullyCanceled: 'gracefulCancel' === context.terminationReason, + isMaxBuffer: errorInfo.error instanceof MaxBufferError, + isForcefullyTerminated: context.isForcefullyTerminated, + exitCode, + signal, + stdio, + all, + ipcOutput, + options, + startTime, + isSync: false + }) : makeSuccessResult({ + command, + escapedCommand, + stdio, + all, + ipcOutput, + options, + startTime + }); + const mergeOptions = (boundOptions, options)=>{ + const newOptions = Object.fromEntries(Object.entries(options).map(([optionName, optionValue])=>[ + optionName, + mergeOption(optionName, boundOptions[optionName], optionValue) + ])); return { - read () { - onRead(this, onStdoutData, onStdoutDataDone); - }, - onStdoutDataDone + ...boundOptions, + ...newOptions }; }; - const onRead = async (readable, onStdoutData, onStdoutDataDone)=>{ - try { - const { value, done } = await onStdoutData.next(); - if (done) onStdoutDataDone.resolve(); - else readable.push(value); - } catch {} - }; - const onStdoutFinished = async ({ subprocessStdout, onStdoutDataDone, readable, subprocess, subprocessStdin })=>{ - try { - await waitForSubprocessStdout(subprocessStdout); - await subprocess; - await safeWaitForSubprocessStdin(subprocessStdin); - await onStdoutDataDone; - if (readable.readable) readable.push(null); - } catch (error) { - await safeWaitForSubprocessStdin(subprocessStdin); - destroyOtherReadable(readable, error); - } - }; - const onReadableDestroy = async ({ subprocessStdout, subprocess, waitReadableDestroy }, error)=>{ - if (await waitForConcurrentStreams(waitReadableDestroy, subprocess)) { - destroyOtherReadable(subprocessStdout, error); - await waitForSubprocess(subprocess, error); - } + const mergeOption = (optionName, boundOptionValue, optionValue)=>{ + if (DEEP_OPTIONS.has(optionName) && isPlainObject(boundOptionValue) && isPlainObject(optionValue)) return { + ...boundOptionValue, + ...optionValue + }; + return optionValue; }; - const destroyOtherReadable = (stream, error)=>{ - destroyOtherStream(stream, stream.readable, error); + const DEEP_OPTIONS = new Set([ + 'env', + ...FD_SPECIFIC_OPTIONS + ]); + const createExeca = (mapArguments, boundOptions, deepOptions, setBoundExeca)=>{ + const createNested = (mapArguments, boundOptions, setBoundExeca)=>createExeca(mapArguments, boundOptions, deepOptions, setBoundExeca); + const boundExeca = (...execaArguments)=>callBoundExeca({ + mapArguments, + deepOptions, + boundOptions, + setBoundExeca, + createNested + }, ...execaArguments); + if (void 0 !== setBoundExeca) setBoundExeca(boundExeca, createNested, boundOptions); + return boundExeca; }; - const createWritable = ({ subprocess, concurrentStreams }, { to } = {})=>{ - const { subprocessStdin, waitWritableFinal, waitWritableDestroy } = getSubprocessStdin(subprocess, to, concurrentStreams); - const writable = new external_node_stream_.Writable({ - ...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal), - destroy: (0, external_node_util_.callbackify)(onWritableDestroy.bind(void 0, { - subprocessStdin, - subprocess, - waitWritableFinal, - waitWritableDestroy - })), - highWaterMark: subprocessStdin.writableHighWaterMark, - objectMode: subprocessStdin.writableObjectMode + const callBoundExeca = ({ mapArguments, deepOptions = {}, boundOptions = {}, setBoundExeca, createNested }, firstArgument, ...nextArguments)=>{ + if (isPlainObject(firstArgument)) return createNested(mapArguments, mergeOptions(boundOptions, firstArgument), setBoundExeca); + const { file, commandArguments, options, isSync } = parseArguments({ + mapArguments, + firstArgument, + nextArguments, + deepOptions, + boundOptions }); - onStdinFinished(subprocessStdin, writable); - return writable; + return isSync ? execaCoreSync(file, commandArguments, options) : execaCoreAsync(file, commandArguments, options, createNested); }; - const getSubprocessStdin = (subprocess, to, concurrentStreams)=>{ - const subprocessStdin = getToStream(subprocess, to); - const waitWritableFinal = addConcurrentStream(concurrentStreams, subprocessStdin, 'writableFinal'); - const waitWritableDestroy = addConcurrentStream(concurrentStreams, subprocessStdin, 'writableDestroy'); + const parseArguments = ({ mapArguments, firstArgument, nextArguments, deepOptions, boundOptions })=>{ + const callArguments = isTemplateString(firstArgument) ? parseTemplates(firstArgument, nextArguments) : [ + firstArgument, + ...nextArguments + ]; + const [initialFile, initialArguments, initialOptions] = normalizeParameters(...callArguments); + const mergedOptions = mergeOptions(mergeOptions(deepOptions, boundOptions), initialOptions); + const { file = initialFile, commandArguments = initialArguments, options = mergedOptions, isSync = false } = mapArguments({ + file: initialFile, + commandArguments: initialArguments, + options: mergedOptions + }); return { - subprocessStdin, - waitWritableFinal, - waitWritableDestroy + file, + commandArguments, + options, + isSync }; }; - const getWritableMethods = (subprocessStdin, subprocess, waitWritableFinal)=>({ - write: onWrite.bind(void 0, subprocessStdin), - final: (0, external_node_util_.callbackify)(onWritableFinal.bind(void 0, subprocessStdin, subprocess, waitWritableFinal)) + const mapCommandAsync = ({ file, commandArguments })=>parseCommand(file, commandArguments); + const mapCommandSync = ({ file, commandArguments })=>({ + ...parseCommand(file, commandArguments), + isSync: true }); - const onWrite = (subprocessStdin, chunk, encoding, done)=>{ - if (subprocessStdin.write(chunk, encoding)) done(); - else subprocessStdin.once('drain', done); - }; - const onWritableFinal = async (subprocessStdin, subprocess, waitWritableFinal)=>{ - if (await waitForConcurrentStreams(waitWritableFinal, subprocess)) { - if (subprocessStdin.writable) subprocessStdin.end(); - await subprocess; - } + const parseCommand = (command, unusedArguments)=>{ + if (unusedArguments.length > 0) throw new TypeError(`The command and its arguments must be passed as a single string: ${command} ${unusedArguments}.`); + const [file, ...commandArguments] = parseCommandString(command); + return { + file, + commandArguments + }; }; - const onStdinFinished = async (subprocessStdin, writable, subprocessStdout)=>{ - try { - await waitForSubprocessStdin(subprocessStdin); - if (writable.writable) writable.end(); - } catch (error) { - await safeWaitForSubprocessStdout(subprocessStdout); - destroyOtherWritable(writable, error); + const parseCommandString = (command)=>{ + if ('string' != typeof command) throw new TypeError(`The command must be a string: ${String(command)}.`); + const trimmedCommand = command.trim(); + if ('' === trimmedCommand) return []; + const tokens = []; + for (const token of trimmedCommand.split(SPACES_REGEXP)){ + const previousToken = tokens.at(-1); + if (previousToken && previousToken.endsWith('\\')) tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`; + else tokens.push(token); } + return tokens; }; - const onWritableDestroy = async ({ subprocessStdin, subprocess, waitWritableFinal, waitWritableDestroy }, error)=>{ - await waitForConcurrentStreams(waitWritableFinal, subprocess); - if (await waitForConcurrentStreams(waitWritableDestroy, subprocess)) { - destroyOtherWritable(subprocessStdin, error); - await waitForSubprocess(subprocess, error); - } + const SPACES_REGEXP = / +/g; + const setScriptSync = (boundExeca, createNested, boundOptions)=>{ + boundExeca.sync = createNested(mapScriptSync, boundOptions); + boundExeca.s = boundExeca.sync; }; - const destroyOtherWritable = (stream, error)=>{ - destroyOtherStream(stream, stream.writable, error); + const mapScriptAsync = ({ options })=>getScriptOptions(options); + const mapScriptSync = ({ options })=>({ + ...getScriptOptions(options), + isSync: true + }); + const getScriptOptions = (options)=>({ + options: { + ...getScriptStdinOption(options), + ...options + } + }); + const getScriptStdinOption = ({ input, inputFile, stdio })=>void 0 === input && void 0 === inputFile && void 0 === stdio ? { + stdin: 'inherit' + } : {}; + const deepScriptOptions = { + preferLocal: true }; - const createDuplex = ({ subprocess, concurrentStreams, encoding }, { from, to, binary: binaryOption = true, preserveNewlines = true } = {})=>{ - const binary = binaryOption || BINARY_ENCODINGS.has(encoding); - const { subprocessStdout, waitReadableDestroy } = getSubprocessStdout(subprocess, from, concurrentStreams); - const { subprocessStdin, waitWritableFinal, waitWritableDestroy } = getSubprocessStdin(subprocess, to, concurrentStreams); - const { readableEncoding, readableObjectMode, readableHighWaterMark } = getReadableOptions(subprocessStdout, binary); - const { read, onStdoutDataDone } = getReadableMethods({ - subprocessStdout, - subprocess, - binary, - encoding, - preserveNewlines + createExeca(()=>({})); + createExeca(()=>({ + isSync: true + })); + createExeca(mapCommandAsync); + createExeca(mapCommandSync); + createExeca(mapNode); + const $ = createExeca(mapScriptAsync, {}, deepScriptOptions, setScriptSync); + const { sendMessage: execa_sendMessage, getOneMessage: execa_getOneMessage, getEachMessage: execa_getEachMessage, getCancelSignal: execa_getCancelSignal } = getIpcExport(); + const external_node_fs_promises_namespaceObject = require("node:fs/promises"); + const nx_json_js_namespaceObject = require("nx/src/config/nx-json.js"); + const project_graph_js_namespaceObject = require("nx/src/project-graph/project-graph.js"); + const find_matching_projects_js_namespaceObject = require("nx/src/utils/find-matching-projects.js"); + async function discoverPackages() { + const nxJson = (0, nx_json_js_namespaceObject.readNxJson)(); + const projectGraph = await (0, project_graph_js_namespaceObject.createProjectGraphAsync)(); + const tagPattern = nxJson?.release?.releaseTag?.pattern ?? '{projectName}/v{version}'; + const groups = nxJson?.release?.groups; + const releaseProjects = nxJson?.release?.projects; + let projectNames; + if (groups) projectNames = Array.from(new Set(Object.values(groups).flatMap((group)=>group.projects))); + else if (releaseProjects) { + const patterns = Array.isArray(releaseProjects) ? releaseProjects : [ + releaseProjects + ]; + projectNames = (0, find_matching_projects_js_namespaceObject.findMatchingProjects)(patterns, projectGraph.nodes); + } else throw new Error('No release groups or projects found in nx.json'); + const packages = await Promise.all(projectNames.map(async (projectName)=>{ + const node = projectGraph.nodes[projectName]; + if (!node) throw new Error(`Project "${projectName}" not found in project graph`); + const { root } = node.data; + const npmName = node.data.metadata?.js?.packageName ?? projectName; + const packageJsonPath = (0, external_node_path_namespaceObject.join)(root, 'package.json'); + const packageJson = JSON.parse(await (0, external_node_fs_promises_namespaceObject.readFile)(packageJsonPath, 'utf8')); + const expectedTag = tagPattern.replace('{projectName}', npmName).replace('{version}', packageJson.version); + return { + projectName, + npmName, + version: packageJson.version, + root, + expectedTag + }; + })); + return packages; + } + class Context { + constructor(){ + var _a, _b, _c; + this.payload = {}; + if (process.env.GITHUB_EVENT_PATH) if ((0, external_fs_.existsSync)(process.env.GITHUB_EVENT_PATH)) this.payload = JSON.parse((0, external_fs_.readFileSync)(process.env.GITHUB_EVENT_PATH, { + encoding: 'utf8' + })); + else { + const path = process.env.GITHUB_EVENT_PATH; + process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${external_os_namespaceObject.EOL}`); + } + this.eventName = process.env.GITHUB_EVENT_NAME; + this.sha = process.env.GITHUB_SHA; + this.ref = process.env.GITHUB_REF; + this.workflow = process.env.GITHUB_WORKFLOW; + this.action = process.env.GITHUB_ACTION; + this.actor = process.env.GITHUB_ACTOR; + this.job = process.env.GITHUB_JOB; + this.runAttempt = parseInt(process.env.GITHUB_RUN_ATTEMPT, 10); + this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); + this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); + this.apiUrl = null != (_a = process.env.GITHUB_API_URL) ? _a : "https://api.github.com"; + this.serverUrl = null != (_b = process.env.GITHUB_SERVER_URL) ? _b : "https://github.com"; + this.graphqlUrl = null != (_c = process.env.GITHUB_GRAPHQL_URL) ? _c : "https://api.github.com/graphql"; + } + get issue() { + const payload = this.payload; + return Object.assign(Object.assign({}, this.repo), { + number: (payload.issue || payload.pull_request || payload).number + }); + } + get repo() { + if (process.env.GITHUB_REPOSITORY) { + const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); + return { + owner, + repo + }; + } + if (this.payload.repository) return { + owner: this.payload.repository.owner.login, + repo: this.payload.repository.name + }; + throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); + } + } + var lib = __webpack_require__("../node_modules/.pnpm/@actions+http-client@3.0.2/node_modules/@actions/http-client/lib/index.js"); + var utils_awaiter = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); - const duplex = new external_node_stream_.Duplex({ - read, - ...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal), - destroy: (0, external_node_util_.callbackify)(onDuplexDestroy.bind(void 0, { - subprocessStdout, - subprocessStdin, - subprocess, - waitReadableDestroy, - waitWritableFinal, - waitWritableDestroy - })), - readableHighWaterMark, - writableHighWaterMark: subprocessStdin.writableHighWaterMark, - readableObjectMode, - writableObjectMode: subprocessStdin.writableObjectMode, - encoding: readableEncoding + }; + function getAuthString(token, options) { + if (token || options.auth) { + if (token && options.auth) throw new Error('Parameters token and opts.auth may not both be specified'); + } else throw new Error('Parameter token or opts.auth is required'); + return 'string' == typeof options.auth ? options.auth : `token ${token}`; + } + function getProxyAgent(destinationUrl) { + const hc = new lib.HttpClient(); + return hc.getAgent(destinationUrl); + } + function getProxyAgentDispatcher(destinationUrl) { + const hc = new lib.HttpClient(); + return hc.getAgentDispatcher(destinationUrl); + } + function getProxyFetch(destinationUrl) { + const httpDispatcher = getProxyAgentDispatcher(destinationUrl); + const proxyFetch = (url, opts)=>utils_awaiter(this, void 0, void 0, function*() { + return (0, undici.hd)(url, Object.assign(Object.assign({}, opts), { + dispatcher: httpDispatcher + })); + }); + return proxyFetch; + } + function getApiBaseUrl() { + return process.env['GITHUB_API_URL'] || 'https://api.github.com'; + } + function getUserAgentWithOrchestrationId(baseUserAgent) { + var _a; + const orchId = null == (_a = process.env['ACTIONS_ORCHESTRATION_ID']) ? void 0 : _a.trim(); + if (orchId) { + const sanitizedId = orchId.replace(/[^a-z0-9_.-]/gi, '_'); + const tag = `actions_orchestration_id/${sanitizedId}`; + if (null == baseUserAgent ? void 0 : baseUserAgent.includes(tag)) return baseUserAgent; + const ua = baseUserAgent ? `${baseUserAgent} ` : ''; + return `${ua}${tag}`; + } + return baseUserAgent; + } + function getUserAgent() { + if ("object" == typeof navigator && "userAgent" in navigator) return navigator.userAgent; + if ("object" == typeof process && void 0 !== process.version) return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + return ""; + } + function register(state, name, method, options) { + if ("function" != typeof method) throw new Error("method for before hook must be a function"); + if (!options) options = {}; + if (Array.isArray(name)) return name.reverse().reduce((callback, name)=>register.bind(null, state, name, callback, options), method)(); + return Promise.resolve().then(()=>{ + if (!state.registry[name]) return method(options); + return state.registry[name].reduce((method, registered)=>registered.hook.bind(null, method, options), method)(); }); - onStdoutFinished({ - subprocessStdout, - onStdoutDataDone, - readable: duplex, - subprocess, - subprocessStdin + } + function addHook(state, kind, name, hook) { + const orig = hook; + if (!state.registry[name]) state.registry[name] = []; + if ("before" === kind) hook = (method, options)=>Promise.resolve().then(orig.bind(null, options)).then(method.bind(null, options)); + if ("after" === kind) hook = (method, options)=>{ + let result; + return Promise.resolve().then(method.bind(null, options)).then((result_)=>{ + result = result_; + return orig(result, options); + }).then(()=>result); + }; + if ("error" === kind) hook = (method, options)=>Promise.resolve().then(method.bind(null, options)).catch((error)=>orig(error, options)); + state.registry[name].push({ + hook: hook, + orig: orig }); - onStdinFinished(subprocessStdin, duplex, subprocessStdout); - return duplex; - }; - const onDuplexDestroy = async ({ subprocessStdout, subprocessStdin, subprocess, waitReadableDestroy, waitWritableFinal, waitWritableDestroy }, error)=>{ - await Promise.all([ - onReadableDestroy({ - subprocessStdout, - subprocess, - waitReadableDestroy - }, error), - onWritableDestroy({ - subprocessStdin, - subprocess, - waitWritableFinal, - waitWritableDestroy - }, error) + } + function removeHook(state, name, method) { + if (!state.registry[name]) return; + const index = state.registry[name].map((registered)=>registered.orig).indexOf(method); + if (-1 === index) return; + state.registry[name].splice(index, 1); + } + const bind = Function.bind; + const bindable = bind.bind(bind); + function bindApi(hook, state, name) { + const removeHookRef = bindable(removeHook, null).apply(null, name ? [ + state, + name + ] : [ + state ]); - }; - const createIterable = (subprocess, encoding, { from, binary: binaryOption = false, preserveNewlines = false } = {})=>{ - const binary = binaryOption || BINARY_ENCODINGS.has(encoding); - const subprocessStdout = getFromStream(subprocess, from); - const onStdoutData = iterateOnSubprocessStream({ - subprocessStdout, - subprocess, - binary, - shouldEncode: true, - encoding, - preserveNewlines + hook.api = { + remove: removeHookRef + }; + hook.remove = removeHookRef; + [ + "before", + "error", + "after", + "wrap" + ].forEach((kind)=>{ + const args = name ? [ + state, + kind, + name + ] : [ + state, + kind + ]; + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args); }); - return iterateOnStdoutData(onStdoutData, subprocessStdout, subprocess); - }; - const iterateOnStdoutData = async function*(onStdoutData, subprocessStdout, subprocess) { - try { - yield* onStdoutData; - } finally{ - if (subprocessStdout.readable) subprocessStdout.destroy(); - await subprocess; + } + function Singular() { + const singularHookName = Symbol("Singular"); + const singularHookState = { + registry: {} + }; + const singularHook = register.bind(null, singularHookState, singularHookName); + bindApi(singularHook, singularHookState, singularHookName); + return singularHook; + } + function Collection() { + const state = { + registry: {} + }; + const hook = register.bind(null, state); + bindApi(hook, state); + return hook; + } + const before_after_hook = { + Singular, + Collection + }; + var VERSION = "0.0.0-development"; + var dist_bundle_userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; + var DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": dist_bundle_userAgent + }, + mediaType: { + format: "" } }; - const addConvertedStreams = (subprocess, { encoding })=>{ - const concurrentStreams = initializeConcurrentStreams(); - subprocess.readable = createReadable.bind(void 0, { - subprocess, - concurrentStreams, - encoding + function dist_bundle_lowercaseKeys(object) { + if (!object) return {}; + return Object.keys(object).reduce((newObj, key)=>{ + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); + } + function dist_bundle_isPlainObject(value) { + if ("object" != typeof value || null === value) return false; + if ("[object Object]" !== Object.prototype.toString.call(value)) return false; + const proto = Object.getPrototypeOf(value); + if (null === proto) return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return "function" == typeof Ctor && 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 (dist_bundle_isPlainObject(options[key])) if (key in defaults) result[key] = mergeDeep(defaults[key], options[key]); + else Object.assign(result, { + [key]: options[key] + }); + else Object.assign(result, { + [key]: options[key] + }); }); - subprocess.writable = createWritable.bind(void 0, { - subprocess, - concurrentStreams + return result; + } + function removeUndefinedProperties(obj) { + for(const key in obj)if (void 0 === obj[key]) delete obj[key]; + return obj; + } + function merge(defaults, route, options) { + if ("string" == typeof route) { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); + } else options = Object.assign({}, route); + options.headers = dist_bundle_lowercaseKeys(options.headers); + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + if ("/graphql" === options.url) { + if (defaults && defaults.mediaType.previews?.length) mergedOptions.mediaType.previews = defaults.mediaType.previews.filter((preview)=>!mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); + mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview)=>preview.replace(/-preview/, "")); + } + return mergedOptions; + } + function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (0 === names.length) return url; + return url + separator + names.map((name)=>{ + if ("q" === name) return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); + } + var urlVariableRegex = /\{[^{}}]+\}/g; + function removeNonChars(variableName) { + return variableName.replace(/(?:^\W+)|(?:(?a.concat(b), []); + } + function omit(object, keysToOmit) { + const result = { + __proto__: null + }; + for (const key of Object.keys(object))if (-1 === keysToOmit.indexOf(key)) 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(); }); - subprocess.duplex = createDuplex.bind(void 0, { - subprocess, - concurrentStreams, - encoding + } + function encodeValue(operator, value, key) { + value = "+" === operator || "#" === operator ? encodeReserved(value) : encodeUnreserved(value); + if (key) return encodeUnreserved(key) + "=" + value; + return value; + } + function isDefined(value) { + return null != value; + } + function isKeyOperator(operator) { + return ";" === operator || "&" === operator || "?" === operator; + } + function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && "" !== value) if ("string" == typeof value || "number" == typeof value || "bigint" == typeof value || "boolean" == typeof value) { + 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 : "")); }); - subprocess.iterable = createIterable.bind(void 0, subprocess, encoding); - subprocess[Symbol.asyncIterator] = createIterable.bind(void 0, subprocess, encoding, {}); - }; - const mergePromise = (subprocess, promise)=>{ - for (const [property, descriptor] of descriptors){ - const value = descriptor.value.bind(promise); - Reflect.defineProperty(subprocess, property, { - ...descriptor, - value + 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 (0 !== tmp.length) result.push(tmp.join(",")); } - }; - const nativePromisePrototype = (async ()=>{})().constructor.prototype; - const descriptors = [ - 'then', - 'catch', - 'finally' - ].map((property)=>[ - property, - Reflect.getOwnPropertyDescriptor(nativePromisePrototype, property) + 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) return encodeReserved(literal); + { + let operator = ""; + const values = []; + if (-1 !== operators.indexOf(expression.charAt(0))) { + 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) return values.join(","); + var separator = ","; + if ("?" === operator) separator = "&"; + else if ("#" !== operator) separator = operator; + return (0 !== values.length ? operator : "") + values.join(separator); + } + }); + if ("/" === template) return template; + return template.replace(/\/$/, ""); + } + function parse(options) { + let method = options.method.toUpperCase(); + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType" ]); - const execaCoreAsync = (rawFile, rawArguments, rawOptions, createNested)=>{ - const { file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors } = handleAsyncArguments(rawFile, rawArguments, rawOptions); - const { subprocess, promise } = spawnSubprocessAsync({ - file, - commandArguments, - options, - startTime, - verboseInfo, - command, - escapedCommand, - fileDescriptors + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) url = options.baseUrl + url; + const omittedParameters = Object.keys(options).filter((option)=>urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) headers.accept = headers.accept.split(/,/).map((format)=>format.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + if (url.endsWith("/graphql")) { + if (options.mediaType.previews?.length) { + const previewsFromAcceptHeader = headers.accept.match(/(?{ + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } + } + if ([ + "GET", + "HEAD" + ].includes(method)) url = addQueryParameters(url, remainingParameters); + else if ("data" in remainingParameters) body = remainingParameters.data; + else if (Object.keys(remainingParameters).length) body = remainingParameters; + if (!headers["content-type"] && void 0 !== body) headers["content-type"] = "application/json; charset=utf-8"; + if ([ + "PATCH", + "PUT" + ].includes(method) && void 0 === body) body = ""; + return Object.assign({ + method, + url, + headers + }, void 0 !== body ? { + 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 }); - subprocess.pipe = pipeToSubprocess.bind(void 0, { - source: subprocess, - sourcePromise: promise, - boundOptions: {}, - createNested + } + var dist_bundle_endpoint = withDefaults(null, DEFAULTS); + var dist = __webpack_require__("../node_modules/.pnpm/content-type@2.0.0/node_modules/content-type/dist/index.js"); + const intRegex = /^-?\d+$/; + const noiseValue = /^-?\d+n+$/; + const originalStringify = JSON.stringify; + const originalParse = JSON.parse; + const customFormat = /^-?\d+n$/; + const bigIntsStringify = /([\[:])?"(-?\d+)n"($|([\\n]|\s)*(\s|[\\n])*[,\}\]])/g; + const noiseStringify = /([\[:])?("-?\d+n+)n("$|"([\\n]|\s)*(\s|[\\n])*[,\}\]])/g; + const JSONStringify = (value, replacer, space)=>{ + if ("rawJSON" in JSON) return originalStringify(value, (key, value)=>{ + if ("bigint" == typeof value) return JSON.rawJSON(value.toString()); + if ("function" == typeof replacer) return replacer(key, value); + Array.isArray(replacer) && replacer.includes(key); + return value; + }, space); + if (!value) return originalStringify(value, replacer, space); + const convertedToCustomJSON = originalStringify(value, (key, value)=>{ + const isNoise = "string" == typeof value && noiseValue.test(value); + if (isNoise) return value.toString() + "n"; + if ("bigint" == typeof value) return value.toString() + "n"; + if ("function" == typeof replacer) return replacer(key, value); + Array.isArray(replacer) && replacer.includes(key); + return value; + }, space); + const processedJSON = convertedToCustomJSON.replace(bigIntsStringify, "$1$2$3"); + const denoisedJSON = processedJSON.replace(noiseStringify, "$1$2$3"); + return denoisedJSON; + }; + const featureCache = new Map(); + const isContextSourceSupported = ()=>{ + const parseFingerprint = JSON.parse.toString(); + if (featureCache.has(parseFingerprint)) return featureCache.get(parseFingerprint); + try { + const result = JSON.parse("1", (_, __, context)=>!!context?.source && "1" === context.source); + featureCache.set(parseFingerprint, result); + return result; + } catch { + featureCache.set(parseFingerprint, false); + return false; + } + }; + const convertMarkedBigIntsReviver = (key, value, context, userReviver)=>{ + const isCustomFormatBigInt = "string" == typeof value && customFormat.test(value); + if (isCustomFormatBigInt) return BigInt(value.slice(0, -1)); + const isNoiseValue = "string" == typeof value && noiseValue.test(value); + if (isNoiseValue) return value.slice(0, -1); + if ("function" != typeof userReviver) return value; + return userReviver(key, value, context); + }; + const JSONParseV2 = (text, reviver)=>JSON.parse(text, (key, value, context)=>{ + const isBigNumber = "number" == typeof value && (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER); + const isInt = context && intRegex.test(context.source); + const isBigInt = isBigNumber && isInt; + if (isBigInt) return BigInt(context.source); + if ("function" != typeof reviver) return value; + return reviver(key, value, context); }); - mergePromise(subprocess, promise); - SUBPROCESS_OPTIONS.set(subprocess, { - options, - fileDescriptors + const MAX_INT = Number.MAX_SAFE_INTEGER.toString(); + const MAX_DIGITS = MAX_INT.length; + const stringsOrLargeNumbers = /"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g; + const noiseValueWithQuotes = /^"-?\d+n+"$/; + const JSONParse = (text, reviver)=>{ + if (!text) return originalParse(text, reviver); + if (isContextSourceSupported()) return JSONParseV2(text, reviver); + const serializedData = text.replace(stringsOrLargeNumbers, (text, digits, fractional, exponential)=>{ + const isString = '"' === text[0]; + const isNoise = isString && noiseValueWithQuotes.test(text); + if (isNoise) return text.substring(0, text.length - 1) + 'n"'; + const isFractionalOrExponential = fractional || exponential; + const isLessThanMaxSafeInt = digits && (digits.length < MAX_DIGITS || digits.length === MAX_DIGITS && digits <= MAX_INT); + if (isString || isFractionalOrExponential || isLessThanMaxSafeInt) return text; + return '"' + text + 'n"'; }); - return subprocess; - }; - const handleAsyncArguments = (rawFile, rawArguments, rawOptions)=>{ - const { command, escapedCommand, startTime, verboseInfo } = handleCommand(rawFile, rawArguments, rawOptions); - const { file, commandArguments, options: normalizedOptions } = normalizeOptions(rawFile, rawArguments, rawOptions); - const options = handleAsyncOptions(normalizedOptions); - const fileDescriptors = handleStdioAsync(options, verboseInfo); - return { - file, - commandArguments, - command, - escapedCommand, - startTime, - verboseInfo, - options, - fileDescriptors - }; - }; - const handleAsyncOptions = ({ timeout, signal, ...options })=>{ - if (void 0 !== signal) throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.'); - return { - ...options, - timeoutDuration: timeout - }; - }; - const spawnSubprocessAsync = ({ file, commandArguments, options, startTime, verboseInfo, command, escapedCommand, fileDescriptors })=>{ - let subprocess; + return originalParse(serializedData, (key, value, context)=>convertMarkedBigIntsReviver(key, value, context, reviver)); + }; + class RequestError extends Error { + name; + status; + request; + response; + constructor(message, statusCode, options){ + super(message, { + cause: options.cause + }); + this.name = "HttpError"; + this.status = Number.parseInt(statusCode); + if (Number.isNaN(this.status)) this.status = 0; + /* v8 ignore else -- @preserve -- Bug with vitest coverage where it sees an else branch that doesn't exist */ if ("response" in options) this.response = options.response; + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/(?""; + async function fetchWrapper(requestOptions) { + const fetch = requestOptions.request?.fetch || globalThis.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"); + const log = requestOptions.request?.log || console; + const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false; + const body = request_dist_bundle_isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body) ? JSONStringify(requestOptions.body) : requestOptions.body; + const requestHeaders = Object.fromEntries(Object.entries(requestOptions.headers).map(([name, value])=>[ + name, + String(value) + ])); + let fetchResponse; try { - subprocess = (0, external_node_child_process_namespaceObject.spawn)(...concatenateShell(file, commandArguments, options)); + fetchResponse = await fetch(requestOptions.url, { + method: requestOptions.method, + body, + redirect: requestOptions.request?.redirect, + headers: requestHeaders, + signal: requestOptions.request?.signal, + ...requestOptions.body && { + duplex: "half" + } + }); } catch (error) { - return handleEarlyError({ - error, - command, - escapedCommand, - fileDescriptors, - options, - startTime, - verboseInfo + let message = "Unknown Error"; + if (error instanceof Error) { + if ("AbortError" === error.name) { + error.status = 500; + throw error; + } + message = error.message; + if ("TypeError" === error.name && "cause" in error) { + if (error.cause instanceof Error) message = error.cause.message; + else if ("string" == typeof error.cause) message = error.cause; + } + } + const requestError = new RequestError(message, 500, { + request: requestOptions }); + requestError.cause = error; + throw requestError; } - const controller = new AbortController(); - (0, external_node_events_.setMaxListeners)(1 / 0, controller.signal); - const originalStreams = [ - ...subprocess.stdio - ]; - pipeOutputAsync(subprocess, fileDescriptors, controller); - cleanupOnExit(subprocess, options, controller); - const context = {}; - const onInternalError = createDeferred(); - subprocess.kill = subprocessKill.bind(void 0, { - kill: subprocess.kill.bind(subprocess), - options, - onInternalError, - context, - controller + const status = fetchResponse.status; + const url = fetchResponse.url; + const responseHeaders = {}; + for (const [key, value] of fetchResponse.headers)responseHeaders[key] = value; + const octokitResponse = { + url, + status, + headers: responseHeaders, + data: "" + }; + if ("deprecation" in responseHeaders) { + const matches = responseHeaders.link && responseHeaders.link.match(/<([^<>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn(`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); + } + if (204 === status || 205 === status) return octokitResponse; + if ("HEAD" === requestOptions.method) { + if (status < 400) return octokitResponse; + throw new RequestError(fetchResponse.statusText, status, { + response: octokitResponse, + request: requestOptions + }); + } + if (304 === status) { + octokitResponse.data = await getResponseData(fetchResponse); + throw new RequestError("Not modified", status, { + response: octokitResponse, + request: requestOptions + }); + } + if (status >= 400) { + octokitResponse.data = await getResponseData(fetchResponse); + throw new RequestError(toErrorMessage(octokitResponse.data), status, { + response: octokitResponse, + request: requestOptions + }); + } + octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body; + return octokitResponse; + } + async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (!contentType) return response.text().catch(dist_bundle_noop); + const mimetype = (0, dist.qg)(contentType); + if (isJSONResponse(mimetype)) { + let text = ""; + try { + text = await response.text(); + return JSONParse(text); + } catch (err) { + return text; + } + } + if (mimetype.type.startsWith("text/") || mimetype.parameters.charset?.toLowerCase() === "utf-8") return response.text().catch(dist_bundle_noop); + return response.arrayBuffer().catch(/* v8 ignore next -- @preserve */ ()=>new ArrayBuffer(0)); + } + function isJSONResponse(mimetype) { + return "application/json" === mimetype.type || "application/scim+json" === mimetype.type; + } + function toErrorMessage(data) { + if ("string" == typeof data) return data; + if (data instanceof ArrayBuffer) return "Unknown error"; + if ("message" in data) { + const suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : ""; + return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v)=>JSON.stringify(v)).join(", ")}${suffix}` : `${data.message}${suffix}`; + } + return `Unknown error: ${JSON.stringify(data)}`; + } + function dist_bundle_withDefaults(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)=>fetchWrapper(endpoint2.parse(endpoint2.merge(route2, parameters2))); + Object.assign(request2, { + endpoint: endpoint2, + defaults: dist_bundle_withDefaults.bind(null, endpoint2) + }); + return endpointOptions.request.hook(request2, endpointOptions); + }; + return Object.assign(newApi, { + endpoint: endpoint2, + defaults: dist_bundle_withDefaults.bind(null, endpoint2) }); - subprocess.all = makeAllStream(subprocess, options); - addConvertedStreams(subprocess, options); - addIpcMethods(subprocess, options); - const promise = handlePromise({ - subprocess, - options, - startTime, - verboseInfo, - fileDescriptors, - originalStreams, - command, - escapedCommand, - context, - onInternalError, - controller + } + var dist_bundle_request = dist_bundle_withDefaults(dist_bundle_endpoint, defaults_default); + var graphql_dist_bundle_VERSION = "0.0.0-development"; + function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors: +` + data.errors.map((e)=>` - ${e.message}`).join("\n"); + } + var GraphqlResponseError = class extends Error { + constructor(request2, headers, response){ + super(_buildMessageForResponseErrors(response)); + this.request = request2; + this.headers = headers; + this.response = response; + this.errors = response.errors; + this.data = response.data; + if (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor); + } + name = "GraphqlResponseError"; + errors; + data; + }; + var NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType", + "operationName" + ]; + var FORBIDDEN_VARIABLE_OPTIONS = [ + "query", + "method", + "url" + ]; + var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; + function graphql(request2, query, options) { + if (options) { + if ("string" == typeof query && "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)) return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`)); + } + const parsedOptions = "string" == typeof query ? 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 graphql_dist_bundle_withDefaults(request2, newDefaults) { + const newRequest = request2.defaults(newDefaults); + const newApi = (query, options)=>graphql(newRequest, query, options); + return Object.assign(newApi, { + defaults: graphql_dist_bundle_withDefaults.bind(null, newRequest), + endpoint: newRequest.endpoint + }); + } + graphql_dist_bundle_withDefaults(dist_bundle_request, { + headers: { + "user-agent": `octokit-graphql.js/${graphql_dist_bundle_VERSION} ${getUserAgent()}` + }, + method: "POST", + url: "/graphql" + }); + function withCustomRequest(customRequest) { + return graphql_dist_bundle_withDefaults(customRequest, { + method: "POST", + url: "/graphql" }); + } + var b64url = "(?:[a-zA-Z0-9_-]+)"; + var sep = "\\."; + var jwtRE = new RegExp(`^${b64url}${sep}${b64url}${sep}${b64url}$`); + var isJWT = jwtRE.test.bind(jwtRE); + async function dist_bundle_auth(token) { + const isApp = isJWT(token); + const isInstallation = token.startsWith("v1.") || token.startsWith("ghs_"); + const isUserToServer = token.startsWith("ghu_"); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; return { - subprocess, - promise + type: "token", + token, + tokenType }; - }; - const handlePromise = async ({ subprocess, options, startTime, verboseInfo, fileDescriptors, originalStreams, command, escapedCommand, context, onInternalError, controller })=>{ - const [errorInfo, [exitCode, signal], stdioResults, allResult, ipcOutput] = await waitForSubprocessResult({ - subprocess, - options, - context, - verboseInfo, - fileDescriptors, - originalStreams, - onInternalError, - controller - }); - controller.abort(); - onInternalError.resolve(); - const stdio = stdioResults.map((stdioResult, fdNumber)=>stripNewline(stdioResult, options, fdNumber)); - const all = stripNewline(allResult, options, 'all'); - const result = getAsyncResult({ - errorInfo, - exitCode, - signal, - stdio, - all, - ipcOutput, - context, - options, - command, - escapedCommand, - startTime + } + function withAuthorizationPrefix(token) { + if (3 === token.split(/\./).length) return `bearer ${token}`; + return `token ${token}`; + } + async function dist_bundle_hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); + } + var createTokenAuth = function(token) { + if (!token) throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + if ("string" != typeof token) throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(dist_bundle_auth.bind(null, token), { + hook: dist_bundle_hook.bind(null, token) }); - return reject_handleResult(result, verboseInfo, options); }; - const getAsyncResult = ({ errorInfo, exitCode, signal, stdio, all, ipcOutput, context, options, command, escapedCommand, startTime })=>'error' in errorInfo ? makeError({ - error: errorInfo.error, - command, - escapedCommand, - timedOut: 'timeout' === context.terminationReason, - isCanceled: 'cancel' === context.terminationReason || 'gracefulCancel' === context.terminationReason, - isGracefullyCanceled: 'gracefulCancel' === context.terminationReason, - isMaxBuffer: errorInfo.error instanceof MaxBufferError, - isForcefullyTerminated: context.isForcefullyTerminated, - exitCode, - signal, - stdio, - all, - ipcOutput, - options, - startTime, - isSync: false - }) : makeSuccessResult({ - command, - escapedCommand, - stdio, - all, - ipcOutput, - options, - startTime + const dist_src_noop = ()=>{}; + const consoleWarn = console.warn.bind(console); + const consoleError = console.error.bind(console); + function createLogger(logger = {}) { + if ("function" != typeof logger.debug) logger.debug = dist_src_noop; + if ("function" != typeof logger.info) logger.info = dist_src_noop; + if ("function" != typeof logger.warn) logger.warn = consoleWarn; + if ("function" != typeof logger.error) logger.error = consoleError; + return logger; + } + const userAgentTrail = `octokit-core.js/7.0.6 ${getUserAgent()}`; + class Octokit { + static VERSION = "7.0.6"; + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args){ + const options = args[0] || {}; + if ("function" == typeof defaults) return void super(defaults(options)); + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } + }; + return OctokitWithDefaults; + } + static plugins = []; + static plugin(...newPlugins) { + const currentPlugins = this.plugins; + const NewOctokit = class extends this { + static plugins = currentPlugins.concat(newPlugins.filter((plugin)=>!currentPlugins.includes(plugin))); + }; + return NewOctokit; + } + constructor(options = {}){ + const hook = new before_after_hook.Collection(); + const requestDefaults = { + baseUrl: dist_bundle_request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; + requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; + if (options.baseUrl) requestDefaults.baseUrl = options.baseUrl; + if (options.previews) requestDefaults.mediaType.previews = options.previews; + if (options.timeZone) requestDefaults.headers["time-zone"] = options.timeZone; + this.request = dist_bundle_request.defaults(requestDefaults); + this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.log = createLogger(options.log); + this.hook = hook; + if (options.authStrategy) { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy(Object.assign({ + request: this.request, + log: this.log, + octokit: this, + octokitOptions: otherOptions + }, options.auth)); + hook.wrap("request", auth.hook); + this.auth = auth; + } else if (options.auth) { + const auth = createTokenAuth(options.auth); + hook.wrap("request", auth.hook); + this.auth = auth; + } else this.auth = async ()=>({ + type: "unauthenticated" + }); + const classConstructor = this.constructor; + for(let i = 0; i < classConstructor.plugins.length; ++i)Object.assign(this, classConstructor.plugins[i](this, options)); + } + request; + graphql; + log; + hook; + auth; + } + const Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: [ + "POST /orgs/{org}/actions/runners/{runner_id}/labels" + ], + addCustomLabelsToSelfHostedRunnerForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + addRepoAccessToSelfHostedRunnerGroupInOrg: [ + "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}" + ], + 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" + ], + createHostedRunnerForOrg: [ + "POST /orgs/{org}/actions/hosted-runners" + ], + 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}" + ], + deleteCustomImageFromOrg: [ + "DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}" + ], + deleteCustomImageVersionFromOrg: [ + "DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}" + ], + deleteEnvironmentSecret: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" + ], + deleteEnvironmentVariable: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" + ], + deleteHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}" + ], + 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}" + ], + getCustomImageForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}" + ], + getCustomImageVersionForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}" + ], + 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" + ], + getHostedRunnerForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}" + ], + getHostedRunnersGithubOwnedImagesForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/github-owned" + ], + getHostedRunnersLimitsForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/limits" + ], + getHostedRunnersMachineSpecsForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/machine-sizes" + ], + getHostedRunnersPartnerImagesForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/partner" + ], + getHostedRunnersPlatformsForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/platforms" + ], + 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" + ], + listCustomImageVersionsForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions" + ], + listCustomImagesForOrg: [ + "GET /orgs/{org}/actions/hosted-runners/images/custom" + ], + listEnvironmentSecrets: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets" + ], + listEnvironmentVariables: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/variables" + ], + listGithubHostedRunnersInGroupForOrg: [ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners" + ], + listHostedRunnersForOrg: [ + "GET /orgs/{org}/actions/hosted-runners" + ], + 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}" + ], + updateHostedRunnerForOrg: [ + "PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}" + ], + 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" + ], + getGithubBillingPremiumRequestUsageReportOrg: [ + "GET /organizations/{org}/settings/billing/premium_request/usage" + ], + getGithubBillingPremiumRequestUsageReportUser: [ + "GET /users/{username}/settings/billing/premium_request/usage" + ], + getGithubBillingUsageReportOrg: [ + "GET /organizations/{org}/settings/billing/usage" + ], + getGithubBillingUsageReportUser: [ + "GET /users/{username}/settings/billing/usage" + ], + 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" + ] + }, + campaigns: { + createCampaign: [ + "POST /orgs/{org}/campaigns" + ], + deleteCampaign: [ + "DELETE /orgs/{org}/campaigns/{campaign_number}" + ], + getCampaignSummary: [ + "GET /orgs/{org}/campaigns/{campaign_number}" + ], + listOrgCampaigns: [ + "GET /orgs/{org}/campaigns" + ], + updateCampaign: [ + "PATCH /orgs/{org}/campaigns/{campaign_number}" + ] + }, + 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: { + commitAutofix: [ + "POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits" + ], + createAutofix: [ + "POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix" + ], + createVariantAnalysis: [ + "POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses" + ], + deleteAnalysis: [ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" + ], + deleteCodeqlDatabase: [ + "DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" + ], + 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}" + ], + getAutofix: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix" + ], + 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}" + ], + getVariantAnalysis: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}" + ], + getVariantAnalysisRepoTask: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}" + ], + 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" + ] + }, + codeSecurity: { + attachConfiguration: [ + "POST /orgs/{org}/code-security/configurations/{configuration_id}/attach" + ], + attachEnterpriseConfiguration: [ + "POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach" + ], + createConfiguration: [ + "POST /orgs/{org}/code-security/configurations" + ], + createConfigurationForEnterprise: [ + "POST /enterprises/{enterprise}/code-security/configurations" + ], + deleteConfiguration: [ + "DELETE /orgs/{org}/code-security/configurations/{configuration_id}" + ], + deleteConfigurationForEnterprise: [ + "DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}" + ], + detachConfiguration: [ + "DELETE /orgs/{org}/code-security/configurations/detach" + ], + getConfiguration: [ + "GET /orgs/{org}/code-security/configurations/{configuration_id}" + ], + getConfigurationForRepository: [ + "GET /repos/{owner}/{repo}/code-security-configuration" + ], + getConfigurationsForEnterprise: [ + "GET /enterprises/{enterprise}/code-security/configurations" + ], + getConfigurationsForOrg: [ + "GET /orgs/{org}/code-security/configurations" + ], + getDefaultConfigurations: [ + "GET /orgs/{org}/code-security/configurations/defaults" + ], + getDefaultConfigurationsForEnterprise: [ + "GET /enterprises/{enterprise}/code-security/configurations/defaults" + ], + getRepositoriesForConfiguration: [ + "GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories" + ], + getRepositoriesForEnterpriseConfiguration: [ + "GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories" + ], + getSingleConfigurationForEnterprise: [ + "GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}" + ], + setConfigurationAsDefault: [ + "PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults" + ], + setConfigurationAsDefaultForEnterprise: [ + "PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults" + ], + updateConfiguration: [ + "PATCH /orgs/{org}/code-security/configurations/{configuration_id}" + ], + updateEnterpriseConfiguration: [ + "PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}" + ] + }, + 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" + ], + copilotMetricsForOrganization: [ + "GET /orgs/{org}/copilot/metrics" + ], + copilotMetricsForTeam: [ + "GET /orgs/{org}/team/{team_slug}/copilot/metrics" + ], + getCopilotOrganizationDetails: [ + "GET /orgs/{org}/copilot/billing" + ], + getCopilotSeatDetailsForUser: [ + "GET /orgs/{org}/members/{username}/copilot" + ], + listCopilotSeats: [ + "GET /orgs/{org}/copilot/billing/seats" + ] + }, + credentials: { + revoke: [ + "POST /credentials/revoke" + ] + }, + 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}" + ], + repositoryAccessForOrg: [ + "GET /organizations/{org}/dependabot/repository-access" + ], + setRepositoryAccessDefaultLevel: [ + "PUT /organizations/{org}/dependabot/repository-access/default-level" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" + ], + updateRepositoryAccessForOrg: [ + "PATCH /organizations/{org}/dependabot/repository-access" + ] + }, + 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" + ] + }, + enterpriseTeamMemberships: { + add: [ + "PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}" + ], + bulkAdd: [ + "POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add" + ], + bulkRemove: [ + "POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove" + ], + get: [ + "GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}" + ], + list: [ + "GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships" + ], + remove: [ + "DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}" + ] + }, + enterpriseTeamOrganizations: { + add: [ + "PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}" + ], + bulkAdd: [ + "POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add" + ], + bulkRemove: [ + "POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove" + ], + delete: [ + "DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}" + ], + getAssignment: [ + "GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}" + ], + getAssignments: [ + "GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations" + ] + }, + enterpriseTeams: { + create: [ + "POST /enterprises/{enterprise}/teams" + ], + delete: [ + "DELETE /enterprises/{enterprise}/teams/{team_slug}" + ], + get: [ + "GET /enterprises/{enterprise}/teams/{team_slug}" + ], + list: [ + "GET /enterprises/{enterprise}/teams" + ], + update: [ + "PATCH /enterprises/{enterprise}/teams/{team_slug}" + ] + }, + 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}" + ] + }, + hostedCompute: { + createNetworkConfigurationForOrg: [ + "POST /orgs/{org}/settings/network-configurations" + ], + deleteNetworkConfigurationFromOrg: [ + "DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}" + ], + getNetworkConfigurationForOrg: [ + "GET /orgs/{org}/settings/network-configurations/{network_configuration_id}" + ], + getNetworkSettingsForOrg: [ + "GET /orgs/{org}/settings/network-settings/{network_settings_id}" + ], + listNetworkConfigurationsForOrg: [ + "GET /orgs/{org}/settings/network-configurations" + ], + updateNetworkConfigurationForOrg: [ + "PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}" + ] + }, + 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" + ], + addBlockedByDependency: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by" + ], + addLabels: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + addSubIssue: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues" + ], + 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}" + ], + getParent: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/parent" + ], + 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" + ], + listDependenciesBlockedBy: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by" + ], + listDependenciesBlocking: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking" + ], + 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" + ], + listSubIssues: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues" + ], + 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" + ], + removeDependencyBlockedBy: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}" + ], + removeLabel: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" + ], + removeSubIssue: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue" + ], + reprioritizeSubIssue: [ + "PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority" + ], + 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}", + {}, + { + deprecated: "octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team" + } + ], + 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}" + ], + createArtifactStorageRecord: [ + "POST /orgs/{org}/artifacts/metadata/storage-record" + ], + createInvitation: [ + "POST /orgs/{org}/invitations" + ], + createIssueType: [ + "POST /orgs/{org}/issue-types" + ], + createWebhook: [ + "POST /orgs/{org}/hooks" + ], + customPropertiesForOrgsCreateOrUpdateOrganizationValues: [ + "PATCH /organizations/{org}/org-properties/values" + ], + customPropertiesForOrgsGetOrganizationValues: [ + "GET /organizations/{org}/org-properties/values" + ], + customPropertiesForReposCreateOrUpdateOrganizationDefinition: [ + "PUT /orgs/{org}/properties/schema/{custom_property_name}" + ], + customPropertiesForReposCreateOrUpdateOrganizationDefinitions: [ + "PATCH /orgs/{org}/properties/schema" + ], + customPropertiesForReposCreateOrUpdateOrganizationValues: [ + "PATCH /orgs/{org}/properties/values" + ], + customPropertiesForReposDeleteOrganizationDefinition: [ + "DELETE /orgs/{org}/properties/schema/{custom_property_name}" + ], + customPropertiesForReposGetOrganizationDefinition: [ + "GET /orgs/{org}/properties/schema/{custom_property_name}" + ], + customPropertiesForReposGetOrganizationDefinitions: [ + "GET /orgs/{org}/properties/schema" + ], + customPropertiesForReposGetOrganizationValues: [ + "GET /orgs/{org}/properties/values" + ], + delete: [ + "DELETE /orgs/{org}" + ], + deleteAttestationsBulk: [ + "POST /orgs/{org}/attestations/delete-request" + ], + deleteAttestationsById: [ + "DELETE /orgs/{org}/attestations/{attestation_id}" + ], + deleteAttestationsBySubjectDigest: [ + "DELETE /orgs/{org}/attestations/digest/{subject_digest}" + ], + deleteIssueType: [ + "DELETE /orgs/{org}/issue-types/{issue_type_id}" + ], + deleteWebhook: [ + "DELETE /orgs/{org}/hooks/{hook_id}" + ], + disableSelectedRepositoryImmutableReleasesOrganization: [ + "DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}" + ], + enableSelectedRepositoryImmutableReleasesOrganization: [ + "PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}" + ], + get: [ + "GET /orgs/{org}" + ], + getImmutableReleasesSettings: [ + "GET /orgs/{org}/settings/immutable-releases" + ], + getImmutableReleasesSettingsRepositories: [ + "GET /orgs/{org}/settings/immutable-releases/repositories" + ], + getMembershipForAuthenticatedUser: [ + "GET /user/memberships/orgs/{org}" + ], + getMembershipForUser: [ + "GET /orgs/{org}/memberships/{username}" + ], + getOrgRole: [ + "GET /orgs/{org}/organization-roles/{role_id}" + ], + getOrgRulesetHistory: [ + "GET /orgs/{org}/rulesets/{ruleset_id}/history" + ], + getOrgRulesetVersion: [ + "GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_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" + ], + listArtifactStorageRecords: [ + "GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records" + ], + listAttestationRepositories: [ + "GET /orgs/{org}/attestations/repositories" + ], + listAttestations: [ + "GET /orgs/{org}/attestations/{subject_digest}" + ], + listAttestationsBulk: [ + "POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}" + ], + listBlockedUsers: [ + "GET /orgs/{org}/blocks" + ], + listFailedInvitations: [ + "GET /orgs/{org}/failed_invitations" + ], + listForAuthenticatedUser: [ + "GET /user/orgs" + ], + listForUser: [ + "GET /users/{username}/orgs" + ], + listInvitationTeams: [ + "GET /orgs/{org}/invitations/{invitation_id}/teams" + ], + listIssueTypes: [ + "GET /orgs/{org}/issue-types" + ], + 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", + {}, + { + deprecated: "octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams" + } + ], + listWebhookDeliveries: [ + "GET /orgs/{org}/hooks/{hook_id}/deliveries" + ], + listWebhooks: [ + "GET /orgs/{org}/hooks" + ], + pingWebhook: [ + "POST /orgs/{org}/hooks/{hook_id}/pings" + ], + redeliverWebhookDelivery: [ + "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + 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}", + {}, + { + deprecated: "octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team" + } + ], + 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}" + ], + setImmutableReleasesSettings: [ + "PUT /orgs/{org}/settings/immutable-releases" + ], + setImmutableReleasesSettingsRepositories: [ + "PUT /orgs/{org}/settings/immutable-releases/repositories" + ], + setMembershipForUser: [ + "PUT /orgs/{org}/memberships/{username}" + ], + setPublicMembershipForAuthenticatedUser: [ + "PUT /orgs/{org}/public_members/{username}" + ], + unblockUser: [ + "DELETE /orgs/{org}/blocks/{username}" + ], + update: [ + "PATCH /orgs/{org}" + ], + updateIssueType: [ + "PUT /orgs/{org}/issue-types/{issue_type_id}" + ], + 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" + ] + }, + privateRegistries: { + createOrgPrivateRegistry: [ + "POST /orgs/{org}/private-registries" + ], + deleteOrgPrivateRegistry: [ + "DELETE /orgs/{org}/private-registries/{secret_name}" + ], + getOrgPrivateRegistry: [ + "GET /orgs/{org}/private-registries/{secret_name}" + ], + getOrgPublicKey: [ + "GET /orgs/{org}/private-registries/public-key" + ], + listOrgPrivateRegistries: [ + "GET /orgs/{org}/private-registries" + ], + updateOrgPrivateRegistry: [ + "PATCH /orgs/{org}/private-registries/{secret_name}" + ] + }, + projects: { + addItemForOrg: [ + "POST /orgs/{org}/projectsV2/{project_number}/items" + ], + addItemForUser: [ + "POST /users/{username}/projectsV2/{project_number}/items" + ], + deleteItemForOrg: [ + "DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}" + ], + deleteItemForUser: [ + "DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}" + ], + getFieldForOrg: [ + "GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}" + ], + getFieldForUser: [ + "GET /users/{username}/projectsV2/{project_number}/fields/{field_id}" + ], + getForOrg: [ + "GET /orgs/{org}/projectsV2/{project_number}" + ], + getForUser: [ + "GET /users/{username}/projectsV2/{project_number}" + ], + getOrgItem: [ + "GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}" + ], + getUserItem: [ + "GET /users/{username}/projectsV2/{project_number}/items/{item_id}" + ], + listFieldsForOrg: [ + "GET /orgs/{org}/projectsV2/{project_number}/fields" + ], + listFieldsForUser: [ + "GET /users/{username}/projectsV2/{project_number}/fields" + ], + listForOrg: [ + "GET /orgs/{org}/projectsV2" + ], + listForUser: [ + "GET /users/{username}/projectsV2" + ], + listItemsForOrg: [ + "GET /orgs/{org}/projectsV2/{project_number}/items" + ], + listItemsForUser: [ + "GET /users/{username}/projectsV2/{project_number}/items" + ], + updateItemForOrg: [ + "PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}" + ], + updateItemForUser: [ + "PATCH /users/{username}/projectsV2/{project_number}/items/{item_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}" + ], + checkImmutableReleases: [ + "GET /repos/{owner}/{repo}/immutable-releases" + ], + 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}" + ], + createAttestation: [ + "POST /repos/{owner}/{repo}/attestations" + ], + 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" + ], + 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" + ], + createUsingTemplate: [ + "POST /repos/{template_owner}/{template_repo}/generate" + ], + createWebhook: [ + "POST /repos/{owner}/{repo}/hooks" + ], + customPropertiesForReposCreateOrUpdateRepositoryValues: [ + "PATCH /repos/{owner}/{repo}/properties/values" + ], + customPropertiesForReposGetRepositoryValues: [ + "GET /repos/{owner}/{repo}/properties/values" + ], + 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}" + ], + 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}" + ], + disableImmutableReleases: [ + "DELETE /repos/{owner}/{repo}/immutable-releases" + ], + 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" + ], + enableImmutableReleases: [ + "PUT /repos/{owner}/{repo}/immutable-releases" + ], + 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}" + ], + 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}" + ], + getRepoRulesetHistory: [ + "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history" + ], + getRepoRulesetVersion: [ + "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_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" + ], + listAttestations: [ + "GET /repos/{owner}/{repo}/attestations/{subject_digest}" + ], + 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" + ], + 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: { + createPushProtectionBypass: [ + "POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses" + ], + getAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ], + getScanHistory: [ + "GET /repos/{owner}/{repo}/secret-scanning/scan-history" + ], + 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" + ], + listOrgPatternConfigs: [ + "GET /orgs/{org}/secret-scanning/pattern-configurations" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ], + updateOrgPatternConfigs: [ + "PATCH /orgs/{org}/secret-scanning/pattern-configurations" + ] + }, + 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}" + ], + addOrUpdateRepoPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + 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" + ], + listReposInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/repos" + ], + removeMembershipForUserInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + 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" + ], + deleteAttestationsBulk: [ + "POST /users/{username}/attestations/delete-request" + ], + deleteAttestationsById: [ + "DELETE /users/{username}/attestations/{attestation_id}" + ], + deleteAttestationsBySubjectDigest: [ + "DELETE /users/{username}/attestations/digest/{subject_digest}" + ], + 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" + ], + getById: [ + "GET /user/{account_id}" + ], + 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" + ], + listAttestations: [ + "GET /users/{username}/attestations/{subject_digest}" + ], + listAttestationsBulk: [ + "POST /users/{username}/attestations/bulk-list{?per_page,before,after}" + ], + 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; + const endpointMethodsMap = /* @__PURE__ */ new Map(); + for (const [scope, endpoints] of Object.entries(endpoints_default))for (const [methodName, endpoint] of Object.entries(endpoints)){ + const [route, defaults, decorations] = endpoint; + 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 }); - const mergeOptions = (boundOptions, options)=>{ - const newOptions = Object.fromEntries(Object.entries(options).map(([optionName, optionValue])=>[ - optionName, - mergeOption(optionName, boundOptions[optionName], optionValue) - ])); + } + const endpoints_to_methods_handler = { + has ({ scope }, methodName) { + return endpointMethodsMap.get(scope).has(methodName); + }, + getOwnPropertyDescriptor (target, methodName) { + return { + value: this.get(target, methodName), + 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; + 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: {} + }, endpoints_to_methods_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 { - ...boundOptions, - ...newOptions - }; - }; - const mergeOption = (optionName, boundOptionValue, optionValue)=>{ - if (DEEP_OPTIONS.has(optionName) && isPlainObject(boundOptionValue) && isPlainObject(optionValue)) return { - ...boundOptionValue, - ...optionValue + rest: api }; - return optionValue; - }; - const DEEP_OPTIONS = new Set([ - 'env', - ...FD_SPECIFIC_OPTIONS - ]); - const createExeca = (mapArguments, boundOptions, deepOptions, setBoundExeca)=>{ - const createNested = (mapArguments, boundOptions, setBoundExeca)=>createExeca(mapArguments, boundOptions, deepOptions, setBoundExeca); - const boundExeca = (...execaArguments)=>callBoundExeca({ - mapArguments, - deepOptions, - boundOptions, - setBoundExeca, - createNested - }, ...execaArguments); - if (void 0 !== setBoundExeca) setBoundExeca(boundExeca, createNested, boundOptions); - return boundExeca; - }; - const callBoundExeca = ({ mapArguments, deepOptions = {}, boundOptions = {}, setBoundExeca, createNested }, firstArgument, ...nextArguments)=>{ - if (isPlainObject(firstArgument)) return createNested(mapArguments, mergeOptions(boundOptions, firstArgument), setBoundExeca); - const { file, commandArguments, options, isSync } = parseArguments({ - mapArguments, - firstArgument, - nextArguments, - deepOptions, - boundOptions - }); - return isSync ? execaCoreSync(file, commandArguments, options) : execaCoreAsync(file, commandArguments, options, createNested); - }; - const parseArguments = ({ mapArguments, firstArgument, nextArguments, deepOptions, boundOptions })=>{ - const callArguments = isTemplateString(firstArgument) ? parseTemplates(firstArgument, nextArguments) : [ - firstArgument, - ...nextArguments - ]; - const [initialFile, initialArguments, initialOptions] = normalizeParameters(...callArguments); - const mergedOptions = mergeOptions(mergeOptions(deepOptions, boundOptions), initialOptions); - const { file = initialFile, commandArguments = initialArguments, options = mergedOptions, isSync = false } = mapArguments({ - file: initialFile, - commandArguments: initialArguments, - options: mergedOptions - }); + } + restEndpointMethods.VERSION = "17.0.0"; + function legacyRestEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); return { - file, - commandArguments, - options, - isSync + ...api, + rest: api }; - }; - const mapCommandAsync = ({ file, commandArguments })=>parseCommand(file, commandArguments); - const mapCommandSync = ({ file, commandArguments })=>({ - ...parseCommand(file, commandArguments), - isSync: true - }); - const parseCommand = (command, unusedArguments)=>{ - if (unusedArguments.length > 0) throw new TypeError(`The command and its arguments must be passed as a single string: ${command} ${unusedArguments}.`); - const [file, ...commandArguments] = parseCommandString(command); + } + legacyRestEndpointMethods.VERSION = "17.0.0"; + var plugin_paginate_rest_dist_bundle_VERSION = "0.0.0-development"; + function normalizePaginatedListResponse(response) { + if (!response.data) return { + ...response, + data: [] + }; + const responseNeedsNormalization = ("total_count" in response.data || "total_commits" 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; + const totalCommits = response.data.total_commits; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + delete response.data.total_commits; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (void 0 !== incompleteResults) response.data.incomplete_results = incompleteResults; + if (void 0 !== repositorySelection) response.data.repository_selection = repositorySelection; + response.data.total_count = totalCount; + response.data.total_commits = totalCommits; + return response; + } + function iterator(octokit, route, parameters) { + const options = "function" == typeof route ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = "function" == typeof route ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; return { - file, - commandArguments + [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]; + if (!url && "total_commits" in normalizedResponse.data) { + const parsedUrl = new URL(normalizedResponse.url); + const params = parsedUrl.searchParams; + const page = parseInt(params.get("page") || "1", 10); + const per_page = parseInt(params.get("per_page") || "250", 10); + if (page * per_page < normalizedResponse.data.total_commits) { + params.set("page", String(page + 1)); + url = parsedUrl.toString(); + } + } + return { + value: normalizedResponse + }; + } catch (error) { + if (409 !== error.status) throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } + } + }) }; - }; - const parseCommandString = (command)=>{ - if ('string' != typeof command) throw new TypeError(`The command must be a string: ${String(command)}.`); - const trimmedCommand = command.trim(); - if ('' === trimmedCommand) return []; - const tokens = []; - for (const token of trimmedCommand.split(SPACES_REGEXP)){ - const previousToken = tokens.at(-1); - if (previousToken && previousToken.endsWith('\\')) tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`; - else tokens.push(token); + } + function paginate(octokit, route, parameters, mapFn) { + if ("function" == typeof parameters) { + mapFn = parameters; + parameters = void 0; } - return tokens; - }; - const SPACES_REGEXP = / +/g; - const setScriptSync = (boundExeca, createNested, boundOptions)=>{ - boundExeca.sync = createNested(mapScriptSync, boundOptions); - boundExeca.s = boundExeca.sync; - }; - const mapScriptAsync = ({ options })=>getScriptOptions(options); - const mapScriptSync = ({ options })=>({ - ...getScriptOptions(options), - isSync: true - }); - const getScriptOptions = (options)=>({ - options: { - ...getScriptStdinOption(options), - ...options - } + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); + } + function gather(octokit, results, iterator2, mapFn) { + return iterator2.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, iterator2, mapFn); }); - const getScriptStdinOption = ({ input, inputFile, stdio })=>void 0 === input && void 0 === inputFile && void 0 === stdio ? { - stdin: 'inherit' - } : {}; - const deepScriptOptions = { - preferLocal: true - }; - createExeca(()=>({})); - createExeca(()=>({ - isSync: true - })); - createExeca(mapCommandAsync); - createExeca(mapCommandSync); - createExeca(mapNode); - const $ = createExeca(mapScriptAsync, {}, deepScriptOptions, setScriptSync); - const { sendMessage: execa_sendMessage, getOneMessage: execa_getOneMessage, getEachMessage: execa_getEachMessage, getCancelSignal: execa_getCancelSignal } = getIpcExport(); - const external_node_fs_promises_namespaceObject = require("node:fs/promises"); - const nx_json_js_namespaceObject = require("nx/src/config/nx-json.js"); - const project_graph_js_namespaceObject = require("nx/src/project-graph/project-graph.js"); - const find_matching_projects_js_namespaceObject = require("nx/src/utils/find-matching-projects.js"); - async function discoverPackages() { - const nxJson = (0, nx_json_js_namespaceObject.readNxJson)(); - const projectGraph = await (0, project_graph_js_namespaceObject.createProjectGraphAsync)(); - const tagPattern = nxJson?.release?.releaseTag?.pattern ?? '{projectName}/v{version}'; - const groups = nxJson?.release?.groups; - const releaseProjects = nxJson?.release?.projects; - let projectNames; - if (groups) projectNames = Array.from(new Set(Object.values(groups).flatMap((group)=>group.projects))); - else if (releaseProjects) { - const patterns = Array.isArray(releaseProjects) ? releaseProjects : [ - releaseProjects - ]; - projectNames = (0, find_matching_projects_js_namespaceObject.findMatchingProjects)(patterns, projectGraph.nodes); - } else throw new Error('No release groups or projects found in nx.json'); - const packages = await Promise.all(projectNames.map(async (projectName)=>{ - const node = projectGraph.nodes[projectName]; - if (!node) throw new Error(`Project "${projectName}" not found in project graph`); - const { root } = node.data; - const npmName = node.data.metadata?.js?.packageName ?? projectName; - const packageJsonPath = (0, external_node_path_namespaceObject.join)(root, 'package.json'); - const packageJson = JSON.parse(await (0, external_node_fs_promises_namespaceObject.readFile)(packageJsonPath, 'utf8')); - const expectedTag = tagPattern.replace('{projectName}', npmName).replace('{version}', packageJson.version); - return { - projectName, - npmName, - version: packageJson.version, - root, - expectedTag - }; - })); - return packages; } - var github = __webpack_require__("../node_modules/.pnpm/@actions+github@6.0.1/node_modules/@actions/github/lib/github.js"); + Object.assign(paginate, { + iterator + }); + function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; + } + paginateRest.VERSION = plugin_paginate_rest_dist_bundle_VERSION; + new Context(); + const utils_baseUrl = getApiBaseUrl(); + const utils_defaults = { + baseUrl: utils_baseUrl, + request: { + agent: getProxyAgent(utils_baseUrl), + fetch: getProxyFetch(utils_baseUrl) + } + }; + const GitHub = Octokit.plugin(restEndpointMethods, paginateRest).defaults(utils_defaults); + function getOctokitOptions(token, options) { + const opts = Object.assign({}, options || {}); + const auth = getAuthString(token, opts); + if (auth) opts.auth = auth; + const userAgent = getUserAgentWithOrchestrationId(opts.userAgent); + if (userAgent) opts.userAgent = userAgent; + return opts; + } + const github_context = new Context(); + function getOctokit(token, options, ...additionalPlugins) { + const GitHubWithPlugins = GitHub.plugin(...additionalPlugins); + return new GitHubWithPlugins(getOctokitOptions(token, options)); + } async function extractLatestNotes(changelogPath) { let content; try { @@ -39868,7 +26572,7 @@ Instead, \`yield\` should either be called with a value, or not be called at all async function releaseExists(octokit, tag) { try { await octokit.rest.repos.getReleaseByTag({ - ...github.context.repo, + ...github_context.repo, tag }); return true; @@ -39878,14 +26582,14 @@ Instead, \`yield\` should either be called with a value, or not be called at all } } async function createGitHubReleases(packages, token, dryRun) { - const octokit = (0, github.getOctokit)(token); + const octokit = getOctokit(token); for (const pkg of packages)if (dryRun) core_info(`[dry-run] Would create GitHub release for ${pkg.expectedTag}`); else if (await releaseExists(octokit, pkg.expectedTag)) core_info(`GitHub release for ${pkg.expectedTag} already exists, skipping`); else { const changelogPath = (0, external_node_path_namespaceObject.join)(pkg.root, 'CHANGELOG.md'); const notes = await extractLatestNotes(changelogPath); await octokit.rest.repos.createRelease({ - ...github.context.repo, + ...github_context.repo, tag_name: pkg.expectedTag, name: pkg.expectedTag, body: notes diff --git a/nx-release/dist/index.js.LICENSE.txt b/nx-release/dist/index.js.LICENSE.txt index 435b825..9c7c81b 100644 --- a/nx-release/dist/index.js.LICENSE.txt +++ b/nx-release/dist/index.js.LICENSE.txt @@ -1,3 +1,15 @@ +/* v8 ignore else -- @preserve */ + +/* v8 ignore else -- @preserve -- Bug with vitest coverage where it sees an else branch that doesn't exist */ + +/* v8 ignore next -- @preserve */ + +/*! + * content-type + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + /*! formdata-polyfill. MIT License. Jimmy Wärting */ /*! ws. MIT License. Einar Otto Stangvik */ \ No newline at end of file diff --git a/nx-release/package.json b/nx-release/package.json index 503865f..6be4c5d 100644 --- a/nx-release/package.json +++ b/nx-release/package.json @@ -1,6 +1,6 @@ { "name": "nx-release", - "version": "0.6.0", + "version": "0.6.1", "private": true, "scripts": { "build": "rslib build"